From 5b630072b637f87c7fc24d7ad3d3d2a6fb4e1a53 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Wed, 26 Oct 2022 12:20:12 +0000 Subject: [PATCH 001/119] Enable air quality modeling online-cmaq --- devbuild.sh | 58 +- externals/Externals_AQM.cfg | 29 + externals/Externals_canopy.cfg | 11 + jobs/JREGIONAL_ADD_AQM_ICS | 109 ++ jobs/JREGIONAL_ADD_AQM_LBCS | 109 ++ jobs/JREGIONAL_RUN_NEXUS | 100 ++ jobs/JREGIONAL_RUN_POST_STAT | 104 ++ jobs/JREGIONAL_RUN_PT_SOURCE | 100 ++ modulefiles/build_hera_intel.lua | 2 + modulefiles/build_orion_intel.lua | 2 + modulefiles/build_wcoss2_intel.lua | 2 + modulefiles/tasks/hera/add_aqm_ics.local.lua | 1 + modulefiles/tasks/hera/add_aqm_lbcs.local.lua | 1 + .../tasks/hera/miniconda_online-cmaq.lua | 5 + modulefiles/tasks/hera/run_nexus.local.lua | 2 + .../tasks/hera/run_pt_source.local.lua | 1 + modulefiles/tasks/orion/add_aqm_ics.local.lua | 2 + .../tasks/orion/add_aqm_lbcs.local.lua | 1 + .../tasks/orion/miniconda_online-cmaq.lua | 4 + modulefiles/tasks/orion/run_nexus.local.lua | 2 + .../tasks/orion/run_pt_source.local.lua | 1 + .../tasks/wcoss2/add_aqm_ics.local.lua | 6 + .../tasks/wcoss2/add_aqm_lbcs.local.lua | 5 + modulefiles/tasks/wcoss2/run_nexus.local.lua | 5 + .../tasks/wcoss2/run_pt_source.local.lua | 2 + parm/FV3.input.yml | 2 - parm/FV3LAM_wflow.xml | 258 ++++- parm/aqm.rc | 349 +++++++ parm/diag_table_aqm.FV3_GFS_v15p2 | 506 +++++++++ parm/diag_table_aqm.FV3_GFS_v16 | 506 +++++++++ parm/field_table_aqm.FV3_GFS_v15p2 | 974 ++++++++++++++++++ parm/field_table_aqm.FV3_GFS_v16 | 974 ++++++++++++++++++ parm/input.nml.FV3 | 3 +- parm/model_configure | 2 - parm/nems.configure | 44 +- scripts/exregional_add_aqm_ics.sh | 152 +++ scripts/exregional_add_aqm_lbcs.sh | 216 ++++ scripts/exregional_make_grid.sh | 41 + scripts/exregional_run_fcst.sh | 92 +- scripts/exregional_run_nexus.sh | 284 +++++ scripts/exregional_run_post.sh | 12 +- scripts/exregional_run_post_stat.sh | 627 +++++++++++ scripts/exregional_run_pt_source.sh | 174 ++++ sorc/CMakeLists.txt | 80 +- ush/config_defaults.yaml | 202 +++- ush/create_aqm_rc_file.py | 180 ++++ ush/create_model_configure_file.py | 10 +- ush/create_nems_configure_file.py | 137 +++ ush/generate_FV3LAM_wflow.py | 95 +- ush/job_preamble.sh | 4 +- ush/load_modules_run_task.sh | 7 +- ush/machine/hera.yaml | 1 + ush/machine/orion.yaml | 1 + ush/machine/wcoss2.yaml | 1 + ush/predef_grid_params.yaml | 68 ++ .../config.yaml_community_aqmna13km_1day_hera | 97 ++ .../config.yaml_community_conus13km_1day_hera | 86 ++ .../config.yaml_nco_aqmna13km_1day_hera | 97 ++ .../hera/config.yaml_cold_aqmna13km_1day_hera | 88 ++ .../config.yaml_cold_gsdhrrr25km_1d4cyc_hera | 74 ++ .../config.yaml_nco_gsdhrrr25km_1d4cyc_hera | 83 ++ .../config.yaml_warm_rrfsconus13km_1day_hera | 83 ++ .../config.yaml_cold_gsdhrrr25km_1d4cyc_orion | 78 ++ .../config.yaml_cold_aqmna13km_1day_wcoss2 | 90 ++ ...config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 | 76 ++ .../config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 | 85 ++ ...config.yaml_warm_rrfsconus13km_1day_wcoss2 | 85 ++ ush/setup.py | 53 +- ush/valid_param_vals.yaml | 13 +- versions/build.ver.wcoss2 | 1 + versions/run.ver.wcoss2 | 6 +- 71 files changed, 7669 insertions(+), 92 deletions(-) create mode 100644 externals/Externals_AQM.cfg create mode 100644 externals/Externals_canopy.cfg create mode 100755 jobs/JREGIONAL_ADD_AQM_ICS create mode 100755 jobs/JREGIONAL_ADD_AQM_LBCS create mode 100755 jobs/JREGIONAL_RUN_NEXUS create mode 100755 jobs/JREGIONAL_RUN_POST_STAT create mode 100755 jobs/JREGIONAL_RUN_PT_SOURCE create mode 100644 modulefiles/tasks/hera/add_aqm_ics.local.lua create mode 100644 modulefiles/tasks/hera/add_aqm_lbcs.local.lua create mode 100644 modulefiles/tasks/hera/miniconda_online-cmaq.lua create mode 100644 modulefiles/tasks/hera/run_nexus.local.lua create mode 100644 modulefiles/tasks/hera/run_pt_source.local.lua create mode 100644 modulefiles/tasks/orion/add_aqm_ics.local.lua create mode 100644 modulefiles/tasks/orion/add_aqm_lbcs.local.lua create mode 100644 modulefiles/tasks/orion/miniconda_online-cmaq.lua create mode 100644 modulefiles/tasks/orion/run_nexus.local.lua create mode 100644 modulefiles/tasks/orion/run_pt_source.local.lua create mode 100644 modulefiles/tasks/wcoss2/add_aqm_ics.local.lua create mode 100644 modulefiles/tasks/wcoss2/add_aqm_lbcs.local.lua create mode 100644 modulefiles/tasks/wcoss2/run_nexus.local.lua create mode 100644 modulefiles/tasks/wcoss2/run_pt_source.local.lua create mode 100644 parm/aqm.rc create mode 100644 parm/diag_table_aqm.FV3_GFS_v15p2 create mode 100644 parm/diag_table_aqm.FV3_GFS_v16 create mode 100644 parm/field_table_aqm.FV3_GFS_v15p2 create mode 100644 parm/field_table_aqm.FV3_GFS_v16 create mode 100755 scripts/exregional_add_aqm_ics.sh create mode 100755 scripts/exregional_add_aqm_lbcs.sh create mode 100755 scripts/exregional_run_nexus.sh create mode 100755 scripts/exregional_run_post_stat.sh create mode 100755 scripts/exregional_run_pt_source.sh create mode 100644 ush/create_aqm_rc_file.py create mode 100644 ush/create_nems_configure_file.py create mode 100644 ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera create mode 100644 ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera create mode 100644 ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera create mode 100644 ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera create mode 100644 ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera create mode 100644 ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d4cyc_hera create mode 100644 ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera create mode 100644 ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion create mode 100644 ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 create mode 100644 ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 create mode 100644 ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 create mode 100644 ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 diff --git a/devbuild.sh b/devbuild.sh index 218a0eeb81..15ce196acd 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -15,8 +15,8 @@ OPTIONS compiler to use; default depends on platform (e.g. intel | gnu | cray | gccgfortran) -a, --app=APPLICATION - weather model application to build - (e.g. ATM | ATMW | S2S | S2SW) + weather model application to build; for example, ATMAQ for Online-CMAQ + (e.g. ATM | ATMAQ | ATMW | S2S | S2SW) --ccpp="CCPP_SUITE1,CCPP_SUITE2..." CCPP suites (CCPP_SUITES) to include in build; delimited with ',' --enable-options="OPTION1,OPTION2,..." @@ -66,6 +66,7 @@ cat << EOF_SETTINGS Settings: SRW_DIR=${SRW_DIR} + BIN_DIR=${BIN_DIR} BUILD_DIR=${BUILD_DIR} INSTALL_DIR=${INSTALL_DIR} BIN_DIR=${BIN_DIR} @@ -85,6 +86,8 @@ Settings: BUILD_UPP=${BUILD_UPP} BUILD_GSI=${BUILD_GSI} BUILD_RRFS_UTILS=${BUILD_RRFS_UTILS} + BUILD_NEXUS=${BUILD_NEXUS} + BUILD_AQM_UTILS=${BUILD_AQM_UTILS} EOF_SETTINGS } @@ -99,6 +102,7 @@ usage_error () { # default settings LCL_PID=$$ SRW_DIR=$(cd "$(dirname "$(readlink -f -n "${BASH_SOURCE[0]}" )" )" && pwd -P) +BIN_DIR="${SRW_DIR}/bin" MACHINE_SETUP=${SRW_DIR}/src/UFS_UTILS/sorc/machine-setup.sh BUILD_DIR="${SRW_DIR}/build" INSTALL_DIR=${SRW_DIR} @@ -106,6 +110,7 @@ BIN_DIR="exec" COMPILER="" APPLICATION="" CCPP_SUITES="" +CANOPY=false ENABLE_OPTIONS="" DISABLE_OPTIONS="" BUILD_TYPE="RELEASE" @@ -121,6 +126,8 @@ BUILD_UFS_UTILS="off" BUILD_UPP="off" BUILD_GSI="off" BUILD_RRFS_UTILS="off" +BUILD_NEXUS="off" +BUILD_AQM_UTILS="off" # Make options CLEAN=false @@ -145,6 +152,8 @@ while :; do --app|--app=|-a|-a=) usage_error "$1 requires argument." ;; --ccpp=?*) CCPP_SUITES=${1#*=} ;; --ccpp|--ccpp=) usage_error "$1 requires argument." ;; + --canopy) CANOPY=true ;; + --canopy=*) usage_error "$1 argument ignored." ;; --enable-options=?*) ENABLE_OPTIONS=${1#*=} ;; --enable-options|--enable-options=) usage_error "$1 requires argument." ;; --disable-options=?*) DISABLE_OPTIONS=${1#*=} ;; @@ -178,6 +187,8 @@ while :; do upp) DEFAULT_BUILD=false; BUILD_UPP="on" ;; gsi) DEFAULT_BUILD=false; BUILD_GSI="on" ;; rrfs_utils) DEFAULT_BUILD=false; BUILD_RRFS_UTILS="on" ;; + nexus) DEFAULT_BUILD=false; BUILD_NEXUS="on" ;; + aqm_utils) DEFAULT_BUILD=false; BUILD_AQM_UTILS="on" ;; # unknown -?*|?*) usage_error "Unknown option $1" ;; *) break @@ -196,6 +207,7 @@ fi APPLICATION="${APPLICATION^^}" PLATFORM="${PLATFORM,,}" COMPILER="${COMPILER,,}" +EXTERNALS="${EXTERNALS^^}" # check if PLATFORM is set if [ -z $PLATFORM ] ; then @@ -233,6 +245,31 @@ if [ "${VERBOSE}" = true ] ; then settings fi +# Check out external components for Online-CMAQ ============================= +if [ "${APPLICATION}" = "ATMAQ" ]; then + if [ -d "${SRW_DIR}/sorc/arl_nexus" ]; then + printf "Extra external components already exist. This step will be skipped.\n" + else + printf "... Checking out extra components for Online-CMAQ ...\n" + +# printf "... Replace ufs-weather-model with a temporary fix ...\n" +# rm -rf "${SRW_DIR}/sorc/ufs-weather-model" + + ./manage_externals/checkout_externals -e externals/Externals_AQM.cfg + + if [ "${CANOPY}" = true ]; then + printf "... Replace ufs-weather-model with the canopy version ...\n" + rm -rf "${SRW_DIR}/sorc/ufs-weather-model" + ./manage_externals/checkout_externals -e externals/Externals_canopy.cfg + fi + fi + + if [ "${DEFAULT_BUILD}" = true ]; then + BUILD_NEXUS="on" + BUILD_AQM_UTILS="on" + fi +fi + # source version file only if it is specified in versions directory BUILD_VERSION_FILE="${SRW_DIR}/versions/build.ver.${PLATFORM}" if [ -f ${BUILD_VERSION_FILE} ]; then @@ -300,7 +337,9 @@ CMAKE_SETTINGS="\ -DBUILD_UFS_UTILS=${BUILD_UFS_UTILS}\ -DBUILD_UPP=${BUILD_UPP}\ -DBUILD_GSI=${BUILD_GSI}\ - -DBUILD_RRFS_UTILS=${BUILD_RRFS_UTILS}" + -DBUILD_RRFS_UTILS=${BUILD_RRFS_UTILS}\ + -DBUILD_NEXUS=${BUILD_NEXUS}\ + -DBUILD_AQM_UTILS=${BUILD_AQM_UTILS}" if [ ! -z "${APPLICATION}" ]; then CMAKE_SETTINGS="${CMAKE_SETTINGS} -DAPP=${APPLICATION}" @@ -314,6 +353,9 @@ fi if [ ! -z "${DISABLE_OPTIONS}" ]; then CMAKE_SETTINGS="${CMAKE_SETTINGS} -DDISABLE_OPTIONS=${DISABLE_OPTIONS}" fi +if [ "${APPLICATION}" = "ATMAQ" ]; then + CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCPL_AQM=ON" +fi # make settings MAKE_SETTINGS="-j ${BUILD_JOBS}" @@ -389,6 +431,16 @@ if [ $USE_SUB_MODULES = true ]; then printf "... Loading RRFS_UTILS modules ...\n" load_module "" fi + if [ $BUILD_NEXUS = "on" ]; then + printf "... Loading NEXUS modules ...\n" + module use ${SRW_DIR}/sorc/arl_nexus/modulefiles + load_module "" + fi + if [ $BUILD_AQM_UTILS = "on" ]; then + printf "... Loading AQM-utils modules ...\n" + module use ${SRW_DIR}/sorc/AQM-utils/modulefiles + load_module "" + fi else module use ${SRW_DIR}/modulefiles module load ${MODULE_FILE} diff --git a/externals/Externals_AQM.cfg b/externals/Externals_AQM.cfg new file mode 100644 index 0000000000..bf14aca6cb --- /dev/null +++ b/externals/Externals_AQM.cfg @@ -0,0 +1,29 @@ +#[ufs-weather-model] +#protocol = git +#repo_url = https://github.com/rmontuoro/ufs-weather-model +# Specify either a branch name or a hash but not both. +#branch = bugfix/aqm-heat-fluxes +#hash = 65cf401 +#local_path = sorc/ufs-weather-model +#required = True + +[arl_nexus] +protocol = git +repo_url = https://github.com/noaa-oar-arl/NEXUS +# Specify either a branch name or a hash but not both. +#branch = develop +hash = c05ee48 +local_path = sorc/arl_nexus +required = True + +[aqm-utils] +protocol = git +repo_url = https://github.com/NOAA-EMC/AQM-utils +# Specify either a branch name or a hash but not both. +#branch = develop +hash = 8db3178 +local_path = sorc/AQM-utils +required = True + +[externals_description] +schema_version = 1.0.0 diff --git a/externals/Externals_canopy.cfg b/externals/Externals_canopy.cfg new file mode 100644 index 0000000000..058c8c58bd --- /dev/null +++ b/externals/Externals_canopy.cfg @@ -0,0 +1,11 @@ +[ufs-weather-model] +protocol = git +repo_url = https://github.com/noaa-oar-arl/ufs-weather-model +# Specify either a branch name or a hash but not both. +branch = feature/aqm_canopy +#hash = 65cf401 +local_path = sorc/ufs-weather-model +required = True + +[externals_description] +schema_version = 1.0.0 diff --git a/jobs/JREGIONAL_ADD_AQM_ICS b/jobs/JREGIONAL_ADD_AQM_ICS new file mode 100755 index 0000000000..538b765212 --- /dev/null +++ b/jobs/JREGIONAL_ADD_AQM_ICS @@ -0,0 +1,109 @@ +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# This script generates both the initial conditions (ICs) and the lateral +# boundary conditions (LBCs) files for the air quality model (AQM) from +# files stored either in the system directory or on mass storage (HPSS). +# +#----------------------------------------------------------------------- +# + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. ${GLOBAL_VAR_DEFNS_FP} +. $USHdir/source_util_funcs.sh +. $USHdir/job_preamble.sh +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" + +This is the J-job script for the task that copies/fetches to a local +directory (either from disk or HPSS) the aqm boundary conditions from +which the model needs. +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set the name of and create the directory in which the output from this +# script will be placed (if it doesn't already exist). +# +#----------------------------------------------------------------------- +# +if [ $RUN_ENVIR = "nco" ]; then + export INPUT_DATA="${COMIN}" +else + export INPUT_DATA="${COMIN}${SLASH_ENSMEM_SUBDIR}/INPUT" +fi +mkdir_vrfy -p "${INPUT_DATA}" +# +#----------------------------------------------------------------------- +# +# Set the run directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" +mkdir_vrfy -p "${DATA}" +# +#----------------------------------------------------------------------- +# +# Call the ex-script for this J-job and pass to it the necessary variables. +# +#----------------------------------------------------------------------- +# +$SCRIPTSdir/exregional_add_aqm_ics.sh || \ +print_err_msg_exit "\ +Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." +# +#----------------------------------------------------------------------- +# +# Run job postamble. +# +#----------------------------------------------------------------------- +# +job_postamble +# +#----------------------------------------------------------------------- +# +# Restore the shell options saved at the beginning of this script/function. +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 + diff --git a/jobs/JREGIONAL_ADD_AQM_LBCS b/jobs/JREGIONAL_ADD_AQM_LBCS new file mode 100755 index 0000000000..e5d3322390 --- /dev/null +++ b/jobs/JREGIONAL_ADD_AQM_LBCS @@ -0,0 +1,109 @@ +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# This script generates both the initial conditions (ICs) and the lateral +# boundary conditions (LBCs) files for the air quality model (AQM) from +# files stored either in the system directory or on mass storage (HPSS). +# +#----------------------------------------------------------------------- +# + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. ${GLOBAL_VAR_DEFNS_FP} +. $USHdir/source_util_funcs.sh +. $USHdir/job_preamble.sh +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" + +This is the J-job script for the task that copies/fetches to a local +directory (either from disk or HPSS) the aqm boundary conditions from +which the model needs. +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set the name of and create the directory in which the output from this +# script will be placed (if it doesn't already exist). +# +#----------------------------------------------------------------------- +# +if [ $RUN_ENVIR = "nco" ]; then + export INPUT_DATA="${COMIN}" +else + export INPUT_DATA="${COMIN}${SLASH_ENSMEM_SUBDIR}/INPUT" +fi +mkdir_vrfy -p "${INPUT_DATA}" +# +#----------------------------------------------------------------------- +# +# Set the run directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" +mkdir_vrfy -p "${DATA}" +# +#----------------------------------------------------------------------- +# +# Call the ex-script for this J-job and pass to it the necessary variables. +# +#----------------------------------------------------------------------- +# +$SCRIPTSdir/exregional_add_aqm_lbcs.sh || \ +print_err_msg_exit "\ +Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." +# +#----------------------------------------------------------------------- +# +# Run job postamble. +# +#----------------------------------------------------------------------- +# +job_postamble +# +#----------------------------------------------------------------------- +# +# Restore the shell options saved at the beginning of this script/function. +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 + diff --git a/jobs/JREGIONAL_RUN_NEXUS b/jobs/JREGIONAL_RUN_NEXUS new file mode 100755 index 0000000000..fd50116806 --- /dev/null +++ b/jobs/JREGIONAL_RUN_NEXUS @@ -0,0 +1,100 @@ +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. ${GLOBAL_VAR_DEFNS_FP} +. $USHdir/source_util_funcs.sh +. $USHdir/job_preamble.sh +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" + +This is the J-job script for the task that generates the emission files +using NEXUS which will output for FV3 (in NetCDF format). +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set the name of and create the directory in which the output from this +# script will be placed (if it doesn't already exist). +# +#----------------------------------------------------------------------- +# +if [ $RUN_ENVIR = "nco" ]; then + export INPUT_DATA="${COMIN}" +else + export INPUT_DATA="${COMIN}${SLASH_ENSMEM_SUBDIR}/INPUT" +fi +mkdir_vrfy -p "${INPUT_DATA}" +# +#----------------------------------------------------------------------- +# +# Set the run directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" +mkdir_vrfy -p "${DATA}" +# +# +#----------------------------------------------------------------------- +# +# Call the ex-script for this J-job. +# +#----------------------------------------------------------------------- +# +time $SCRIPTSdir/exregional_run_nexus.sh || \ +print_err_msg_exit "\ +Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." +# +#----------------------------------------------------------------------- +# +# Run job postamble. +# +#----------------------------------------------------------------------- +# +job_postamble +# +#----------------------------------------------------------------------- +# +# Restore the shell options saved at the beginning of this script/func- +# tion. +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 + diff --git a/jobs/JREGIONAL_RUN_POST_STAT b/jobs/JREGIONAL_RUN_POST_STAT new file mode 100755 index 0000000000..2a20177d87 --- /dev/null +++ b/jobs/JREGIONAL_RUN_POST_STAT @@ -0,0 +1,104 @@ +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# This script runs POST-UPP-STAT. +# +#----------------------------------------------------------------------- +# + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. ${GLOBAL_VAR_DEFNS_FP} +. $USHdir/source_util_funcs.sh +. $USHdir/job_preamble.sh +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" + +This is the J-job script for the task that runs POST-UPP-STAT. +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set the run directory. +# +#----------------------------------------------------------------------- +# +DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" +# +#----------------------------------------------------------------------- +# +# If it doesn't already exist, create the directory (COMOUT) in which +# to store post-processing output. (Note that COMOUT may have already +# been created by this post-processing script for a different output time +# from the same forecast start time and/or ensemble member.) +# +#----------------------------------------------------------------------- +# +export COMOUT="${COMOUT}/POST_STAT" +mkdir_vrfy -p "${COMOUT}" +# +#----------------------------------------------------------------------- +# +# Call the ex-script for this J-job and pass to it the necessary varia- +# bles. +# +#----------------------------------------------------------------------- +# +$SCRIPTSdir/exregional_run_post_stat.sh || \ +print_err_msg_exit "\ +Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." +# +#----------------------------------------------------------------------- +# +# Run job postamble. +# +#----------------------------------------------------------------------- +# +job_postamble +# +#----------------------------------------------------------------------- +# +# Restore the shell options saved at the beginning of this script/func- +# tion. +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 + diff --git a/jobs/JREGIONAL_RUN_PT_SOURCE b/jobs/JREGIONAL_RUN_PT_SOURCE new file mode 100755 index 0000000000..d885b93201 --- /dev/null +++ b/jobs/JREGIONAL_RUN_PT_SOURCE @@ -0,0 +1,100 @@ +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. ${GLOBAL_VAR_DEFNS_FP} +. $USHdir/source_util_funcs.sh +. $USHdir/job_preamble.sh +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" + +This is the J-job script for the task that generates the emission files +using NEXUS which will output for FV3 (in NetCDF format). +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set the name of and create the directory in which the output from this +# script will be placed (if it doesn't already exist). +# +#----------------------------------------------------------------------- +# +if [ $RUN_ENVIR = "nco" ]; then + export INPUT_DATA="${COMIN}" +else + export INPUT_DATA="${COMIN}${SLASH_ENSMEM_SUBDIR}" +fi +mkdir_vrfy -p "${INPUT_DATA}" +# +#----------------------------------------------------------------------- +# +# Set the run directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" +mkdir_vrfy -p "${DATA}" +# +# +#----------------------------------------------------------------------- +# +# Call the ex-script for this J-job. +# +#----------------------------------------------------------------------- +# +time $SCRIPTSdir/exregional_run_pt_source.sh || \ +print_err_msg_exit "\ +Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." +# +#----------------------------------------------------------------------- +# +# Run job postamble. +# +#----------------------------------------------------------------------- +# +job_postamble +# +#----------------------------------------------------------------------- +# +# Restore the shell options saved at the beginning of this script/func- +# tion. +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 + diff --git a/modulefiles/build_hera_intel.lua b/modulefiles/build_hera_intel.lua index 69d74a0dd6..cfc82be13a 100644 --- a/modulefiles/build_hera_intel.lua +++ b/modulefiles/build_hera_intel.lua @@ -20,6 +20,8 @@ load("srw_common") load(pathJoin("nccmp", os.getenv("nccmp_ver") or "1.8.9.0")) load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load(pathJoin("wgrib2", os.getenv("wgrib2_ver") or "2.0.8")) + setenv("CMAKE_C_COMPILER","mpiicc") setenv("CMAKE_CXX_COMPILER","mpiicpc") setenv("CMAKE_Fortran_COMPILER","mpiifort") diff --git a/modulefiles/build_orion_intel.lua b/modulefiles/build_orion_intel.lua index 92795c6f8c..5512b99387 100644 --- a/modulefiles/build_orion_intel.lua +++ b/modulefiles/build_orion_intel.lua @@ -21,6 +21,8 @@ load("srw_common") load(pathJoin("nccmp", os.getenv("nccmp_ver") or "1.8.9.0")) load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load(pathJoin("wgrib2", os.getenv("wgrib2_ver") or "2.0.8")) + setenv("CMAKE_C_COMPILER","mpiicc") setenv("CMAKE_CXX_COMPILER","mpiicpc") setenv("CMAKE_Fortran_COMPILER","mpiifort") diff --git a/modulefiles/build_wcoss2_intel.lua b/modulefiles/build_wcoss2_intel.lua index c8956142ee..7213d85ee9 100644 --- a/modulefiles/build_wcoss2_intel.lua +++ b/modulefiles/build_wcoss2_intel.lua @@ -43,6 +43,8 @@ load(pathJoin("sigio", os.getenv("sigio_ver"))) load(pathJoin("sfcio", os.getenv("sfcio_ver"))) load(pathJoin("wrf_io", os.getenv("wrf_io_ver"))) +load(pathJoin("wgrib2", os.getenv("wgrib2_ver"))) + setenv("CMAKE_C_COMPILER","cc") setenv("CMAKE_CXX_COMPILER","CC") setenv("CMAKE_Fortran_COMPILER","ftn") diff --git a/modulefiles/tasks/hera/add_aqm_ics.local.lua b/modulefiles/tasks/hera/add_aqm_ics.local.lua new file mode 100644 index 0000000000..0ef3de3b66 --- /dev/null +++ b/modulefiles/tasks/hera/add_aqm_ics.local.lua @@ -0,0 +1 @@ +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/hera/add_aqm_lbcs.local.lua b/modulefiles/tasks/hera/add_aqm_lbcs.local.lua new file mode 100644 index 0000000000..23370a8d60 --- /dev/null +++ b/modulefiles/tasks/hera/add_aqm_lbcs.local.lua @@ -0,0 +1 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) diff --git a/modulefiles/tasks/hera/miniconda_online-cmaq.lua b/modulefiles/tasks/hera/miniconda_online-cmaq.lua new file mode 100644 index 0000000000..9712c40628 --- /dev/null +++ b/modulefiles/tasks/hera/miniconda_online-cmaq.lua @@ -0,0 +1,5 @@ +prepend_path("MODULEPATH", "/contrib/miniconda3/modulefiles") +load(pathJoin("miniconda3", os.getenv("miniconda3_ver") or "4.12.0")) + +setenv("AQM_ENV_FP", "/scratch2/NCEPDEV/naqfc/RRFS_CMAQ/PY_VENV") +setenv("AQM_ENV", "online-cmaq") diff --git a/modulefiles/tasks/hera/run_nexus.local.lua b/modulefiles/tasks/hera/run_nexus.local.lua new file mode 100644 index 0000000000..027881a685 --- /dev/null +++ b/modulefiles/tasks/hera/run_nexus.local.lua @@ -0,0 +1,2 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/hera/run_pt_source.local.lua b/modulefiles/tasks/hera/run_pt_source.local.lua new file mode 100644 index 0000000000..0ef3de3b66 --- /dev/null +++ b/modulefiles/tasks/hera/run_pt_source.local.lua @@ -0,0 +1 @@ +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/orion/add_aqm_ics.local.lua b/modulefiles/tasks/orion/add_aqm_ics.local.lua new file mode 100644 index 0000000000..027881a685 --- /dev/null +++ b/modulefiles/tasks/orion/add_aqm_ics.local.lua @@ -0,0 +1,2 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/orion/add_aqm_lbcs.local.lua b/modulefiles/tasks/orion/add_aqm_lbcs.local.lua new file mode 100644 index 0000000000..23370a8d60 --- /dev/null +++ b/modulefiles/tasks/orion/add_aqm_lbcs.local.lua @@ -0,0 +1 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) diff --git a/modulefiles/tasks/orion/miniconda_online-cmaq.lua b/modulefiles/tasks/orion/miniconda_online-cmaq.lua new file mode 100644 index 0000000000..3b01515fb6 --- /dev/null +++ b/modulefiles/tasks/orion/miniconda_online-cmaq.lua @@ -0,0 +1,4 @@ +load(pathJoin("miniconda", os.getenv("miniconda_ver") or "4.12.0")) + +setenv("SRW_ENV", "/work/noaa/fv3-cam/RRFS_CMAQ/PY_VENV") +setenv("SRW_ENV", "online-cmaq") diff --git a/modulefiles/tasks/orion/run_nexus.local.lua b/modulefiles/tasks/orion/run_nexus.local.lua new file mode 100644 index 0000000000..027881a685 --- /dev/null +++ b/modulefiles/tasks/orion/run_nexus.local.lua @@ -0,0 +1,2 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/orion/run_pt_source.local.lua b/modulefiles/tasks/orion/run_pt_source.local.lua new file mode 100644 index 0000000000..0ef3de3b66 --- /dev/null +++ b/modulefiles/tasks/orion/run_pt_source.local.lua @@ -0,0 +1 @@ +load("miniconda_online-cmaq") diff --git a/modulefiles/tasks/wcoss2/add_aqm_ics.local.lua b/modulefiles/tasks/wcoss2/add_aqm_ics.local.lua new file mode 100644 index 0000000000..192f238b67 --- /dev/null +++ b/modulefiles/tasks/wcoss2/add_aqm_ics.local.lua @@ -0,0 +1,6 @@ +load(pathJoin("intel", os.getenv("intel_ver"))) +load(pathJoin("python", os.getenv("python_ver"))) +load(pathJoin("udunits", os.getenv("udunits_ver"))) +load(pathJoin("gsl", os.getenv("gsl_ver"))) +load(pathJoin("netcdf", os.getenv("netcdf_ver"))) +load(pathJoin("nco", os.getenv("nco_ver"))) diff --git a/modulefiles/tasks/wcoss2/add_aqm_lbcs.local.lua b/modulefiles/tasks/wcoss2/add_aqm_lbcs.local.lua new file mode 100644 index 0000000000..a53c325c20 --- /dev/null +++ b/modulefiles/tasks/wcoss2/add_aqm_lbcs.local.lua @@ -0,0 +1,5 @@ +load(pathJoin("intel", os.getenv("intel_ver"))) +load(pathJoin("python", os.getenv("python_ver"))) +load(pathJoin("udunits", os.getenv("udunits_ver"))) +load(pathJoin("gsl", os.getenv("gsl_ver"))) +load(pathJoin("nco", os.getenv("nco_ver"))) diff --git a/modulefiles/tasks/wcoss2/run_nexus.local.lua b/modulefiles/tasks/wcoss2/run_nexus.local.lua new file mode 100644 index 0000000000..a53c325c20 --- /dev/null +++ b/modulefiles/tasks/wcoss2/run_nexus.local.lua @@ -0,0 +1,5 @@ +load(pathJoin("intel", os.getenv("intel_ver"))) +load(pathJoin("python", os.getenv("python_ver"))) +load(pathJoin("udunits", os.getenv("udunits_ver"))) +load(pathJoin("gsl", os.getenv("gsl_ver"))) +load(pathJoin("nco", os.getenv("nco_ver"))) diff --git a/modulefiles/tasks/wcoss2/run_pt_source.local.lua b/modulefiles/tasks/wcoss2/run_pt_source.local.lua new file mode 100644 index 0000000000..16559474cd --- /dev/null +++ b/modulefiles/tasks/wcoss2/run_pt_source.local.lua @@ -0,0 +1,2 @@ +load(pathJoin("intel", os.getenv("intel_ver"))) +load(pathJoin("python", os.getenv("python_ver"))) diff --git a/parm/FV3.input.yml b/parm/FV3.input.yml index 1066d43971..08ccb6f885 100644 --- a/parm/FV3.input.yml +++ b/parm/FV3.input.yml @@ -69,7 +69,6 @@ FV3_GFS_2017_gfdlmp: agrid_vel_rst: False d4_bg: 0.15 delt_max: 0.008 - dnats: 1 do_sat_adj: True fv_debug: False k_split: 6 @@ -197,7 +196,6 @@ FV3_GFS_v15p2: agrid_vel_rst: False d2_bg_k1: 0.15 d2_bg_k2: 0.02 - dnats: 1 do_sat_adj: True fv_debug: False fv_sg_adj: 600 diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml index 1a7593a751..f99d3d3efc 100644 --- a/parm/FV3LAM_wflow.xml +++ b/parm/FV3LAM_wflow.xml @@ -32,17 +32,28 @@ Workflow task names. +{%- if run_task_get_obs_ccpa %} +{%- endif %} +{%- if run_task_get_obs_ndas %} +{%- endif %} +{%- if run_task_get_obs_mrms %} +{%- endif %} +{%- if run_task_vx_gridstat %} +{%- endif %} +{%- if run_task_vx_pointstat %} +{%- endif %} +{%- if run_task_vx_ensgrid %} @@ -59,9 +70,28 @@ Workflow task names. +{%- endif %} +{%- if run_task_vx_enspoint %} +{%- endif %} +{%- if run_task_add_aqm_ics %} + + +{%- endif %} +{%- if run_task_add_aqm_lbcs %} + +{%- endif %} +{%- if run_task_run_nexus %} + +{%- endif %} +{%- if run_task_run_pt_source %} + +{%- endif %} +{%- if run_task_run_post_stat %} + +{%- endif %} + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&RUN_NEXUS_TN;" "&JOBSdir;/JREGIONAL_RUN_NEXUS" + {%- if machine in ["HERA"] %} + {{ nnodes_run_nexus }}:ppn={{ ppn_run_nexus }} + {{ native_run_nexus }} + {%- elif machine in ["WCOSS2"] %} + {{ nnodes_run_nexus }}:ppn={{ ppn_run_nexus }}:tpp={{ omp_num_threads_run_nexus }} + &SCHED_NATIVE_CMD; + {%- else %} + {{ nnodes_run_nexus }}:ppn={{ ppn_run_nexus }} + {%- endif %} + {{ wtime_run_nexus }} + &NCORES_PER_NODE; + &RUN_NEXUS_TN; + &LOGDIR;/&RUN_NEXUS_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + +{%- endif %} +{%- if run_task_run_pt_source %} + + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&RUN_PT_SOURCE_TN;" "&JOBSdir;/JREGIONAL_RUN_PT_SOURCE" + {%- if machine in ["WCOSS2"] %} + {{ nnodes_run_pt_source }}:ppn={{ ppn_run_pt_source }}:tpp={{ omp_num_threads_run_pt_source }} + &SCHED_NATIVE_CMD; + {%- else %} + {{ nnodes_run_pt_source }}:ppn={{ ppn_run_pt_source }} + {%- endif %} + {{ wtime_run_pt_source }} + &NCORES_PER_NODE; + &RUN_PT_SOURCE_TN; + &LOGDIR;/&RUN_PT_SOURCE_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + + + &EXPTDIR;/grid/&MAKE_GRID_TN;&CMPEXT; + &RUN_TASK_MAKE_GRID;FALSE + + + + +{%- endif %} {%- if run_task_get_extrn_ics %} + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&ADD_AQM_ICS_TN;" "&JOBSdir;/JREGIONAL_ADD_AQM_ICS" + {{ nnodes_add_aqm_ics }}:ppn={{ ppn_add_aqm_ics }} + {{ wtime_add_aqm_ics }} + &NCORES_PER_NODE; + &ADD_AQM_EXTRN_ICS_TN; + &LOGDIR;/&ADD_AQM_EXTRN_ICS_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + PREV_CYCLE_DIR&WARMSTART_CYCLE_DIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + + + + &WARMSTART_CYCLE_DIR;/RESTART/@Y@m@d.@H@M@S.fv_tracer.res.tile1.nc + &WARMSTART_CYCLE_DIR;/RESTART/fv_tracer.res.tile1.nc + + + + + + {%- endif %} + + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&ADD_AQM_ICS_TN;" "&JOBSdir;/JREGIONAL_ADD_AQM_ICS" + {{ nnodes_add_aqm_ics }}:ppn={{ ppn_add_aqm_ics }} + {{ wtime_add_aqm_ics }} + &NCORES_PER_NODE; + &ADD_AQM_ICS_TN; + &LOGDIR;/&ADD_AQM_ICS_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + PREV_CYCLE_DIR&COMIN_DIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + + + + &COMIN_DIR;/RESTART/@Y@m@d.@H@M@S.fv_tracer.res.tile1.nc + &COMIN_DIR;/RESTART/fv_tracer.res.tile1.nc + + + + + +{%- endif %} +{%- if run_task_add_aqm_lbcs %} + + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&ADD_AQM_LBCS_TN;" "&JOBSdir;/JREGIONAL_ADD_AQM_LBCS" + {{ nnodes_add_aqm_lbcs }}:ppn={{ ppn_add_aqm_lbcs }} + {{ wtime_add_aqm_lbcs }} + &NCORES_PER_NODE; + &ADD_AQM_LBCS_TN; + &LOGDIR;/&ADD_AQM_LBCS_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + + + + +{%- endif %} {%- if run_task_run_fcst %} + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&RUN_POST_STAT_TN;" "&JOBSdir;/JREGIONAL_RUN_POST_STAT" + {{ nnodes_run_post_stat }}:ppn={{ ppn_run_post_stat }} + {{ wtime_run_post_stat }} + &NCORES_PER_NODE; + &RUN_POST_STAT_TN; + &LOGDIR;/&RUN_POST_STAT_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + + + +{%- endif %} {%- if run_task_get_obs_ccpa %} - + &RSRV_DEFAULT; - &LOAD_MODULES_RUN_TASK_FP; "&RUN_NEXUS_TN;" "&JOBSdir;/JREGIONAL_RUN_NEXUS" + &LOAD_MODULES_RUN_TASK_FP; "&NEXUS_EMISSION_TN;" "&JOBSdir;/JREGIONAL_NEXUS_EMISSION" {%- if machine in ["HERA"] %} - {{ nnodes_run_nexus }}:ppn={{ ppn_run_nexus }} - {{ native_run_nexus }} + {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }} + {{ native_nexus_emission }} {%- elif machine in ["WCOSS2"] %} - {{ nnodes_run_nexus }}:ppn={{ ppn_run_nexus }}:tpp={{ omp_num_threads_run_nexus }} + {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }}:tpp={{ omp_num_threads_nexus_emission }} &SCHED_NATIVE_CMD; {%- else %} - {{ nnodes_run_nexus }}:ppn={{ ppn_run_nexus }} + {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }} {%- endif %} - {{ wtime_run_nexus }} + {{ wtime_nexus_emission }} &NCORES_PER_NODE; - &RUN_NEXUS_TN; - &LOGDIR;/&RUN_NEXUS_TN;_@Y@m@d@H&LOGEXT; + &NEXUS_EMISSION_TN; + &LOGDIR;/&NEXUS_EMISSION_TN;_@Y@m@d@H&LOGEXT; GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; PDY@Y@m@d @@ -364,25 +364,25 @@ MODULES_RUN_TASK_FP script. {%- endif %} -{%- if run_task_run_pt_source %} +{%- if run_task_point_source %} - + &RSRV_DEFAULT; - &LOAD_MODULES_RUN_TASK_FP; "&RUN_PT_SOURCE_TN;" "&JOBSdir;/JREGIONAL_RUN_PT_SOURCE" + &LOAD_MODULES_RUN_TASK_FP; "&POINT_SOURCE_TN;" "&JOBSdir;/JREGIONAL_POINT_SOURCE" {%- if machine in ["WCOSS2"] %} - {{ nnodes_run_pt_source }}:ppn={{ ppn_run_pt_source }}:tpp={{ omp_num_threads_run_pt_source }} + {{ nnodes_point_source }}:ppn={{ ppn_point_source }}:tpp={{ omp_num_threads_point_source }} &SCHED_NATIVE_CMD; {%- else %} - {{ nnodes_run_pt_source }}:ppn={{ ppn_run_pt_source }} + {{ nnodes_point_source }}:ppn={{ ppn_point_source }} {%- endif %} - {{ wtime_run_pt_source }} + {{ wtime_point_source }} &NCORES_PER_NODE; - &RUN_PT_SOURCE_TN; - &LOGDIR;/&RUN_PT_SOURCE_TN;_@Y@m@d@H&LOGEXT; + &POINT_SOURCE_TN; + &LOGDIR;/&POINT_SOURCE_TN;_@Y@m@d@H&LOGEXT; GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; PDY@Y@m@d @@ -563,21 +563,21 @@ MODULES_RUN_TASK_FP script. {%- endif %} -{%- if run_task_add_aqm_ics %} +{%- if run_task_aqm_ics %} {%- if not coldstart %} - + &RSRV_DEFAULT; - &LOAD_MODULES_RUN_TASK_FP; "&ADD_AQM_ICS_TN;" "&JOBSdir;/JREGIONAL_ADD_AQM_ICS" - {{ nnodes_add_aqm_ics }}:ppn={{ ppn_add_aqm_ics }} - {{ wtime_add_aqm_ics }} + &LOAD_MODULES_RUN_TASK_FP; "&AQM_ICS_TN;" "&JOBSdir;/JREGIONAL_AQM_ICS" + {{ nnodes_aqm_ics }}:ppn={{ ppn_aqm_ics }} + {{ wtime_aqm_ics }} &NCORES_PER_NODE; - &ADD_AQM_EXTRN_ICS_TN; - &LOGDIR;/&ADD_AQM_EXTRN_ICS_TN;_@Y@m@d@H&LOGEXT; + &AQM_EXTRN_ICS_TN; + &LOGDIR;/&AQM_EXTRN_ICS_TN;_@Y@m@d@H&LOGEXT; GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; PDY@Y@m@d @@ -603,15 +603,15 @@ MODULES_RUN_TASK_FP script. ************************************************************************ ************************************************************************ --> - + &RSRV_DEFAULT; - &LOAD_MODULES_RUN_TASK_FP; "&ADD_AQM_ICS_TN;" "&JOBSdir;/JREGIONAL_ADD_AQM_ICS" - {{ nnodes_add_aqm_ics }}:ppn={{ ppn_add_aqm_ics }} - {{ wtime_add_aqm_ics }} + &LOAD_MODULES_RUN_TASK_FP; "&AQM_ICS_TN;" "&JOBSdir;/JREGIONAL_AQM_ICS" + {{ nnodes_aqm_ics }}:ppn={{ ppn_aqm_ics }} + {{ wtime_aqm_ics }} &NCORES_PER_NODE; - &ADD_AQM_ICS_TN; - &LOGDIR;/&ADD_AQM_ICS_TN;_@Y@m@d@H&LOGEXT; + &AQM_ICS_TN; + &LOGDIR;/&AQM_ICS_TN;_@Y@m@d@H&LOGEXT; GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; PDY@Y@m@d @@ -633,20 +633,20 @@ MODULES_RUN_TASK_FP script. {%- endif %} -{%- if run_task_add_aqm_lbcs %} +{%- if run_task_aqm_lbcs %} - + &RSRV_DEFAULT; - &LOAD_MODULES_RUN_TASK_FP; "&ADD_AQM_LBCS_TN;" "&JOBSdir;/JREGIONAL_ADD_AQM_LBCS" - {{ nnodes_add_aqm_lbcs }}:ppn={{ ppn_add_aqm_lbcs }} - {{ wtime_add_aqm_lbcs }} + &LOAD_MODULES_RUN_TASK_FP; "&AQM_LBCS_TN;" "&JOBSdir;/JREGIONAL_AQM_LBCS" + {{ nnodes_aqm_lbcs }}:ppn={{ ppn_aqm_lbcs }} + {{ wtime_aqm_lbcs }} &NCORES_PER_NODE; - &ADD_AQM_LBCS_TN; - &LOGDIR;/&ADD_AQM_LBCS_TN;_@Y@m@d@H&LOGEXT; + &AQM_LBCS_TN; + &LOGDIR;/&AQM_LBCS_TN;_@Y@m@d@H&LOGEXT; GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; PDY@Y@m@d @@ -700,27 +700,27 @@ MODULES_RUN_TASK_FP script. -{%- if run_task_run_nexus %} - +{%- if run_task_nexus_emission %} + {%- endif %} -{%- if run_task_run_pt_source %} - +{%- if run_task_point_source %} + {%- endif %} -{%- if run_task_add_aqm_ics %} +{%- if run_task_aqm_ics %} - + {%- if not coldstart %} - + {%- else %} {%- endif %} {%- endif %} -{%- if run_task_add_aqm_lbcs %} - +{%- if run_task_aqm_lbcs %} + {%- endif %} @@ -982,19 +982,19 @@ the tag to be identical to the ones above for other output times. {%- endif %} {%- endif %} -{%- if run_task_run_post_stat %} +{%- if run_task_post_stat %} - + &RSRV_DEFAULT; - &LOAD_MODULES_RUN_TASK_FP; "&RUN_POST_STAT_TN;" "&JOBSdir;/JREGIONAL_RUN_POST_STAT" - {{ nnodes_run_post_stat }}:ppn={{ ppn_run_post_stat }} - {{ wtime_run_post_stat }} + &LOAD_MODULES_RUN_TASK_FP; "&POST_STAT_TN;" "&JOBSdir;/JREGIONAL_POST_STAT" + {{ nnodes_post_stat }}:ppn={{ ppn_post_stat }} + {{ wtime_post_stat }} &NCORES_PER_NODE; - &RUN_POST_STAT_TN; - &LOGDIR;/&RUN_POST_STAT_TN;_@Y@m@d@H&LOGEXT; + &POST_STAT_TN; + &LOGDIR;/&POST_STAT_TN;_@Y@m@d@H&LOGEXT; GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; PDY@Y@m@d diff --git a/scripts/exregional_add_aqm_ics.sh b/scripts/exregional_aqm_ics.sh similarity index 100% rename from scripts/exregional_add_aqm_ics.sh rename to scripts/exregional_aqm_ics.sh diff --git a/scripts/exregional_add_aqm_lbcs.sh b/scripts/exregional_aqm_lbcs.sh similarity index 97% rename from scripts/exregional_add_aqm_lbcs.sh rename to scripts/exregional_aqm_lbcs.sh index 8638fd9bf3..fb265a5261 100755 --- a/scripts/exregional_add_aqm_lbcs.sh +++ b/scripts/exregional_aqm_lbcs.sh @@ -62,7 +62,7 @@ export OMP_STACKSIZE=${OMP_STACKSIZE_MAKE_LBCS} # eval ${PRE_TASK_CMDS} -nprocs=$(( NNODES_ADD_AQM_LBCS*PPN_ADD_AQM_LBCS )) +nprocs=$(( NNODES_AQM_LBCS*PPN_AQM_LBCS )) if [ -z "${RUN_CMD_UTILS:-}" ] ; then print_err_msg_exit "\ @@ -93,7 +93,7 @@ cd_vrfy $DATA yyyymmdd="${PDY}" mm="${PDY:4:2}" -if [ ${RUN_ADD_AQM_CHEM_LBCS} = "TRUE" ]; then +if [ ${DO_AQM_CHEM_LBCS} = "TRUE" ]; then ext_lbcs_file=${AQM_LBCS_FILES} chem_lbcs_fn=${ext_lbcs_file///${mm}} @@ -127,7 +127,7 @@ fi # #----------------------------------------------------------------------- # -if [ ${RUN_ADD_AQM_GEFS_LBCS} = "TRUE" ]; then +if [ ${DO_AQM_GEFS_LBCS} = "TRUE" ]; then cp_vrfy ${INPUT_DATA}/${NET}.${cycle}${dot_ensmem}.gfs_bndy.tile7.???.nc $DATA diff --git a/scripts/exregional_run_nexus.sh b/scripts/exregional_nexus_emission.sh similarity index 96% rename from scripts/exregional_run_nexus.sh rename to scripts/exregional_nexus_emission.sh index beefb36cf1..637442e2b0 100755 --- a/scripts/exregional_run_nexus.sh +++ b/scripts/exregional_nexus_emission.sh @@ -51,9 +51,9 @@ This is the ex-script for the task that runs NEXUS. # #----------------------------------------------------------------------- # -export KMP_AFFINITY=${KMP_AFFINITY_RUN_NEXUS} -export OMP_NUM_THREADS=${OMP_NUM_THREADS_RUN_NEXUS} -export OMP_STACKSIZE=${OMP_STACKSIZE_RUN_NEXUS} +export KMP_AFFINITY=${KMP_AFFINITY_NEXUS_EMISSION} +export OMP_NUM_THREADS=${OMP_NUM_THREADS_NEXUS_EMISSION} +export OMP_STACKSIZE=${OMP_STACKSIZE_NEXUS_EMISSION} # #----------------------------------------------------------------------- # @@ -63,9 +63,9 @@ export OMP_STACKSIZE=${OMP_STACKSIZE_RUN_NEXUS} # eval ${PRE_TASK_CMDS} -nprocs=$(( NNODES_RUN_NEXUS*PPN_RUN_NEXUS )) -ppn_run_aqm="${PPN_RUN_NEXUS}" -omp_num_threads_run_aqm="${OMP_NUM_THREADS_RUN_NEXUS}" +nprocs=$(( NNODES_NEXUS_EMISSION*PPN_NEXUS_EMISSION )) +ppn_run_aqm="${PPN_NEXUS_EMISSION}" +omp_num_threads_run_aqm="${OMP_NUM_THREADS_NEXUS_EMISSION}" if [ -z "${RUN_CMD_AQM:-}" ] ; then print_err_msg_exit "\ diff --git a/scripts/exregional_run_pt_source.sh b/scripts/exregional_point_source.sh similarity index 95% rename from scripts/exregional_run_pt_source.sh rename to scripts/exregional_point_source.sh index f50334c638..ecde4364df 100755 --- a/scripts/exregional_run_pt_source.sh +++ b/scripts/exregional_point_source.sh @@ -51,9 +51,9 @@ This is the ex-script for the task that runs PT_SOURCE. # #----------------------------------------------------------------------- # -export KMP_AFFINITY=${KMP_AFFINITY_RUN_PT_SOURCE} -export OMP_NUM_THREADS=${OMP_NUM_THREADS_RUN_PT_SOURCE} -export OMP_STACKSIZE=${OMP_STACKSIZE_RUN_PT_SOURCE} +export KMP_AFFINITY=${KMP_AFFINITY_POINT_SOURCE} +export OMP_NUM_THREADS=${OMP_NUM_THREADS_POINT_SOURCE} +export OMP_STACKSIZE=${OMP_STACKSIZE_POINT_SOURCE} # #----------------------------------------------------------------------- # @@ -64,8 +64,8 @@ export OMP_STACKSIZE=${OMP_STACKSIZE_RUN_PT_SOURCE} eval ${PRE_TASK_CMDS} nprocs=$(( LAYOUT_X*LAYOUT_Y )) -ppn_run_aqm="${PPN_RUN_PT_SOURCE}" -omp_num_threads_run_aqm="${OMP_NUM_THREADS_RUN_PT_SOURCE}" +ppn_run_aqm="${PPN_POINT_SOURCE}" +omp_num_threads_run_aqm="${OMP_NUM_THREADS_POINT_SOURCE}" nstep=$(( FCST_LEN_HRS+1 )) yyyymmddhh="${PDY}${cyc}" diff --git a/scripts/exregional_run_post_stat.sh b/scripts/exregional_post_stat.sh similarity index 98% rename from scripts/exregional_run_post_stat.sh rename to scripts/exregional_post_stat.sh index 0c7f1dfb4e..e13e7081e1 100755 --- a/scripts/exregional_run_post_stat.sh +++ b/scripts/exregional_post_stat.sh @@ -51,9 +51,9 @@ This is the ex-script for the task that runs POST-UPP-STAT. # #----------------------------------------------------------------------- # -export KMP_AFFINITY=${KMP_AFFINITY_RUN_POST_STAT} -export OMP_NUM_THREADS=${OMP_NUM_THREADS_RUN_POST_STAT} -export OMP_STACKSIZE=${OMP_STACKSIZE_RUN_POST_STAT} +export KMP_AFFINITY=${KMP_AFFINITY_POST_STAT} +export OMP_NUM_THREADS=${OMP_NUM_THREADS_POST_STAT} +export OMP_STACKSIZE=${OMP_STACKSIZE_POST_STAT} # #----------------------------------------------------------------------- # @@ -616,7 +616,7 @@ fi # print_info_msg " ======================================================================== -UPP-POST-STAT completed successfully. +POST-STAT completed successfully. Exiting script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index fac94b81b0..ab01145887 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -2272,50 +2272,50 @@ cpl_aqm_parm: # #----------------------------------------------------------------------- # - RUN_TASK_ADD_AQM_ICS: false - RUN_TASK_ADD_AQM_LBCS: false - RUN_TASK_RUN_NEXUS: false - RUN_TASK_RUN_PT_SOURCE: false - RUN_TASK_RUN_POST_STAT: false + RUN_TASK_AQM_ICS: false + RUN_TASK_AQM_LBCS: false + RUN_TASK_NEXUS_EMISSION: false + RUN_TASK_POINT_SOURCE: false + RUN_TASK_POST_STAT: false - ADD_AQM_ICS_TN: "add_aqm_ics" - NNODES_ADD_AQM_ICS: 1 - PPN_ADD_AQM_ICS: 1 - WTIME_ADD_AQM_ICS: 00:30:00 - MAXTRIES_ADD_AQM_ICS: 2 + AQM_ICS_TN: "aqm_ics" + NNODES_AQM_ICS: 1 + PPN_AQM_ICS: 1 + WTIME_AQM_ICS: 00:30:00 + MAXTRIES_AQM_ICS: 2 - ADD_AQM_LBCS_TN: "add_aqm_lbcs" - NNODES_ADD_AQM_LBCS: 1 - PPN_ADD_AQM_LBCS: 24 - WTIME_ADD_AQM_LBCS: 00:30:00 - MAXTRIES_ADD_AQM_LBCS: 2 + AQM_LBCS_TN: "aqm_lbcs" + NNODES_AQM_LBCS: 1 + PPN_AQM_LBCS: 24 + WTIME_AQM_LBCS: 00:30:00 + MAXTRIES_AQM_LBCS: 2 - RUN_NEXUS_TN: "run_nexus" - NNODES_RUN_NEXUS: 4 - PPN_RUN_NEXUS: "" # will be calculated from NCORES_PER_NODE and OMP_NUM_THREADS in setup.py - WTIME_RUN_NEXUS: 00:30:00 - MAXTRIES_RUN_NEXUS: 2 - KMP_AFFINITY_RUN_NEXUS: "scatter" - OMP_NUM_THREADS_RUN_NEXUS: 2 - OMP_STACKSIZE_RUN_NEXUS: "1024m" + NEXUS_EMISSION_TN: "nexus_emission" + NNODES_NEXUS_EMISSION: 4 + PPN_NEXUS_EMISSION: "" # will be calculated from NCORES_PER_NODE and OMP_NUM_THREADS in setup.py + WTIME_NEXUS_EMISSION: 00:30:00 + MAXTRIES_NEXUS_EMISSION: 2 + KMP_AFFINITY_NEXUS_EMISSION: "scatter" + OMP_NUM_THREADS_NEXUS_EMISSION: 2 + OMP_STACKSIZE_NEXUS_EMISSION: "1024m" - RUN_PT_SOURCE_TN: "run_pt_source" - NNODES_RUN_PT_SOURCE: "" # will be calculated in the workflow generation scripts - PPN_RUN_PT_SOURCE: "" # will be calculated from NCORES_PER_NODE and OMP_NUM_THREADS in setup.py - WTIME_RUN_PT_SOURCE: 00:30:00 - MAXTRIES_RUN_PT_SOURCE: 2 - KMP_AFFINITY_RUN_PT_SOURCE: "scatter" - OMP_NUM_THREADS_RUN_PT_SOURCE: 2 - OMP_STACKSIZE_RUN_PT_SOURCE: "1024m" + POINT_SOURCE_TN: "point_source" + NNODES_POINT_SOURCE: "" # will be calculated in the workflow generation scripts + PPN_POINT_SOURCE: "" # will be calculated from NCORES_PER_NODE and OMP_NUM_THREADS in setup.py + WTIME_POINT_SOURCE: 00:30:00 + MAXTRIES_POINT_SOURCE: 2 + KMP_AFFINITY_POINT_SOURCE: "scatter" + OMP_NUM_THREADS_POINT_SOURCE: 2 + OMP_STACKSIZE_POINT_SOURCE: "1024m" - RUN_POST_STAT_TN: "run_post_stat" - NNODES_RUN_POST_STAT: 1 - PPN_RUN_POST_STAT: 1 - WTIME_RUN_POST_STAT: 00:30:00 - MAXTRIES_RUN_POST_STAT: 2 - KMP_AFFINITY_RUN_POST_STAT: "scatter" - OMP_NUM_THREADS_RUN_POST_STAT: 1 - OMP_STACKSIZE_RUN_POST_STAT: "2056M" + POST_STAT_TN: "post_stat" + NNODES_POST_STAT: 1 + PPN_POST_STAT: 1 + WTIME_POST_STAT: 00:30:00 + MAXTRIES_POST_STAT: 2 + KMP_AFFINITY_POST_STAT: "scatter" + OMP_NUM_THREADS_POST_STAT: 1 + OMP_STACKSIZE_POST_STAT: "2056M" # #----------------------------------------------------------------------- @@ -2382,7 +2382,10 @@ cpl_aqm_parm: # AQM_GEFS_CYC: # Cycle of the GEFS aerosol LBC files # -# RUN_ADD_AQM_GEFS_LBCS: +# DO_AQM_CHEM_LBCS: +# Add chemical LBCs to chemical LBCs +# +# DO_AQM_GEFS_LBCS: # Add GEFS aerosol LBCs to chemical LBCs # # NEXUS_INPUT_DIR: @@ -2433,8 +2436,8 @@ cpl_aqm_parm: AQM_GEFS_DIR: "" AQM_GEFS_CYC: 0 - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: false + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: false NEXUS_INPUT_DIR: "" NEXUS_FIX_DIR: "" diff --git a/ush/generate_FV3LAM_wflow.py b/ush/generate_FV3LAM_wflow.py index 0e19377b3c..0b4ccd2b71 100755 --- a/ush/generate_FV3LAM_wflow.py +++ b/ush/generate_FV3LAM_wflow.py @@ -252,13 +252,13 @@ def generate_FV3LAM_wflow(USHdir, logfile: str = 'log.generate_FV3LAM_wflow') -> # "ncores_run_fcst": PE_MEMBER01, "native_run_fcst": f"--cpus-per-task {OMP_NUM_THREADS_RUN_FCST} --exclusive", - "native_run_nexus": f"--cpus-per-task {OMP_NUM_THREADS_RUN_NEXUS}", + "native_nexus_emission": f"--cpus-per-task {OMP_NUM_THREADS_NEXUS_EMISSION}", # - # Number of OpenMP threads for the run_fcst task and run_nexus + # Number of OpenMP threads for the run_fcst task and nexus_emission task # "omp_num_threads_run_fcst": OMP_NUM_THREADS_RUN_FCST, - "omp_num_threads_run_nexus": OMP_NUM_THREADS_RUN_NEXUS, - "omp_num_threads_run_pt_source": OMP_NUM_THREADS_RUN_PT_SOURCE, + "omp_num_threads_nexus_emission": OMP_NUM_THREADS_NEXUS_EMISSION, + "omp_num_threads_point_source": OMP_NUM_THREADS_POINT_SOURCE, # # Number of logical processes per node for each task. If running without # threading, this is equal to the number of MPI processes per node. @@ -418,39 +418,39 @@ def generate_FV3LAM_wflow(USHdir, logfile: str = 'log.generate_FV3LAM_wflow') -> # # AQM parameters # - 'add_aqm_ics_tn': ADD_AQM_ICS_TN, - 'add_aqm_lbcs_tn': ADD_AQM_LBCS_TN, - 'run_nexus_tn': RUN_NEXUS_TN, - 'run_pt_source_tn': RUN_PT_SOURCE_TN, - 'run_post_stat_tn': RUN_POST_STAT_TN, + 'aqm_ics_tn': AQM_ICS_TN, + 'aqm_lbcs_tn': AQM_LBCS_TN, + 'nexus_emission_tn': NEXUS_EMISSION_TN, + 'point_source_tn': POINT_SOURCE_TN, + 'post_stat_tn': POST_STAT_TN, 'coldstart': COLDSTART, 'warmstart_cycle_dir': WARMSTART_CYCLE_DIR, 'cycl_next': CYCL_NEXT, - 'run_task_add_aqm_ics': RUN_TASK_ADD_AQM_ICS, - 'run_task_add_aqm_lbcs': RUN_TASK_ADD_AQM_LBCS, - 'run_task_run_nexus': RUN_TASK_RUN_NEXUS, - 'run_task_run_pt_source': RUN_TASK_RUN_PT_SOURCE, - 'run_task_run_post_stat': RUN_TASK_RUN_POST_STAT, - 'nnodes_add_aqm_ics': NNODES_ADD_AQM_ICS, - 'nnodes_add_aqm_lbcs': NNODES_ADD_AQM_LBCS, - 'nnodes_run_nexus': NNODES_RUN_NEXUS, - 'nnodes_run_pt_source': NNODES_RUN_PT_SOURCE, - 'nnodes_run_post_stat': NNODES_RUN_POST_STAT, - 'ppn_add_aqm_ics': PPN_ADD_AQM_ICS, - 'ppn_add_aqm_lbcs': PPN_ADD_AQM_LBCS, - 'ppn_run_nexus': PPN_RUN_NEXUS, - 'ppn_run_pt_source': PPN_RUN_PT_SOURCE, - 'ppn_run_post_stat': PPN_RUN_POST_STAT, - 'wtime_add_aqm_ics': WTIME_ADD_AQM_ICS, - 'wtime_add_aqm_lbcs': WTIME_ADD_AQM_LBCS, - 'wtime_run_nexus': WTIME_RUN_NEXUS, - 'wtime_run_pt_source': WTIME_RUN_PT_SOURCE, - 'wtime_run_post_stat': WTIME_RUN_POST_STAT, - 'maxtries_add_aqm_ics': MAXTRIES_ADD_AQM_ICS, - 'maxtries_add_aqm_lbcs': MAXTRIES_ADD_AQM_LBCS, - 'maxtries_run_nexus': MAXTRIES_RUN_NEXUS, - 'maxtries_run_pt_source': MAXTRIES_RUN_PT_SOURCE, - 'maxtries_run_post_stat': MAXTRIES_RUN_POST_STAT, + 'run_task_aqm_ics': RUN_TASK_AQM_ICS, + 'run_task_aqm_lbcs': RUN_TASK_AQM_LBCS, + 'run_task_nexus_emission': RUN_TASK_NEXUS_EMISSION, + 'run_task_point_source': RUN_TASK_POINT_SOURCE, + 'run_task_post_stat': RUN_TASK_POST_STAT, + 'nnodes_aqm_ics': NNODES_AQM_ICS, + 'nnodes_aqm_lbcs': NNODES_AQM_LBCS, + 'nnodes_nexus_emission': NNODES_NEXUS_EMISSION, + 'nnodes_point_source': NNODES_POINT_SOURCE, + 'nnodes_post_stat': NNODES_POST_STAT, + 'ppn_aqm_ics': PPN_AQM_ICS, + 'ppn_aqm_lbcs': PPN_AQM_LBCS, + 'ppn_nexus_emission': PPN_NEXUS_EMISSION, + 'ppn_point_source': PPN_POINT_SOURCE, + 'ppn_post_stat': PPN_POST_STAT, + 'wtime_aqm_ics': WTIME_AQM_ICS, + 'wtime_aqm_lbcs': WTIME_AQM_LBCS, + 'wtime_nexus_emission': WTIME_NEXUS_EMISSION, + 'wtime_point_source': WTIME_POINT_SOURCE, + 'wtime_post_stat': WTIME_POST_STAT, + 'maxtries_aqm_ics': MAXTRIES_AQM_ICS, + 'maxtries_aqm_lbcs': MAXTRIES_AQM_LBCS, + 'maxtries_nexus_emission': MAXTRIES_NEXUS_EMISSION, + 'maxtries_point_source': MAXTRIES_POINT_SOURCE, + 'maxtries_post_stat': MAXTRIES_POST_STAT, # # Ensemble-related parameters. # diff --git a/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera b/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera index 8a101530d2..662b26c541 100644 --- a/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera +++ b/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera @@ -60,13 +60,13 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera b/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera index 915b91c19a..7a00ac87bf 100644 --- a/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera +++ b/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera @@ -49,13 +49,13 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: true - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: true + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera index 12b3b6bcf1..d5abdc2196 100644 --- a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera +++ b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera @@ -60,13 +60,13 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera b/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera index 897a864302..90e4cf9d24 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera @@ -51,13 +51,13 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera b/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera index 403cac906d..bf264737ba 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera @@ -45,13 +45,13 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d4cyc_hera b/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d4cyc_hera index a9ba845979..89ac6d9882 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d4cyc_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d4cyc_hera @@ -54,13 +54,13 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera b/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera index 1992920599..4a482dceae 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera @@ -49,13 +49,13 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion b/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion index ed8af82106..ca70edb49a 100644 --- a/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion +++ b/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion @@ -52,13 +52,13 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: false - RUN_TASK_RUN_POST_STAT: false - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: false + RUN_TASK_POST_STAT: false + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /work/noaa/fv3-cam/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 index 2cedb8a499..b4447fcc81 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 @@ -51,15 +51,15 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - NNODES_RUN_NEXUS: 4 - PPN_RUN_NEXUS: 40 - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + NNODES_NEXUS_EMISSION: 4 + PPN_NEXUS_EMISSION: 40 + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 index 7780f3f405..4b3ac12e76 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 @@ -45,15 +45,15 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - NNODES_RUN_NEXUS: 2 - PPN_RUN_NEXUS: 40 - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + NNODES_NEXUS_EMISSION: 2 + PPN_NEXUS_EMISSION: 40 + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 index 80582abb4a..d9bf201182 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 @@ -54,15 +54,15 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - NNODES_RUN_NEXUS: 2 - PPN_RUN_NEXUS: 40 - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + NNODES_NEXUS_EMISSION: 2 + PPN_NEXUS_EMISSION: 40 + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/epa/data diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d1c_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d1c_wcoss2 new file mode 100644 index 0000000000..62cd08af46 --- /dev/null +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d1c_wcoss2 @@ -0,0 +1,80 @@ +metadata: + description: config for Online-CMAQ, GSD_HRRR_25km, 72hr forecast, post_stat, on WCOSS2 +user: + RUN_ENVIR: community + MACHINE: wcoss2 + ACCOUNT: AQM-DEV +workflow: + USE_CRON_TO_RELAUNCH: true + CRON_RELAUNCH_INTVL_MNTS: 3 +# EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs + EXPT_SUBDIR: aqm_hrrr25_poststat + CCPP_PHYS_SUITE: FV3_GFS_v15p2 + DATE_FIRST_CYCL: '2019080500' + DATE_LAST_CYCL: '2019080506' + INCR_CYCL_FREQ: 6 + FCST_LEN_HRS: 72 + PREEXISTING_DIR_METHOD: rename + VERBOSE: true + COMPILER: intel + DIAG_TABLE_TMPL_FN: diag_table_aqm + FIELD_TABLE_TMPL_FN: field_table_aqm +nco: + NET: aqm +workflow_switches: + RUN_TASK_MAKE_GRID: true + RUN_TASK_MAKE_OROG: true + RUN_TASK_MAKE_SFC_CLIMO: true + RUN_TASK_RUN_POST: true +task_get_extrn_ics: + EXTRN_MDL_NAME_ICS: FV3GFS +# FV3GFS_FILE_FMT_ICS: grib2 +task_get_extrn_lbcs: + EXTRN_MDL_NAME_LBCS: FV3GFS + LBC_SPEC_INTVL_HRS: 6 +# FV3GFS_FILE_FMT_LBCS: grib2 + WTIME_GET_EXTRN_LBCS: 01:00:00 +task_make_lbcs: + WTIME_MAKE_LBCS: 01:00:00 +task_run_fcst: + RESTART_INTERVAL: 6 + WTIME_RUN_FCST: 01:00:00 + QUILTING: true + PRINT_ESMF: false + PREDEF_GRID_NAME: GSD_HRRR_25km +global: + DO_ENSEMBLE: false + NUM_ENS_MEMBERS: 2 + HALO_BLEND: 0 +cpl_aqm_parm: + CPL_AQM: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: false + RUN_TASK_POST_STAT: true + NNODES_NEXUS_EMISSION: 2 + PPN_NEXUS_EMISSION: 40 + WTIME_NEXUS_EMISSION: 01:00:00 + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: false + AQM_GEFS_CYC: 0 + AQM_RC_TMPL_FN: aqm.rc + AQM_CONFIG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/epa/data + AQM_BIO_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/bio + AQM_BIO_FILE: BEIS_SARC401.ncf + DO_AQM_FENGSHA: false + DO_AQM_CANOPY: false + AQM_FIRE_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/emissions/GSCE/GBBEPx.in.C401/Reprocessed + AQM_FIRE_FILE: GBBEPx_C401GRID.emissions_v003 + AQM_FIRE_FILE_SUFFIX: .nc + AQM_RC_FIRE_FREQUENCY: static + AQM_LBCS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/LBCS/boundary_conditions_v4 + AQM_LBCS_FILES: gfs_bndy_chem_.tile7.000.nc + AQM_GEFS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/GEFS_aerosol + NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions + NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix + NEXUS_GRID_FN: grid_spec_GSD_HRRR_25km.nc + PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/12US1 + PT_SRC_BASE_DIR_HI: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/3HI1 + PT_SRC_BASE_DIR_AK: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/9AK1 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 index e66923c2be..335af52ec6 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 @@ -49,15 +49,15 @@ global: HALO_BLEND: 0 cpl_aqm_parm: CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_RUN_NEXUS: true - RUN_TASK_RUN_PT_SOURCE: true - RUN_TASK_RUN_POST_STAT: false - NNODES_RUN_NEXUS: 2 - PPN_RUN_NEXUS: 40 - RUN_ADD_AQM_CHEM_LBCS: true - RUN_ADD_AQM_GEFS_LBCS: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + NNODES_NEXUS_EMISSION: 2 + PPN_NEXUS_EMISSION: 40 + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 AQM_RC_TMPL_FN: aqm.rc AQM_CONFIG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/epa/data diff --git a/ush/setup.py b/ush/setup.py index 60399b8a39..44f2e711c0 100644 --- a/ush/setup.py +++ b/ush/setup.py @@ -466,15 +466,15 @@ def get_location(xcs,fmt): # # ----------------------------------------------------------------------- # - global PPN_RUN_FCST, PPN_RUN_NEXUS, PPN_RUN_PT_SOURCE + global PPN_RUN_FCST, PPN_NEXUS_EMISSION, PPN_POINT_SOURCE ppn_run_fcst_default = NCORES_PER_NODE // OMP_NUM_THREADS_RUN_FCST PPN_RUN_FCST = PPN_RUN_FCST or ppn_run_fcst_default - ppn_run_nexus_default = NCORES_PER_NODE // OMP_NUM_THREADS_RUN_NEXUS - PPN_RUN_NEXUS = PPN_RUN_NEXUS or ppn_run_nexus_default + ppn_nexus_emission_default = NCORES_PER_NODE // OMP_NUM_THREADS_NEXUS_EMISSION + PPN_NEXUS_EMISSION = PPN_NEXUS_EMISSION or ppn_nexus_emission_default - ppn_run_pt_source_default = NCORES_PER_NODE // OMP_NUM_THREADS_RUN_PT_SOURCE - PPN_RUN_PT_SOURCE = PPN_RUN_PT_SOURCE or ppn_run_pt_source_default + ppn_point_source_default = NCORES_PER_NODE // OMP_NUM_THREADS_POINT_SOURCE + PPN_POINT_SOURCE = PPN_POINT_SOURCE or ppn_point_source_default # # ----------------------------------------------------------------------- # @@ -1529,9 +1529,9 @@ def get_location(xcs,fmt): # # ----------------------------------------------------------------------- # - global NNODES_RUN_FCST, NNODES_RUN_PT_SOURCE + global NNODES_RUN_FCST, NNODES_POINT_SOURCE NNODES_RUN_FCST = (PE_MEMBER01 + PPN_RUN_FCST - 1) // PPN_RUN_FCST - NNODES_RUN_PT_SOURCE = ((LAYOUT_X * LAYOUT_Y) + PPN_RUN_PT_SOURCE -1) // PPN_RUN_PT_SOURCE + NNODES_POINT_SOURCE = ((LAYOUT_X * LAYOUT_Y) + PPN_POINT_SOURCE -1) // PPN_POINT_SOURCE # # ----------------------------------------------------------------------- diff --git a/ush/valid_param_vals.yaml b/ush/valid_param_vals.yaml index 00087ddd15..c6060028f4 100644 --- a/ush/valid_param_vals.yaml +++ b/ush/valid_param_vals.yaml @@ -85,11 +85,11 @@ valid_vals_SUB_HOURLY_POST: [True, False] valid_vals_DT_SUBHOURLY_POST_MNTS: [0, 1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30] valid_vals_USE_MERRA_CLIMO: [True, False] valid_vals_CPL_AQM: [True, False] -valid_vals_RUN_TASK_ADD_AQM_ICS: [True, False] -valid_vals_RUN_TASK_ADD_AQM_LBCS: [True, False] -valid_vals_RUN_ADD_AQM_CHEM_LBCS: [True, False] -valid_vals_RUN_ADD_AQM_GEFS_LBCS: [True, False] -valid_vals_RUN_TASK_RUN_NEXUS: [True, False] -valid_vals_RUN_TASK_RUN_PT_SOURCE: [True, False] -valid_vals_RUN_TASK_RUN_POST_STAT: [True, False] +valid_vals_RUN_TASK_AQM_ICS: [True, False] +valid_vals_RUN_TASK_AQM_LBCS: [True, False] +valid_vals_DO_AQM_CHEM_LBCS: [True, False] +valid_vals_DO_AQM_GEFS_LBCS: [True, False] +valid_vals_RUN_TASK_NEXUS_EMISSION: [True, False] +valid_vals_RUN_TASK_POINT_SOURCE: [True, False] +valid_vals_RUN_TASK_POST_STAT: [True, False] valid_vals_COLDSTART: [True, False] From 41c451fb530899604c71dcc5c3c117e82f28dcd8 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Fri, 28 Oct 2022 16:19:33 +0000 Subject: [PATCH 004/119] fix restart issue on cycled runs in nco mode --- scripts/exregional_run_fcst.sh | 19 +++++++++++++++---- ...> config.yaml_nco_gsdhrrr25km_1d2cyc_hera} | 6 +++--- ...config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2} | 8 ++++---- ...g.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2} | 0 4 files changed, 22 insertions(+), 11 deletions(-) rename ush/sample_config/WE2E_test/hera/{config.yaml_nco_gsdhrrr25km_1d4cyc_hera => config.yaml_nco_gsdhrrr25km_1d2cyc_hera} (96%) rename ush/sample_config/WE2E_test/wcoss2/{config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 => config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2} (95%) rename ush/sample_config/WE2E_test/wcoss2/{config.yaml_poststat_gsdhrrr25km_1d1c_wcoss2 => config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2} (100%) diff --git a/scripts/exregional_run_fcst.sh b/scripts/exregional_run_fcst.sh index 5e912bdc15..d3fb31dd8f 100755 --- a/scripts/exregional_run_fcst.sh +++ b/scripts/exregional_run_fcst.sh @@ -538,6 +538,9 @@ if [ "${RUN_ENVIR}" = "nco" ]; then ln_vrfy -sf "${DATA_SHARED}/${NET}.${cycle}${dot_ensmem}.dyn.f${fhr}${mnts_secs_str}.nc" "dynf${fhr}${mnts_secs_str}.nc" ln_vrfy -sf "${DATA_SHARED}/${NET}.${cycle}${dot_ensmem}.phy.f${fhr}${mnts_secs_str}.nc" "phyf${fhr}${mnts_secs_str}.nc" done + + # create symlink to RESTART + ln_vrfy -sf "${DATA}/RESTART" "${COMIN}/RESTART" fi # #----------------------------------------------------------------------- @@ -574,13 +577,21 @@ POST_STEP #----------------------------------------------------------------------- # # Move RESTART directory to COMIN and create symlink in DATA only for -# NCO mode. +# NCO mode and when it is not empty. # #----------------------------------------------------------------------- # -if [ "${RUN_ENVIR}" = "nco" ]; then - mv_vrfy RESTART ${COMIN} - ln_vrfy -sf ${COMIN}/RESTART ${DATA}/RESTART +if [ "${RUN_ENVIR}" = "nco" ]; then + rm_vrfy -rf "${COMIN}/RESTART" + if [ "$(ls -A RESTART)" ]; then + mv_vrfy RESTART ${COMIN} + ln_vrfy -sf ${COMIN}/RESTART ${DATA}/RESTART + fi + + if [ "${CPL_AQM}" = "TRUE" ]; then + cp_vrfy ${DATA_SHARED}/${NET}.${cycle}${dot_ensmem}.dyn.f*.nc ${COMOUT} + cp_vrfy ${DATA_SHARED}/${NET}.${cycle}${dot_ensmem}.phy.f*.nc ${COMOUT} + fi fi # #----------------------------------------------------------------------- diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d4cyc_hera b/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera similarity index 96% rename from ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d4cyc_hera rename to ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera index 89ac6d9882..9dacbf7834 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d4cyc_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera @@ -1,5 +1,5 @@ metadata: - description: config for Online-CMAQ, GSD_HRRR_25km, NCO mode, 6hr forecast, 4cycles a day, on HERA + description: config for Online-CMAQ, GSD_HRRR_25km, NCO mode, 6hr forecast, 2cycles a day, on HERA user: RUN_ENVIR: nco MACHINE: hera @@ -11,9 +11,9 @@ workflow: EXPT_SUBDIR: aqm_nco_hrrr25_1d4cyc CCPP_PHYS_SUITE: FV3_GFS_v15p2 DATE_FIRST_CYCL: '2019080500' - DATE_LAST_CYCL: '2019080518' + DATE_LAST_CYCL: '2019080506' INCR_CYCL_FREQ: 6 - FCST_LEN_HRS: 6 + FCST_LEN_HRS: 12 PREEXISTING_DIR_METHOD: rename VERBOSE: true COMPILER: intel diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 similarity index 95% rename from ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 rename to ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 index d9bf201182..f0a49c9765 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d4cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 @@ -1,5 +1,5 @@ metadata: - description: config for Online-CMAQ, GSD_HRRR_25km, NCO mode, 6hr forecast, 4cycles a day, on WCOSS2 + description: config for Online-CMAQ, GSD_HRRR_25km, NCO mode, 6hr forecast, 2cycles a day, on WCOSS2 user: RUN_ENVIR: nco MACHINE: wcoss2 @@ -8,12 +8,12 @@ workflow: USE_CRON_TO_RELAUNCH: true CRON_RELAUNCH_INTVL_MNTS: 3 # EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs - EXPT_SUBDIR: aqm_nco_hrrr25_1d4cyc + EXPT_SUBDIR: aqm_nco_hrrr25_1d2cyc CCPP_PHYS_SUITE: FV3_GFS_v15p2 DATE_FIRST_CYCL: '2019080500' - DATE_LAST_CYCL: '2019080518' + DATE_LAST_CYCL: '2019080506' INCR_CYCL_FREQ: 6 - FCST_LEN_HRS: 6 + FCST_LEN_HRS: 12 PREEXISTING_DIR_METHOD: rename VERBOSE: true COMPILER: intel diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d1c_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 similarity index 100% rename from ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d1c_wcoss2 rename to ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 From 1a427ed7784d7c15e3f339790bf9f2267f4ff3be Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Mon, 31 Oct 2022 12:50:49 +0000 Subject: [PATCH 005/119] update path to point source data on wcoss2 --- scripts/exregional_run_fcst.sh | 5 +++++ ush/predef_grid_params.yaml | 2 +- .../WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 | 6 +++--- .../wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 | 6 +++--- .../wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 | 6 +++--- .../wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 | 6 +++--- .../wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 | 6 +++--- 7 files changed, 21 insertions(+), 16 deletions(-) diff --git a/scripts/exregional_run_fcst.sh b/scripts/exregional_run_fcst.sh index 81f2ba6de2..64df8997ec 100755 --- a/scripts/exregional_run_fcst.sh +++ b/scripts/exregional_run_fcst.sh @@ -541,6 +541,11 @@ if [ "${RUN_ENVIR}" = "nco" ]; then # create an intermediate symlink to RESTART ln_vrfy -sf "${DATA}/RESTART" "${COMIN}/RESTART" + + # create symlink to PT for point source in Online-CMAQ + if [ "${CPL_AQM}" = "TRUE" ] && [ "${RUN_TASK_POINT_SOURCE}" = "TRUE" ]; then + ln_vrfy -sf "${INPUT_DATA}/PT" "${DATA}/PT" + fi fi # #----------------------------------------------------------------------- diff --git a/ush/predef_grid_params.yaml b/ush/predef_grid_params.yaml index add1bc10bc..ed43722d14 100644 --- a/ush/predef_grid_params.yaml +++ b/ush/predef_grid_params.yaml @@ -863,7 +863,7 @@ BLOCKSIZE: 16 # if QUILTING = True WRTCMP_write_groups: 2 - WRTCMP_write_tasks_per_group: 34 + WRTCMP_write_tasks_per_group: 46 WRTCMP_output_grid: "rotated_latlon" WRTCMP_cen_lon: -118.0 WRTCMP_cen_lat: 50.0 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 index b4447fcc81..5167d27d4d 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 @@ -83,8 +83,8 @@ cpl_aqm_parm: NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix NEXUS_GRID_FN: grid_spec_793.nc - PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/12US1 - PT_SRC_BASE_DIR_HI: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/3HI1 - PT_SRC_BASE_DIR_AK: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/9AK1 + PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/12US1 + PT_SRC_BASE_DIR_HI: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/3HI1 + PT_SRC_BASE_DIR_AK: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/9AK1 # COLDSTART: false # WARMSTART_CYCLE_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/restart/RRFS_CONUS_13km/2019080612 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 index 4b3ac12e76..6792f4ebd8 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 @@ -71,6 +71,6 @@ cpl_aqm_parm: NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix NEXUS_GRID_FN: grid_spec_GSD_HRRR_25km.nc - PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/12US1 - PT_SRC_BASE_DIR_HI: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/3HI1 - PT_SRC_BASE_DIR_AK: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/9AK1 + PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/12US1 + PT_SRC_BASE_DIR_HI: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/3HI1 + PT_SRC_BASE_DIR_AK: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/9AK1 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 index f0a49c9765..f23ed3d3d2 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 @@ -80,6 +80,6 @@ cpl_aqm_parm: NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix NEXUS_GRID_FN: grid_spec_GSD_HRRR_25km.nc - PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/12US1 - PT_SRC_BASE_DIR_HI: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/3HI1 - PT_SRC_BASE_DIR_AK: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/9AK1 + PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/12US1 + PT_SRC_BASE_DIR_HI: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/3HI1 + PT_SRC_BASE_DIR_AK: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/9AK1 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 index 62cd08af46..da238e1d17 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 @@ -75,6 +75,6 @@ cpl_aqm_parm: NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix NEXUS_GRID_FN: grid_spec_GSD_HRRR_25km.nc - PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/12US1 - PT_SRC_BASE_DIR_HI: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/3HI1 - PT_SRC_BASE_DIR_AK: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/9AK1 + PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/12US1 + PT_SRC_BASE_DIR_HI: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/3HI1 + PT_SRC_BASE_DIR_AK: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/9AK1 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 index 335af52ec6..5ba7a5a7ab 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 @@ -78,8 +78,8 @@ cpl_aqm_parm: NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix NEXUS_GRID_FN: grid_spec_RRFS_CONUScompact_13km.nc - PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/12US1 - PT_SRC_BASE_DIR_HI: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/3HI1 - PT_SRC_BASE_DIR_AK: /lfs/h2/emc/ptmp/Youhua.Tang/nei2016v1-pt/9AK1 + PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/12US1 + PT_SRC_BASE_DIR_HI: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/3HI1 + PT_SRC_BASE_DIR_AK: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/9AK1 COLDSTART: false WARMSTART_CYCLE_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/restart/RRFS_CONUS_13km/2019080612 From 2574ab1b49ee1ffaad80e620b91fdd40daf6fe40 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Mon, 31 Oct 2022 17:46:35 +0000 Subject: [PATCH 006/119] update templates for GFS_v15p2 with NRT --- parm/FV3.input.yml | 6 + parm/diag_table_aqm.FV3_GFS_v15p2 | 292 +++++++++--------- .../config.yaml_nco_aqmna13km_1day_hera | 20 +- .../config.yaml_nco_aqmna13km_1day_wcoss2 | 97 ++++++ 4 files changed, 259 insertions(+), 156 deletions(-) create mode 100644 ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 diff --git a/parm/FV3.input.yml b/parm/FV3.input.yml index 08ccb6f885..fbe299f445 100644 --- a/parm/FV3.input.yml +++ b/parm/FV3.input.yml @@ -200,12 +200,18 @@ FV3_GFS_v15p2: fv_debug: False fv_sg_adj: 600 k_split: 1 + hord_dp: -5 + hord_mt: 5 + hord_tm: 5 + hord_tr: 8 + hord_vt: 5 kord_mt: 9 kord_tm: -9 kord_tr: 9 kord_wz: 9 n_split: 8 n_sponge: 30 + nord: 2 nord_zs_filter: !!python/none nudge_qv: True range_warn: False diff --git a/parm/diag_table_aqm.FV3_GFS_v15p2 b/parm/diag_table_aqm.FV3_GFS_v15p2 index db617b7a55..b2f92002aa 100644 --- a/parm/diag_table_aqm.FV3_GFS_v15p2 +++ b/parm/diag_table_aqm.FV3_GFS_v15p2 @@ -2,7 +2,7 @@ {{ starttime.strftime("%Y %m %d %H %M %S") }} "grid_spec", -1, "months", 1, "days", "time" -"atmos_4xdaily", 6, "hours", 1, "days", "time" +#"atmos_4xdaily", 6, "hours", 1, "days", "time" "atmos_static", -1, "hours", 1, "hours", "time" "fv3_history", 1, "years", 1, "hours", "time" "fv3_history2d", 1, "years", 1, "hours", "time" @@ -22,75 +22,75 @@ ### # 4x daily output ### - "dynamics", "slp", "slp", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "vort850", "vort850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "vort200", "vort200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "us", "us", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "u1000", "u1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "u850", "u850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "u700", "u700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "u500", "u500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "u200", "u200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "u100", "u100", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "u50", "u50", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "u10", "u10", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "vs", "vs", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "v1000", "v1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "v850", "v850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "v700", "v700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "v500", "v500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "v200", "v200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "v100", "v100", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "v50", "v50", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "v10", "v10", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "slp", "slp", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "vort850", "vort850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "vort200", "vort200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "us", "us", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u1000", "u1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u850", "u850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u700", "u700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u500", "u500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u200", "u200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u100", "u100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u50", "u50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "u10", "u10", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "vs", "vs", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v1000", "v1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v850", "v850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v700", "v700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v500", "v500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v200", "v200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v100", "v100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v50", "v50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "v10", "v10", "atmos_4xdaily", "all", .false., "none", 2 #### - "dynamics", "tm", "tm", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "t1000", "t1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "t850", "t850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "t700", "t700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "t500", "t500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "t200", "t200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "t100", "t100", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "t50", "t50", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "t10", "t10", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "tm", "tm", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t1000", "t1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t850", "t850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t700", "t700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t500", "t500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t200", "t200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t100", "t100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t50", "t50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "t10", "t10", "atmos_4xdaily", "all", .false., "none", 2 #### - "dynamics", "h1000", "h1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h850", "h850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h700", "h700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h500", "h500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h200", "h200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h100", "h100", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h50", "h50", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "h10", "h10", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "h1000", "h1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "h850", "h850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "h700", "h700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "h500", "h500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "h200", "h200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "h100", "h100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "h50", "h50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "h10", "h10", "atmos_4xdaily", "all", .false., "none", 2 #### #"dynamics", "w1000", "w1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "w850", "w850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "w700", "w700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "w500", "w500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "w200", "w200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "w850", "w850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "w700", "w700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "w500", "w500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "w200", "w200", "atmos_4xdaily", "all", .false., "none", 2 #### - "dynamics", "q1000", "q1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "q850", "q850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "q700", "q700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "q500", "q500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "q200", "q200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "q100", "q100", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "q50", "q50", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "q10", "q10", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q1000", "q1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q850", "q850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q700", "q700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q500", "q500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q200", "q200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q100", "q100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q50", "q50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "q10", "q10", "atmos_4xdaily", "all", .false., "none", 2 #### - "dynamics", "rh1000", "rh1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "rh850", "rh850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "rh700", "rh700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "rh500", "rh500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "rh200", "rh200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "omg1000", "omg1000", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "omg850", "omg850", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "omg700", "omg700", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "omg500", "omg500", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "omg200", "omg200", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "omg100", "omg100", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "omg50", "omg50", "atmos_4xdaily", "all", .false., "none", 2 - "dynamics", "omg10", "omg10", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "rh1000", "rh1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "rh850", "rh850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "rh700", "rh700", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "rh500", "rh500", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "rh200", "rh200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg1000", "omg1000", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg850", "omg850", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg700", "omg700", "atmos_4xdaily", "all", .false., "none", 2 +## "dynamics", "omg500", "omg500", "atmos_4xdaily", "all", .false., "none", 2 +## "dynamics", "omg200", "omg200", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg100", "omg100", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg50", "omg50", "atmos_4xdaily", "all", .false., "none", 2 +# "dynamics", "omg10", "omg10", "atmos_4xdaily", "all", .false., "none", 2 ### # gfs static data ### @@ -106,15 +106,15 @@ "gfs_dyn", "vcomp", "vgrd", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "sphum", "spfh", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "temp", "tmp", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "liq_wat", "clwmr", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "liq_wat", "clwmr", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "o3mr", "o3mr", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "delp", "dpres", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "delz", "delz", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "w", "dzdt", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ice_wat", "icmr", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "rainwat", "rwmr", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "snowwat", "snmr", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "graupel", "grle", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ice_wat", "icmr", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "rainwat", "rwmr", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "snowwat", "snmr", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "graupel", "grle", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "ps", "pressfc", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "hs", "hgtsfc", "fv3_history", "all", .false., "none", 2 #"gfs_dyn", "ice_nc", "nicp", "fv3_history", "all", .false., "none", 2 @@ -283,86 +283,86 @@ "gfs_dyn", "no2", "no2", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "no", "no", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "o3", "o3", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "no3", "no3", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "h2o2", "h2o2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "n2o5", "n2o5", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "hno3", "hno3", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "hono", "hono", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "pna", "pna", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "no3", "no3", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "h2o2", "h2o2", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "n2o5", "n2o5", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "hno3", "hno3", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "hono", "hono", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "pna", "pna", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "so2", "so2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "sulf", "sulf", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "pan", "pan", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "pacd", "pacd", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "aacd", "aacd", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ald2", "ald2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "panx", "panx", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "form", "form", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "mepx", "mepx", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "meoh", "meoh", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "rooh", "rooh", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ntr1", "ntr1", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ntr2", "ntr2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "facd", "facd", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "sulf", "sulf", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "pan", "pan", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "pacd", "pacd", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "aacd", "aacd", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ald2", "ald2", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "panx", "panx", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "form", "form", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "mepx", "mepx", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "meoh", "meoh", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "rooh", "rooh", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ntr1", "ntr1", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ntr2", "ntr2", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "facd", "facd", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "co", "co", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "aldx", "aldx", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "glyd", "glyd", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "gly", "gly", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "mgly", "mgly", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "etha", "etha", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "etoh", "etoh", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ket", "ket", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "par", "par", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "acet", "acet", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "prpa", "prpa", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ethy", "ethy", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "eth", "eth", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ole", "ole", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "iole", "iole", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "aldx", "aldx", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "glyd", "glyd", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "gly", "gly", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "mgly", "mgly", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "etha", "etha", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "etoh", "etoh", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ket", "ket", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "par", "par", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "acet", "acet", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "prpa", "prpa", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ethy", "ethy", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "eth", "eth", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ole", "ole", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "iole", "iole", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "isop", "isop", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ispd", "ispd", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "intr", "intr", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ispx", "ispx", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "hpld", "hpld", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "opo3", "opo3", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "epox", "epox", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "terp", "terp", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "benzene", "benzene", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "cres", "cres", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "open", "open", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "tol", "tol", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "xopn", "xopn", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "xylmn", "xylmn", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "naph", "naph", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "cat1", "cat1", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "cron", "cron", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "opan", "opan", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ech4", "ech4", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "cl2", "cl2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "hocl", "hocl", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "fmcl", "fmcl", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "hcl", "hcl", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "clno2", "clno2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "sesq", "sesq", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "soaalk", "soaalk", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vlvpo1", "vlvpo1", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vsvpo1", "vsvpo1", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vsvpo2", "vsvpo2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vsvpo3", "vsvpo3", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vivpo1", "vivpo1", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vlvoo1", "vlvoo1", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vlvoo2", "vlvoo2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vsvoo1", "vsvoo1", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vsvoo2", "vsvoo2", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "vsvoo3", "vsvoo3", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "pcvoc", "pcvoc", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "form_primary", "form_primary", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "ald2_primary", "ald2_primary", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "butadiene13", "butadiene13", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "acrolein", "acrolein", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "acro_primary", "acro_primary", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "tolu", "tolu", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "hg", "hg", "fv3_history", "all", .false., "none", 2 -"gfs_dyn", "hgiigas", "hgiigas", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ispd", "ispd", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "intr", "intr", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ispx", "ispx", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "hpld", "hpld", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "opo3", "opo3", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "epox", "epox", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "terp", "terp", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "benzene", "benzene", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "cres", "cres", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "open", "open", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "tol", "tol", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "xopn", "xopn", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "xylmn", "xylmn", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "naph", "naph", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "cat1", "cat1", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "cron", "cron", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "opan", "opan", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ech4", "ech4", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "cl2", "cl2", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "hocl", "hocl", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "fmcl", "fmcl", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "hcl", "hcl", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "clno2", "clno2", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "sesq", "sesq", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "soaalk", "soaalk", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vlvpo1", "vlvpo1", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vsvpo1", "vsvpo1", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vsvpo2", "vsvpo2", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vsvpo3", "vsvpo3", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vivpo1", "vivpo1", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vlvoo1", "vlvoo1", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vlvoo2", "vlvoo2", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vsvoo1", "vsvoo1", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vsvoo2", "vsvoo2", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "vsvoo3", "vsvoo3", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "pcvoc", "pcvoc", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "form_primary", "form_primary", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "ald2_primary", "ald2_primary", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "butadiene13", "butadiene13", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "acrolein", "acrolein", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "acro_primary", "acro_primary", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "tolu", "tolu", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "hg", "hg", "fv3_history", "all", .false., "none", 2 +#"gfs_dyn", "hgiigas", "hgiigas", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "aso4j", "aso4j", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "aso4i", "aso4i", "fv3_history", "all", .false., "none", 2 "gfs_dyn", "anh4j", "anh4j", "fv3_history", "all", .false., "none", 2 diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera index d5abdc2196..f111b7f5e7 100644 --- a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera +++ b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera @@ -8,11 +8,11 @@ workflow: USE_CRON_TO_RELAUNCH: true CRON_RELAUNCH_INTVL_MNTS: 3 # EXPT_BASEDIR: /scratch2/NCEPDEV/stmp3/Chan-hoo.Jeon/expt_dirs - EXPT_SUBDIR: aqm.v7.0.c7 - CCPP_PHYS_SUITE: FV3_GFS_v16 - DATE_FIRST_CYCL: '2020091512' - DATE_LAST_CYCL: '2020091512' - INCR_CYCL_FREQ: 24 + EXPT_SUBDIR: aqm.v7 + CCPP_PHYS_SUITE: FV3_GFS_v15p2 + DATE_FIRST_CYCL: '2022102212' + DATE_LAST_CYCL: '2022102212' + INCR_CYCL_FREQ: 6 FCST_LEN_HRS: 6 PREEXISTING_DIR_METHOD: rename VERBOSE: true @@ -37,17 +37,17 @@ task_make_sfc_climo: SFC_CLIMO_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/DOMAIN_DATA/AQM_NA_13km task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS -# FV3GFS_FILE_FMT_ICS: grib2 + FV3GFS_FILE_FMT_ICS: netcdf task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 -# FV3GFS_FILE_FMT_LBCS: grib2 + FV3GFS_FILE_FMT_LBCS: netcdf task_run_fcst: DT_ATMOS: 180 LAYOUT_X: 50 LAYOUT_Y: 34 BLOCKSIZE: 16 - RESTART_INTERVAL: 12 + RESTART_INTERVAL: 6 WTIME_RUN_FCST: 02:00:00 QUILTING: true PRINT_ESMF: false @@ -93,5 +93,5 @@ cpl_aqm_parm: PT_SRC_BASE_DIR_CONUS: /scratch1/RDARCH/rda-arl-gpu/YouHua.Tang/nei2016v1-pt/12US1 PT_SRC_BASE_DIR_HI: /scratch1/RDARCH/rda-arl-gpu/YouHua.Tang/nei2016v1-pt/3HI1 PT_SRC_BASE_DIR_AK: /scratch1/RDARCH/rda-arl-gpu/YouHua.Tang/nei2016v1-pt/9AK1 - RESTART_WORKFLOW: true - RESTART_CYCLE_DIR: /scratch2/NCEPDEV/stmp3/Jianping.Huang/NCO_OUTPUT/stmp/tmpnwprd/aqm_test_a/2020091412 +# RESTART_WORKFLOW: true +# RESTART_CYCLE_DIR: /scratch2/NCEPDEV/stmp3/Jianping.Huang/NCO_OUTPUT/stmp/tmpnwprd/aqm_test_a/2020091412 diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 new file mode 100644 index 0000000000..b98cc3cca2 --- /dev/null +++ b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 @@ -0,0 +1,97 @@ +metadata: + description: config for Online-CMAQ, AQM_NA_13km, NCO mode, 1cycle a day +user: + RUN_ENVIR: nco + MACHINE: wcoss2 + ACCOUNT: AQM-DEV +workflow: + USE_CRON_TO_RELAUNCH: true + CRON_RELAUNCH_INTVL_MNTS: 3 +# EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs + EXPT_SUBDIR: aqm.v7 + CCPP_PHYS_SUITE: FV3_GFS_v15p2 + DATE_FIRST_CYCL: '2022102212' + DATE_LAST_CYCL: '2022102212' + INCR_CYCL_FREQ: 6 + FCST_LEN_HRS: 6 + PREEXISTING_DIR_METHOD: rename + VERBOSE: true + COMPILER: intel + DIAG_TABLE_TMPL_FN: diag_table_aqm + FIELD_TABLE_TMPL_FN: field_table_aqm +nco: + NET: aqm + model_ver: v7.0 + RUN: aqm_test + OPSROOT: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/NCO_OUTPUT_aqm +workflow_switches: + RUN_TASK_MAKE_GRID: false + RUN_TASK_MAKE_OROG: false + RUN_TASK_MAKE_SFC_CLIMO: false + RUN_TASK_RUN_POST: true +task_make_grid: + GRID_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/DOMAIN_DATA/AQM_NA_13km +task_make_orog: + OROG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/DOMAIN_DATA/AQM_NA_13km +task_make_sfc_climo: + SFC_CLIMO_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/DOMAIN_DATA/AQM_NA_13km +task_get_extrn_ics: + EXTRN_MDL_NAME_ICS: FV3GFS + FV3GFS_FILE_FMT_ICS: netcdf +task_get_extrn_lbcs: + EXTRN_MDL_NAME_LBCS: FV3GFS + LBC_SPEC_INTVL_HRS: 6 + FV3GFS_FILE_FMT_LBCS: netcdf +task_run_fcst: + DT_ATMOS: 180 + LAYOUT_X: 50 + LAYOUT_Y: 34 + BLOCKSIZE: 16 + RESTART_INTERVAL: 6 + WTIME_RUN_FCST: 02:00:00 + QUILTING: true + PRINT_ESMF: false + PREDEF_GRID_NAME: AQM_NA_13km +task_run_post: + POST_OUTPUT_DOMAIN_NAME: 793 +global: + DO_ENSEMBLE: false + NUM_ENS_MEMBERS: 2 + HALO_BLEND: 0 +cpl_aqm_parm: + CPL_AQM: true + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_POST_STAT: false + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: true + AQM_GEFS_CYC: 0 + AQM_RC_TMPL_FN: aqm.rc + AQM_CONFIG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/epa/data + AQM_BIO_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/bio + AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf + DO_AQM_FENGSHA: true + AQM_FENGSHA_DIR: /lfs/h2/emc/physics/noscrub/jianping.huang/data/emissions/nexus/Dust + AQM_FENGSHA_FILE_PREFIX: FENGSHA_p8_10km_inputs + AQM_FENGSHA_FILE_SUFFIX: .nc +# DO_AQM_CANOPY: false +# AQM_CANOPY_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/canopy +# AQM_CANOPY_FILE: gfs.t12z.geo +# AQM_CANOPY_FILE_SUFFIX: .canopy_regrid.nc + AQM_FIRE_DIR: /lfs/h2/emc/physics/noscrub/jianping.huang/data/RRFS_CMAQ/emissions/GSCE/RAVE.in.C793/RAVE_RT + AQM_FIRE_FILE: Hourly_Emissions_regrid_NA_13km + AQM_FIRE_FILE_SUFFIX: _h72.nc + AQM_RC_FIRE_FREQUENCY: hourly + AQM_LBCS_DIR: /lfs/h2/emc/physics/noscrub/jianping.huang/data/UFSAQM_NA13km_GEOS5_LBC_v2 + AQM_LBCS_FILES: geos5_bndy_v2.c793.2013.nc + AQM_GEFS_DIR: /lfs/h1/ops/prod/com/gefs/v12.3 + NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions + NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix + NEXUS_GRID_FN: grid_spec_793.nc + PT_SRC_BASE_DIR_CONUS: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/12US1 + PT_SRC_BASE_DIR_HI: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/3HI1 + PT_SRC_BASE_DIR_AK: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt/9AK1 +# COLDSTART: false +# WARMSTART_CYCLE_DIR: /lfs/h2/emc/ptmp/jianping.huang/para/com/aqm/v7.0/aqm.v7.0.c3/2022102118 From 61ddb1263e5ccddd277030a0851ef513c967fa37 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Tue, 1 Nov 2022 10:18:15 +0000 Subject: [PATCH 007/119] update hash of nexus --- externals/Externals_AQM.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/externals/Externals_AQM.cfg b/externals/Externals_AQM.cfg index bf14aca6cb..eb924a6dbe 100644 --- a/externals/Externals_AQM.cfg +++ b/externals/Externals_AQM.cfg @@ -12,7 +12,7 @@ protocol = git repo_url = https://github.com/noaa-oar-arl/NEXUS # Specify either a branch name or a hash but not both. #branch = develop -hash = c05ee48 +hash = d409056 local_path = sorc/arl_nexus required = True From f5db56366a365d24d939711ba47350d0bf0b0da8 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Tue, 1 Nov 2022 17:00:22 +0000 Subject: [PATCH 008/119] remove if-statements from aqm.rc --- parm/aqm.rc | 29 ++--------------------------- scripts/exregional_aqm_lbcs.sh | 2 -- 2 files changed, 2 insertions(+), 29 deletions(-) diff --git a/parm/aqm.rc b/parm/aqm.rc index 73d2cb59ec..87373cd7ce 100644 --- a/parm/aqm.rc +++ b/parm/aqm.rc @@ -144,45 +144,31 @@ anthro_species:: TOLU :: -{%- if do_aqm_fengsha %} # # FENGSHA # -fengsha_yn: true - +fengsha_yn: {{ do_aqm_fengsha | lower }} fengsha_type: fengsha - fengsha_format: netcdf - fengsha_file: {{ aqm_rc_fengsha_file_fp }} - fengsha_frequency: monthly - fengsha_species:: CLAYF 1.00000 clayfrac 1 SANDF 1.00000 sandfrac 1 DRAG 1.00000 albedo_drag 1 UTHR 1.00000 uthres 1 :: -{%- endif %} # # Biogenic # bio_type: biogenic - bio_format: netcdf - bio_file: {{ aqm_rc_bio_file_fp }} - bio_frequency: static - bio_period: summer - bio_speciation_file: {{ aqm_bio_dir }}/gspro_biogenics_1mar2017.txt - bio_speciation_profile: B10C6 - bio_species:: AVG_NOAG_GROW 1.00000 AVG_NOAG_GROW gmN/hr AVG_NOAG_NONGROWNB3 1.00000 AVG_NOAG_NONGROW gmN/hr @@ -263,20 +249,14 @@ bio_species:: LAI_METHW 1.00000 LAI_METHW 1 :: -{%- if do_aqm_canopy %} # # Inline Canopy Effects # -canopy_yn: true - +canopy_yn: {{ do_aqm_canopy | lower }} canopy_type: canopy - canopy_format: netcdf - canopy_file: {{ aqm_rc_canopy_file_fp }} - canopy_frequency: static - canopy_species:: FCH 1.00000 FCH m FRT 1.00000 FRT 1 @@ -288,19 +268,14 @@ canopy_species:: C3R 1.00000 C3R 1 C4R 1.00000 C4R 1 :: -{%- endif %} # # Fire emissions from GBBEPx # fire_type: gbbepx - fire_file: {{ aqm_rc_fire_file_fp }} - fire_frequency: {{ aqm_rc_fire_frequency }} - fire_plume_rise: sofiev - fire_species:: PAL 0.0006 PM2.5 KG/M2/S PCA 0.0039 PM2.5 KG/M2/S diff --git a/scripts/exregional_aqm_lbcs.sh b/scripts/exregional_aqm_lbcs.sh index fb265a5261..deb6c214ee 100755 --- a/scripts/exregional_aqm_lbcs.sh +++ b/scripts/exregional_aqm_lbcs.sh @@ -129,8 +129,6 @@ fi # if [ ${DO_AQM_GEFS_LBCS} = "TRUE" ]; then - cp_vrfy ${INPUT_DATA}/${NET}.${cycle}${dot_ensmem}.gfs_bndy.tile7.???.nc $DATA - RUN_CYC="${cyc}" GEFS_CYC_DIFF=$( printf "%02d" "$(( ${RUN_CYC} - ${AQM_GEFS_CYC} ))" ) From 9a3c0585c05e2b9011893d9b49d56d3c12f4b263 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Thu, 3 Nov 2022 14:26:34 +0000 Subject: [PATCH 009/119] Add EXTRN_MDL_OFFSET_HRS to sample scripts --- ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera | 2 ++ ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 | 2 ++ .../WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera | 2 ++ .../WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera | 2 ++ .../WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera | 2 ++ .../WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera | 2 ++ .../WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion | 2 ++ .../WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 | 2 ++ .../WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 | 2 ++ .../WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 | 2 ++ .../wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 | 2 ++ .../WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 | 2 ++ 12 files changed, 24 insertions(+) diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera index f111b7f5e7..bb7fad0117 100644 --- a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera +++ b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera @@ -38,10 +38,12 @@ task_make_sfc_climo: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS FV3GFS_FILE_FMT_ICS: netcdf + EXTRN_MDL_ICS_OFFSET_HRS: 6 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 FV3GFS_FILE_FMT_LBCS: netcdf + EXTRN_MDL_LBCS_OFFSET_HRS: 6 task_run_fcst: DT_ATMOS: 180 LAYOUT_X: 50 diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 index b98cc3cca2..ca6a671f50 100644 --- a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 +++ b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 @@ -38,10 +38,12 @@ task_make_sfc_climo: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS FV3GFS_FILE_FMT_ICS: netcdf + EXTRN_MDL_ICS_OFFSET_HRS: 6 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 FV3GFS_FILE_FMT_LBCS: netcdf + EXTRN_MDL_LBCS_OFFSET_HRS: 6 task_run_fcst: DT_ATMOS: 180 LAYOUT_X: 50 diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera b/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera index 90e4cf9d24..62779005e0 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera @@ -29,10 +29,12 @@ workflow_switches: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS # FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 # FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 task_run_fcst: DT_ATMOS: 180 LAYOUT_X: 50 diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera b/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera index bf264737ba..5414417b2e 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera @@ -29,10 +29,12 @@ workflow_switches: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS # FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 # FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 task_run_fcst: RESTART_INTERVAL: 6 WTIME_RUN_FCST: 00:30:00 diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera b/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera index 9dacbf7834..958e648ecd 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera @@ -38,10 +38,12 @@ task_make_sfc_climo: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS # FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 # FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 task_run_fcst: RESTART_INTERVAL: 6 WTIME_RUN_FCST: 00:30:00 diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera b/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera index 4a482dceae..190d920e35 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera @@ -29,10 +29,12 @@ workflow_switches: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS # FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 # FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 task_run_fcst: DT_ATMOS: 180 LAYOUT_X: 16 diff --git a/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion b/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion index ca70edb49a..e910c9fce9 100644 --- a/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion +++ b/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion @@ -28,6 +28,7 @@ workflow_switches: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_SOURCE_BASEDIR_ICS: /work/noaa/fv3-cam/RRFS_CMAQ/staged_data/${yyyymmddhh} EXTRN_MDL_FILES_ICS: [] @@ -36,6 +37,7 @@ task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 USE_USER_STAGED_EXTRN_FILES: true EXTRN_MDL_SOURCE_BASEDIR_LBCS: /work/noaa/fv3-cam/RRFS_CMAQ/staged_data/${yyyymmddhh} EXTRN_MDL_FILES_LBCS: [] diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 index 5167d27d4d..ea13d02f5c 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 @@ -29,10 +29,12 @@ workflow_switches: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS # FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 # FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 task_run_fcst: DT_ATMOS: 180 LAYOUT_X: 50 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 index 6792f4ebd8..bbee56be84 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 @@ -29,10 +29,12 @@ workflow_switches: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS # FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 # FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 task_run_fcst: RESTART_INTERVAL: 6 WTIME_RUN_FCST: 00:30:00 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 index f23ed3d3d2..2b4bbc15bc 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 @@ -38,10 +38,12 @@ task_make_sfc_climo: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS # FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 # FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 task_run_fcst: RESTART_INTERVAL: 6 WTIME_RUN_FCST: 00:30:00 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 index da238e1d17..f2e4831e2a 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 @@ -29,10 +29,12 @@ workflow_switches: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS # FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 # FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 WTIME_GET_EXTRN_LBCS: 01:00:00 task_make_lbcs: WTIME_MAKE_LBCS: 01:00:00 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 index 5ba7a5a7ab..1a0d657fc2 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 @@ -29,10 +29,12 @@ workflow_switches: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS # FV3GFS_FILE_FMT_ICS: grib2 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 # FV3GFS_FILE_FMT_LBCS: grib2 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 task_run_fcst: DT_ATMOS: 180 LAYOUT_X: 16 From c6eb1adac7c8b1abb77872d8c8ad7b97255edfc1 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Mon, 7 Nov 2022 13:46:23 +0000 Subject: [PATCH 010/119] Add time-offset capability --- jobs/JREGIONAL_GET_EXTRN_MDL_FILES | 28 ++++-- parm/FV3LAM_wflow.xml | 15 ++- parm/data_locations.yml | 7 ++ scripts/exregional_aqm_lbcs.sh | 16 ++- scripts/exregional_get_extrn_mdl_files.sh | 18 +++- ush/config_defaults.yaml | 9 ++ ush/generate_FV3LAM_wflow.py | 73 +++++++------- ush/machine/hera.yaml | 2 + ush/machine/wcoss2.yaml | 2 + ush/retrieve_data.py | 27 ++++- .../config.yaml_nco_aqmna13km_1day_hera | 99 ------------------- .../config.yaml_nco_aqmna13km_1day_wcoss2 | 1 + .../hera/config.yaml_cold_aqmna13km_1day_hera | 1 + .../config.yaml_cold_gsdhrrr25km_1d4cyc_hera | 1 + .../config.yaml_nco_gsdhrrr25km_1d2cyc_hera | 1 + ...nfig.yaml_realtime_gsdhrrr25km_1d1cyc_hera | 77 +++++++++++++++ .../config.yaml_warm_rrfsconus13km_1day_hera | 1 + .../config.yaml_cold_gsdhrrr25km_1d4cyc_orion | 1 + .../config.yaml_cold_aqmna13km_1day_wcoss2 | 1 + ...config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 | 1 + .../config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 | 1 + ...ig.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 | 1 + ...ig.yaml_realtime_gsdhrrr25km_1d1cyc_wcoss2 | 86 ++++++++++++++++ ...config.yaml_warm_rrfsconus13km_1day_wcoss2 | 1 + ush/test_retrieve_data.py | 10 ++ 25 files changed, 331 insertions(+), 149 deletions(-) delete mode 100644 ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_hera create mode 100644 ush/sample_config/WE2E_test/hera/config.yaml_realtime_gsdhrrr25km_1d1cyc_hera create mode 100644 ush/sample_config/WE2E_test/wcoss2/config.yaml_realtime_gsdhrrr25km_1d1cyc_wcoss2 diff --git a/jobs/JREGIONAL_GET_EXTRN_MDL_FILES b/jobs/JREGIONAL_GET_EXTRN_MDL_FILES index 8975a3e678..c75c709b2a 100755 --- a/jobs/JREGIONAL_GET_EXTRN_MDL_FILES +++ b/jobs/JREGIONAL_GET_EXTRN_MDL_FILES @@ -93,10 +93,11 @@ check_var_valid_value "ICS_OR_LBCS" "valid_vals_ICS_OR_LBCS" if [ "${ICS_OR_LBCS}" = "ICS" ]; then export TIME_OFFSET_HRS=${EXTRN_MDL_ICS_OFFSET_HRS:-0} export EXTRN_MDL_NAME=${EXTRN_MDL_NAME_ICS} - + GFS_FILE_FMT=${FV3GFS_FILE_FMT_ICS} elif [ "${ICS_OR_LBCS}" = "LBCS" ]; then export TIME_OFFSET_HRS=${EXTRN_MDL_LBCS_OFFSET_HRS:-0} export EXTRN_MDL_NAME=${EXTRN_MDL_NAME_LBCS} + GFS_FILE_FMT=${FV3GFS_FILE_FMT_LBCS} fi # @@ -159,10 +160,10 @@ case ${EXTRN_MDL_NAME} in # The transition date from the GSMGFS to the FV3GFS was 2019061212, i.e. # this was the first official forecast with the FV3GFS. So we set the # last CDATE for the GSMGFS to the one 6 hours before this. - cdate_max="2019061206" - if [ "$EXTRN_MDL_CDATE" -gt "$cdate_max" ]; then + CDATE_max="2019061206" + if [ "$EXTRN_MDL_CDATE" -gt "$CDATE_max" ]; then print_err_msg_exit "\ - $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $cdate_max max)" + $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $CDATE_max max)" fi ;; @@ -171,11 +172,20 @@ case ${EXTRN_MDL_NAME} in # this was the first official forecast with the FV3GFS. However, paral- # lel runs with the FV3GFS go back to 2018121500. So we set the first # EXTRN_MDL_CDATE for the FV3GFS to this date and time. -# CDATE_min="2019061212" CDATE_min="2018121500" + CDATE_min_netcdf="2021032100" + CDATE_max_nemsio="2021032018" if [ "$EXTRN_MDL_CDATE" -lt "$CDATE_min" ]; then print_err_msg_exit "\ - $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $cdate_min min)" + $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $CDATE_min min)" + elif [ "${GFS_FILE_FMT}" = "netcdf" ] && [ "${EXTRN_MDL_CDATE}" -lt "${CDATE_min_netcdf}" ]; then + print_err_msg_exit "\ + NETCDF is not available for this date:: However, NEMSIO is available:: \ + $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $CDATE_min_netcdf min)" + elif [ "${GFS_FILE_FMT}" = "nemsio" ] && [ "${EXTRN_MDL_CDATE}" -gt "${CDATE_max_nemsio}" ]; then + print_err_msg_exit "\ + NEMSIO is not available for this date:: However, NETCDF is available:: \ + $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $CDATE_max_nemsio max)" fi ;; @@ -185,7 +195,7 @@ case ${EXTRN_MDL_NAME} in CDATE_min="2015070100" if [ "$EXTRN_MDL_CDATE" -lt "$CDATE_min" ]; then print_err_msg_exit "\ - $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $cdate_min min)" + $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $CDATE_min min)" fi ;; @@ -196,7 +206,7 @@ case ${EXTRN_MDL_NAME} in CDATE_min="2014103000" if [ "$EXTRN_MDL_CDATE" -lt "$CDATE_min" ]; then print_err_msg_exit "\ - $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $cdate_min min)" + $(data_unavailable $EXTRN_MDL_NAME $EXTRN_MDL_CDATE $CDATE_min min)" fi ;; @@ -209,7 +219,7 @@ esac #----------------------------------------------------------------------- # if [ $RUN_ENVIR = "nco" ]; then - export EXTRN_MDL_STAGING_DIR="${COMIN}/for_${ICS_OR_LBCS}" + export EXTRN_MDL_STAGING_DIR="${COMINext}" mkdir_vrfy -p "${EXTRN_MDL_STAGING_DIR}" else export EXTRN_MDL_STAGING_DIR="${COMIN}/${EXTRN_MDL_NAME}/for_${ICS_OR_LBCS}" diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml index 2c64df3bad..c1f334ac73 100644 --- a/parm/FV3LAM_wflow.xml +++ b/parm/FV3LAM_wflow.xml @@ -162,6 +162,9 @@ Directories and files. +{%- if do_real_time %} + +{%- endif %} - + {%- if do_split_nexus %} + + {% for h in range(0, num_split_nexus) %}{{ " %02d" % h }}{% endfor %} + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&NEXUS_EMISSION_TN;" "&JOBSdir;/JREGIONAL_NEXUS_EMISSION" + {%- if machine in ["HERA"] %} + {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }} + {{ native_nexus_emission }} + {%- elif machine in ["WCOSS2"] %} + {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }}:tpp={{ omp_num_threads_nexus_emission }} + &SCHED_NATIVE_CMD; + {%- else %} + {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }} + {%- endif %} + {{ wtime_nexus_emission }} + &NCORES_PER_NODE; + &NEXUS_EMISSION_TN;_#nspt# + &LOGDIR;/&NEXUS_EMISSION_TN;_@Y@m@d@H_s#nspt#&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + cyc@H + subcyc@M + nspt#nspt# + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&NEXUS_POST_SPLIT_TN;" "&JOBSdir;/JREGIONAL_NEXUS_POST_SPLIT" + {{ nnodes_nexus_post_split }}:ppn={{ ppn_nexus_post_split }} + {{ wtime_nexus_post_split }} + &NCORES_PER_NODE; + &NEXUS_POST_SPLIT_TN; + &LOGDIR;/&NEXUS_POST_SPLIT_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + + + + + {%- else %} + &RSRV_DEFAULT; &LOAD_MODULES_RUN_TASK_FP; "&NEXUS_EMISSION_TN;" "&JOBSdir;/JREGIONAL_NEXUS_EMISSION" - {%- if machine in ["HERA"] %} + {%- if machine in ["HERA"] %} {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }} {{ native_nexus_emission }} - {%- elif machine in ["WCOSS2"] %} + {%- elif machine in ["WCOSS2"] %} {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }}:tpp={{ omp_num_threads_nexus_emission }} &SCHED_NATIVE_CMD; - {%- else %} + {%- else %} {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }} - {%- endif %} + {%- endif %} {{ wtime_nexus_emission }} &NCORES_PER_NODE; &NEXUS_EMISSION_TN; @@ -363,8 +417,8 @@ MODULES_RUN_TASK_FP script. subcyc@M LOGDIR&LOGDIR; SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} - + {%- endif %} {%- endif %} {%- if run_task_point_source %} - {%- if do_split_nexus %} {% for h in range(0, num_split_nexus) %}{{ " %02d" % h }}{% endfor %} @@ -392,33 +389,6 @@ MODULES_RUN_TASK_FP script. - - {%- else %} - - &RSRV_DEFAULT; - &LOAD_MODULES_RUN_TASK_FP; "&NEXUS_EMISSION_TN;" "&JOBSdir;/JREGIONAL_NEXUS_EMISSION" - {%- if machine in ["HERA"] %} - {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }} - {{ native_nexus_emission }} - {%- elif machine in ["WCOSS2"] %} - {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }}:tpp={{ omp_num_threads_nexus_emission }} - &SCHED_NATIVE_CMD; - {%- else %} - {{ nnodes_nexus_emission }}:ppn={{ ppn_nexus_emission }} - {%- endif %} - {{ wtime_nexus_emission }} - &NCORES_PER_NODE; - &NEXUS_EMISSION_TN; - &LOGDIR;/&NEXUS_EMISSION_TN;_@Y@m@d@H&LOGEXT; - - GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; - PDY@Y@m@d - cyc@H - subcyc@M - LOGDIR&LOGDIR; - SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} - - {%- endif %} {%- endif %} {%- if run_task_point_source %} + + + &RSRV_HPSS; + &LOAD_MODULES_RUN_TASK_FP; "&FIRE_EMISSION_TN;" "&JOBSdir;/JREGIONAL_FIRE_EMISSION" + {{ nnodes_fire_emission }}:ppn={{ ppn_fire_emission }} + {{ wtime_fire_emission }} + &NCORES_PER_NODE; + {%- if machine not in ["WCOSS2"] %} + &SCHED_NATIVE_CMD; + {%- endif %} + &FIRE_EMISSION_TN; + &LOGDIR;/&FIRE_EMISSION_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + USHdir&USHdir; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + +{%- endif %} {%- if run_task_point_source %} - + &RSRV_DEFAULT; - &LOAD_MODULES_RUN_TASK_FP; "&POST_STAT_TN;" "&JOBSdir;/JREGIONAL_POST_STAT" - {{ nnodes_post_stat }}:ppn={{ ppn_post_stat }} - {{ wtime_post_stat }} + &LOAD_MODULES_RUN_TASK_FP; "&PRE_POST_STAT_TN;" "&JOBSdir;/JREGIONAL_PRE_POST_STAT" + {{ nnodes_pre_post_stat }}:ppn={{ ppn_pre_post_stat }} + {{ wtime_pre_post_stat }} &NCORES_PER_NODE; - &POST_STAT_TN; - &LOGDIR;/&POST_STAT_TN;_@Y@m@d@H&LOGEXT; + &PRE_POST_STAT_TN; + &LOGDIR;/&PRE_POST_STAT_TN;_@Y@m@d@H&LOGEXT; GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; USHdir&USHdir; @@ -1080,7 +1092,127 @@ the tag to be identical to the ones above for other output times. SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} +{%- if run_task_run_post %} +{%- else %} + +{%- endif %} + + + +{%- endif %} +{%- if run_task_post_stat_o3 %} + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&POST_STAT_O3_TN;" "&JOBSdir;/JREGIONAL_POST_STAT_O3" + {{ nnodes_post_stat_o3 }}:ppn={{ ppn_post_stat_o3 }} + {{ wtime_post_stat_o3 }} + &NCORES_PER_NODE; + &POST_STAT_O3_TN; + &LOGDIR;/&POST_STAT_O3_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + USHdir&USHdir; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + + + + +{%- endif %} +{%- if run_task_post_stat_pm25 %} + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&POST_STAT_PM25_TN;" "&JOBSdir;/JREGIONAL_POST_STAT_PM25" + {{ nnodes_post_stat_pm25 }}:ppn={{ ppn_post_stat_pm25 }} + {{ wtime_post_stat_pm25 }} + &NCORES_PER_NODE; + &POST_STAT_PM25_TN; + &LOGDIR;/&POST_STAT_PM25_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + USHdir&USHdir; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + + + + +{%- endif %} +{%- if run_task_bias_correction_o3 %} + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&BIAS_CORRECTION_O3_TN;" "&JOBSdir;/JREGIONAL_BIAS_CORRECTION_O3" + {{ nnodes_bias_correction_o3 }}:ppn={{ ppn_bias_correction_o3 }} + {{ wtime_bias_correction_o3 }} + &NCORES_PER_NODE; + &BIAS_CORRECTION_O3_TN; + &LOGDIR;/&BIAS_CORRECTION_O3_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + USHdir&USHdir; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + +{%- if run_task_post_stat_pm25 %} + +{%- else %} + +{%- endif %} + + + +{%- endif %} +{%- if run_task_bias_correction_pm25 %} + + + &RSRV_DEFAULT; + &LOAD_MODULES_RUN_TASK_FP; "&BIAS_CORRECTION_PM25_TN;" "&JOBSdir;/JREGIONAL_BIAS_CORRECTION_PM25" + {{ nnodes_bias_correction_pm25 }}:ppn={{ ppn_bias_correction_pm25 }} + {{ wtime_bias_correction_pm25 }} + &NCORES_PER_NODE; + &BIAS_CORRECTION_PM25_TN; + &LOGDIR;/&BIAS_CORRECTION_PM25_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + USHdir&USHdir; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} + + + diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh new file mode 100755 index 0000000000..787dc504b5 --- /dev/null +++ b/scripts/exregional_bias_correction_o3.sh @@ -0,0 +1,416 @@ +ource the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. $USHdir/source_util_funcs.sh +source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" +This is the ex-script for the task that runs BIAS-CORRECTION-O3. +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set OpenMP variables. +# +#----------------------------------------------------------------------- +# +export KMP_AFFINITY=${KMP_AFFINITY_BIAS_CORRECTION_O3} +export OMP_NUM_THREADS=${OMP_NUM_THREADS_BIAS_CORRECTION_O3} +export OMP_STACKSIZE=${OMP_STACKSIZE_BIAS_CORRECTION_O3} +# +#----------------------------------------------------------------------- +# +# Set run command. +# +#----------------------------------------------------------------------- +# +eval ${PRE_TASK_CMDS} + +if [ -z "${RUN_CMD_SERIAL:-}" ] ; then + print_err_msg_exit "\ + Run command was not set in machine file. \ + Please set RUN_CMD_SERIAL for your platform" +else + RUN_CMD_SERIAL=$(eval echo ${RUN_CMD_SERIAL}) + print_info_msg "$VERBOSE" " + All executables will be submitted with command \'${RUN_CMD_SERIAL}\'." +fi + +# +#----------------------------------------------------------------------- +# +# Move to the working directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA}/tmp_BIAS_CORRECTION_O3" +mkdir_vrfy -p "$DATA" +cd_vrfy $DATA + +set -x + +yyyy=${PDY:0:4} +# +#----------------------------------------------------------------------- +# +# Bias correction: O3 +# +#----------------------------------------------------------------------- +# +if [ "${PREDEF_GRID_NAME}" = "AQM_NA_13km" ]; then + id_domain=793 +fi + +case $cyc in + 00) bc_interp_hr=06;; + 06) bc_interp_hr=72;; + 12) bc_interp_hr=72;; + 18) bc_interp_hr=06;; +esac + +#----------------------------------------------------------------------------- +# STEP 1: Extracting PM2.5, O3, and met variables from CMAQ input and outputs + +ic=1 +while [ $ic -lt 120 ]; do + if [ -s ${COMIN}/${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc ]; then + echo "cycle ${cyc} post1 is done!" + break + else + (( ic=ic+1 )) + sleep 10 + fi +done + +if [ $ic -ge 120 ]; then + print_err_msg_exit "FATAL ERROR - COULD NOT LOCATE:${COMIN}/${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc" +fi + +# remove any pre-exit ${NET}.${cycle}.chem_sfc/met_sfc.nc for 2-stage post processing +if [ -s ${DATA}/grid/${cyc}z/${PDY}/${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc ]; then + rm_vrfy -f ${DATA}/grid/${cyc}z/${PDY}/${NET}.${cycle}.chem_sfc.*.nc + rm_vrfy -f ${DATA}/grid/${cyc}z/${PDY}/${NET}.${cycle}.met_sfc.*.nc +fi + +mkdir_vrfy -p ${DATA}/grid/${cyc}z/${PDY} +mkdir_vrfy -p ${DATA}/data/coords +mkdir_vrfy -p ${DATA}/data/site-lists.interp +mkdir_vrfy -p ${DATA}/setup +mkdir_vrfy -p ${DATA}/out/ozone/${yyyy} +mkdir_vrfy -p ${DATA}/interpolated/ozone/${yyyy} + +cp_vrfy ${COMIN}/${NET}.${cycle}.chem_sfc.*.nc ${DATA}/grid/${cyc}z/${PDY} +cp_vrfy ${COMIN}/${NET}.${cycle}.met_sfc.*.nc ${DATA}/grid/${cyc}z/${PDY} + +#----------------------------------------------------------------------- +# STEP 2 : Intepolating CMAQ O3 into AIRNow sites + +ln_vrfy -sf ${PARMaqm_utils}/sites.valid.ozone.20220724.12z.list ${DATA}/data/site-lists.interp +ln_vrfy -sf ${PARMaqm_utils}/setup.wcoss2.ifort.serial.opt-zero ${DATA}/setup +ln_vrfy -sf ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords +ln_vrfy -sf ${PARMaqm_utils}/config.interp.ozone.7-vars_${id_domain}.${cyc}z ${DATA} +ln_vrfy -sf ${COMINbicor} ${DATA}/data + +source ${DATA}/setup/setup.wcoss2.ifort.serial.opt-zero + +${EXECdir}/aqm_bias_interpolate config.interp.ozone.7-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} + +cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/interpolated/ozone/${yyyy} + +#----------------------------------------------------------------------- +# STEP 3: Performing Bias Correction for PM2.5 + +mkdir_vrfy -p ${DATA}/data/sites + +ln_vrfy -sf ${PARMaqm_utils}/setup.wcoss2.ifort.parallel.opt-3 ${DATA}/setup +ln_vrfy -sf ${PARMaqm_utils}/config.ozone.bias_corr_${id_domain}.${cyc}z ${DATA} + +source ${DATA}/setup/setup.wcoss2.ifort.parallel.opt-3 + +${EXECdir}/aqm_bias_correct config.ozone.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} + +cp_vrfy ${DATA}/out/ozone.corrected* ${COMIN} + +if [ "${cyc}" = "12" ]; then + cp_vrfy ${DATA}/sites/sites.valid.ozone.${PDY}.${cyc}z.list ${DATA} +fi + +#------------------------------------------------------------------------ +# STEP 4: converting netcdf to grib format + +ln_vrfy -sf ${COMIN}/ozone.corrected.${PDY}.${cyc}z.nc . + +# +cat >bias_cor.ini <bias_cor_max.ini < filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.max_${hr}hr_o3_bc.227.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=${NET}-${hr}hro3-maxi.227.grib2.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm-${hr}hro3-maxi.${cycle}.227 + + echo `ls -l ${NET}-${hr}hro3-maxi.227.grib2.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}-${hr}hro3-maxi.227.grib2.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.${hr}ho3-max-bc.227.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm-${hr}hro3-maxi.${cycle}.227 + done + + # Post Files to COMOUT + cp_vrfy awpaqm.${cycle}.*o3-max-bc.227.grib2 ${COMOUT} + + # Distribute Data + if [ "${SENDDBN_NTC}" = "YES" ] ; then + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.1ho3-max-bc.227.grib2 + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.8ho3-max-bc.227.grib2 + fi + fi +fi + +#------------------------------------- +fhr=01 +case $cyc in + 00) endfhr=06;; + 06) endfhr=72;; + 12) endfhr=72;; + 18) endfhr=06;; +esac + +rm_vrfy -rf tmpfile + +while [ "${fhr}" -le "${endfhr}" ]; do + fhr=$( printf "%02d" "${fhr}" ) + + cp_vrfy ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 ${COMIN} + + # create GRIB file to convert to grid 227 then to GRIB2 for NDFD + cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 >> tmpfile + if [ "${fhr}" -le "07" ]; then + cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 >> tmpfile.1hr + else + ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 -d 1 -append -grib tmpfile.1hr + wgrib2 ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 -d 2 -append -grib tmpfile.8hr + fi + (( fhr=fhr+1 )) +done + +############### +# Convert ozone Concentration to grid 227 in GRIB2 format +############### +echo ' &NLCOPYGB IDS(180)=1, /' > ozcon_scale + +newgrib2file1=${NET}.${cycle}.ave_1hr_o3_bc.227.grib2 +newgrib2file2=${NET}.${cycle}.ave_8hr_o3_bc.227.grib2 + +grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" + +wgrib2 tmpfile.1hr -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file1} +cp_vrfy tmpfile.1hr ${COMOUT}/${NET}.${cycle}.ave_1hr_o3_bc.${id_domain}.grib2 +cp_vrfy ${NET}.${cycle}.ave_1hr_o3_bc.227.grib2 ${COMOUT} + +if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then + wgrib2 tmpfile.8hr -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file2} + cp_vrfy tmpfile.8hr ${COMOUT}/${NET}.${cycle}.ave_8hr_o3_bc.${id_domain}.grib2 + cp_vrfy ${NET}.${cycle}.ave_8hr_o3_bc.227.grib2 ${COMOUT} +fi + +if [ "${SENDDBN}" = "YES" ] ; then + ${DBNROOT}/bin/dbn_alert MODEL AQM_CONC ${job} ${COMOUT}/${NET}.${cycle}.ave_1hr_o3_bc.227.grib2 + if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then + ${DBNROOT}/bin/dbn_alert MODEL AQM_CONC ${job} ${COMOUT}/${NET}.${cycle}.ave_8hr_o3_bc.227.grib2 + fi +fi + +################################################# +# Part III: Insert WMO header to GRIB files +################################################# + +if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then + # Create AWIPS GRIB data for 1hr and 8hr ave ozone + for hr in 1 8; do + echo 0 > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.ave_${hr}hr_o3_bc.227.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=grib2.${cycle}.awpcsozcon_aqm_${hr}-bc.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_ave_${hr}hr_o3_bc-awpozcon.${cycle}.227 + + echo `ls -l grib2.${cycle}.awpcsozcon_aqm_${hr}-bc.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=grib2.${cycle}.awpcsozcon_aqm_${hr}-bc.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.${hr}ho3-bc.227.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_ave_${hr}hr_o3_bc-awpozcon.${cycle}.227 + + # Create AWIPS GRIB data for dailly 1-hr and 8hr max ozone + echo 0 > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.max_${hr}hr_o3_bc.227.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=${NET}.${cycle}.max_${hr}hr_o3-bc.227.grib2.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm-${hr}hro3_bc-maxi.${cycle}.227 + + echo `ls -l ${NET}.${cycle}.max_${hr}hr_o3-bc.227.grib2.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.max_${hr}hr_o3-bc.227.grib2.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.${hr}ho3-max-bc.227.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm-${hr}hro3_bc-maxi.${cycle}.227 + + # Post Files to COMOUT + cp_vrfy awpaqm.${cycle}.${hr}ho3-bc.227.grib2 ${COMOUT} + cp_vrfy awpaqm.${cycle}.${hr}ho3-max-bc.227.grib2 ${COMOUT} + + # Distribute Data + if [ "${SENDDBN}" = "YES" ]; then + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.${hr}ho3-bc.227.grib2 + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.${hr}ho3-max-bc.227.grib2 + fi + done +fi + +# +#----------------------------------------------------------------------- +# +# Print message indicating successful completion of script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +BIAS-CORRECTION-O3 completed successfully. + +Exiting script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" +========================================================================" +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh new file mode 100755 index 0000000000..23be1514d6 --- /dev/null +++ b/scripts/exregional_bias_correction_pm25.sh @@ -0,0 +1,365 @@ +ource the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. $USHdir/source_util_funcs.sh +source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" +This is the ex-script for the task that runs BIAS-CORRECTION-PM25. +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set OpenMP variables. +# +#----------------------------------------------------------------------- +# +export KMP_AFFINITY=${KMP_AFFINITY_BIAS_CORRECTION_PM25} +export OMP_NUM_THREADS=${OMP_NUM_THREADS_BIAS_CORRECTION_PM25} +export OMP_STACKSIZE=${OMP_STACKSIZE_BIAS_CORRECTION_PM25} +# +#----------------------------------------------------------------------- +# +# Set run command. +# +#----------------------------------------------------------------------- +# +eval ${PRE_TASK_CMDS} + +if [ -z "${RUN_CMD_SERIAL:-}" ] ; then + print_err_msg_exit "\ + Run command was not set in machine file. \ + Please set RUN_CMD_SERIAL for your platform" +else + RUN_CMD_SERIAL=$(eval echo ${RUN_CMD_SERIAL}) + print_info_msg "$VERBOSE" " + All executables will be submitted with command \'${RUN_CMD_SERIAL}\'." +fi + +# +#----------------------------------------------------------------------- +# +# Move to the working directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA}/tmp_BIAS_CORRECTION_PM25" +mkdir_vrfy -p "$DATA" +cd_vrfy $DATA + +set -x + +yyyy=${PDY:0:4} +# +#----------------------------------------------------------------------- +# +# Bias correction: PM25 +# +#----------------------------------------------------------------------- +# +if [ "${PREDEF_GRID_NAME}" = "AQM_NA_13km" ]; then + id_domain=793 +fi + +case ${cyc} in + 00) bc_interp_hr=06;; + 06) bc_interp_hr=72;; + 12) bc_interp_hr=72;; + 18) bc_interp_hr=06;; +esac + +#----------------------------------------------------------------------- +# STEP 1 : Intepolating CMAQ PM2.5 into AIRNow sites + +mkdir_vrfy -p ${DATA}/data/coords +mkdir_vrfy -p ${DATA}/data/site-lists.interp +mkdir_vrfy -p ${DATA}/setup +mkdir_vrfy -p ${DATA}/out/pm25/${yyyy} +mkdir_vrfy -p ${DATA}/interpolated/pm25/${yyyy} + +ln_vrfy -sf ${PARMaqm_utils}/sites.valid.pm25.20220724.12z.list ${DATA}/data/site-lists.interp +ln_vrfy -sf ${PARMaqm_utils}/setup.wcoss2.ifort.serial.opt-zero ${DATA}/setup +ln_vrfy -sf ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords +ln_vrfy -sf ${PARMaqm_utils}/config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${DATA} +ln_vrfy -sf ${COMINbicor} ${DATA}/data + +source ${DATA}/setup/setup.wcoss2.ifort.serial.opt-zero + +${EXECdir}/aqm_bias_interpolate config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} + +cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${DATA}/interpolated/pm25/${Yr} + +#----------------------------------------------------------------------- +# STEP 2: Performing Bias Correction for PM2.5 + +mkdir_vrfy -p ${DATA}/data/sites + +ln_vrfy -sf ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords/ +ln_vrfy -sf ${PARMaqm_utils}/setup.wcoss2.ifort.parallel.opt-3 ${DATA}/setup +ln_vrfy -sf ${PARMaqm_utils}/config.pm2.5.bias_corr_${id_domain}.${cyc}z ${DATA} +ln_vrfy -sf ${COMINbicordat}/bcdata* ${DATA}/data/ +ln_vrfy -sf ${PARMaqm_utils}/site_blocking.pm2.5.2021.0427.2-sites.txt ${DATA} +ln_vrfy -sf ${PARMaqm_utils}/bias_thresholds.pm2.5.2015.1030.32-sites.txt ${DATA} + +source ${DATA}/setup/setup.wcoss2.ifort.parallel.opt-3 + +${EXECdir}/aqm_bias_correct config.pm2.5.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} + +cp_vrfy $DATA/out/pm2.5.corrected* ${COMIN} + +if [ "${cyc}" = "12" ]; then + cp_vrfy $DATA/sites/sites.valid.pm25.${PDY}.${cyc}z.list ${DATA} +fi + +#------------------------------------------------------------------------ +# STEP 3: converting netcdf to grib format + +ln_vrfy -sf ${COMIN}/pm2.5.corrected.${PDY}.${cyc}z.nc . + +# convert from netcdf to grib2 format +cat >bias_cor.ini <bias_cor_max.ini <> tmpfile_pm25_bc + (( fhr=fhr+1 )) +done + +grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" +wgrib2 tmpfile_pm25_bc -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.grib2_pm25_bc.227 + +cp_vrfy tmpfile_pm25_bc ${COMOUT}/${NET}.${cycle}.ave_1hr_pm25_bc.${id_domain}.grib2 +cp_vrfy ${NET}.${cycle}.grib2_pm25_bc.227 ${COMOUT}/${NET}.${cycle}.ave_1hr_pm25_bc.227.grib2 +if [ "${SENDDBN}" = "YES" ]; then + ${DBNROOT}/bin/dbn_alert MODEL AQM_PM ${job} ${COMOUT}/${NET}.${cycle}.ave_1hr_pm25_bc.227.grib2 +fi + +#-------------------------------------------------------------- +# STEP 5: adding WMO header + +# Create AWIPS GRIB2 data for Bias-Corrected PM2.5 +if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then + echo 0 > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.grib2_pm25_bc.227 + export FORT12="filesize" + export FORT31= + export FORT51=${NET}.${cycle}.grib2_pm25_bc.227.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_pm25_bc.${cycle}.227 + + echo `ls -l ${NET}.${cycle}.grib2_pm25_bc.227.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.grib2_pm25_bc.227.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.1hpm25-bc.227.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_pm25_bc.${cycle}.227 + + #################################################### + rm_vrfy -rf filesize + echo 0 > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.max_1hr_pm25_bc.227.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=${NET}.${cycle}.max_1hr_pm25_bc.227.grib2.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_max_1hr_pm25_bc.${cycle}.227 + + echo `ls -l ${NET}.${cycle}.max_1hr_pm25_bc.227.grib2.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.max_1hr_pm25_bc.227.grib2.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.daily-1hr-pm25-max-bc.227.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_max_1hr_pm25_bc.${cycle}.227 + + rm_vrfy filesize + # daily_24hr_ave_PM2.5 + echo 0 > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.ave_24hr_pm25_bc.227.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=${NET}.${cycle}.ave_24hr_pm25_bc.227.grib2.temp + tocgrib2super < ${PARMaqm}/wmo/grib2_aqm_ave_24hrpm25_bc_awp.${cycle}.227 + + echo `ls -l ${NET}.${cycle}.ave_24hr_pm25_bc.227.grib2.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.ave_24hr_pm25_bc.227.grib2.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.24hr-pm25-ave-bc.227.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_ave_24hrpm25_bc_awp.${cycle}.227 + + # Post Files to COMOUT + cp_vrfy awpaqm.${cycle}.1hpm25-bc.227.grib2 ${COMOUT} + cp_vrfy awpaqm.${cycle}.daily-1hr-pm25-max-bc.227.grib2 ${COMOUT} + cp_vrfy awpaqm.${cycle}.24hr-pm25-ave-bc.227.grib2 ${COMOUT} + + # Distribute Data + if [ "${SENDDBN_NTC}" = "YES" ] ; then + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.1hpm25-bc.227.grib2 + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.daily-1hr-pm25-max-bc.227.grib2 + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.24hr-pm25-ave-bc.227.grib2 + fi +fi + +# +#----------------------------------------------------------------------- +# +# Print message indicating successful completion of script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +BIAS-CORRECTION-PM25 completed successfully. + +Exiting script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" +========================================================================" +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 diff --git a/scripts/exregional_post_stat.sh b/scripts/exregional_post_stat.sh deleted file mode 100755 index 93d0de895a..0000000000 --- a/scripts/exregional_post_stat.sh +++ /dev/null @@ -1,627 +0,0 @@ -#!/bin/bash - -# -#----------------------------------------------------------------------- -# -# Source the variable definitions file and the bash utility functions. -# -#----------------------------------------------------------------------- -# -. $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} -# -#----------------------------------------------------------------------- -# -# Save current shell options (in a global array). Then set new options -# for this script/function. -# -#----------------------------------------------------------------------- -# -{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 -# -#----------------------------------------------------------------------- -# -# Get the full path to the file in which this script/function is located -# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in -# which the file is located (scrfunc_dir). -# -#----------------------------------------------------------------------- -# -scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) -scrfunc_fn=$( basename "${scrfunc_fp}" ) -scrfunc_dir=$( dirname "${scrfunc_fp}" ) -# -#----------------------------------------------------------------------- -# -# Print message indicating entry into script. -# -#----------------------------------------------------------------------- -# -print_info_msg " -======================================================================== -Entering script: \"${scrfunc_fn}\" -In directory: \"${scrfunc_dir}\" - -This is the ex-script for the task that runs POST-UPP-STAT. -========================================================================" -# -#----------------------------------------------------------------------- -# -# Set OpenMP variables. -# -#----------------------------------------------------------------------- -# -export KMP_AFFINITY=${KMP_AFFINITY_POST_STAT} -export OMP_NUM_THREADS=${OMP_NUM_THREADS_POST_STAT} -export OMP_STACKSIZE=${OMP_STACKSIZE_POST_STAT} -# -#----------------------------------------------------------------------- -# -# Set run command. -# -#----------------------------------------------------------------------- -# -eval ${PRE_TASK_CMDS} - -if [ -z "${RUN_CMD_SERIAL:-}" ] ; then - print_err_msg_exit "\ - Run command was not set in machine file. \ - Please set RUN_CMD_SERIAL for your platform" -else - RUN_CMD_SERIAL=$(eval echo ${RUN_CMD_SERIAL}) - print_info_msg "$VERBOSE" " - All executables will be submitted with command \'${RUN_CMD_SERIAL}\'." -fi - -# -#----------------------------------------------------------------------- -# -# Move to the working directory -# -#----------------------------------------------------------------------- -# -DATA="${DATA}/tmp_POST_UPP" -mkdir_vrfy -p "$DATA" -cd_vrfy $DATA - -set -x -# -#----------------------------------------------------------------------- -# -# Set up variable names and intermediate files for calculations -# -#----------------------------------------------------------------------- -# -name="POST-UPP-INPUT" - -field1="PMTF" -field2="OZCON" -field3='1 hybrid level' - -fname1pm25=day1-${name}-${field1}.grib2 -fname1o3=day1-${name}-${field2}.grib2 -fname18ho3=day1-${name}-${field2}_8hrmax.grib2 - -fname2pm25=day2-${name}-${field1}.grib2 -fname2o3=day2-${name}-${field2}.grib2 -fname28ho3=day2-${name}-${field2}_8hrmax.grib2 - -fname3pm25=day3-${name}-${field1}.grib2 -fname3o3=day3-${name}-${field2}.grib2 -fname38ho3=day3-${name}-${field2}_8hrmax.grib2 - -# -#----------------------------------------------------------------------- -# -# Locate the post data and get the necessary 04Z-04Z -# -#----------------------------------------------------------------------- -# -if [ "${RUN_ENVIR}" != "nco" ]; then - postdir=${COMOUT_BASEDIR}/${PDY}${cyc}/postprd - postdirx00=${COMOUT_BASEDIR}/${PDY}00/postprd - postdirx06=${COMOUT_BASEDIR}/${PDY}06/postprd -else - postdir=${COMOUT_BASEDIR}/${RUN}.${PDY}/${cyc} - postdirx00=${COMOUT_BASEDIR}/${RUN}.${PDY}/00 - postdirx06=${COMOUT_BASEDIR}/${RUN}.${PDY}/06 -fi - -if [ "${cyc}" = "06" ] && [ "${FCST_LEN_HRS}" = "72" ]; then - - if [ ! -d ${postdirx00} ]; then - print_err_msg_exit "00z postprd folder not available." - fi - # - #----------------------------------------------------------------------- - # - # Get grib data at certain record - # - # - subset $field & ":1 hybrid level" and append all time together - # - #----------------------------------------------------------------------- - # - #=== Day1 O3 and PM2.5 - #--- borrow two hours from 00Z cycle (i.e., UTC 05-06z) - #--- $NDATE -6 ==> "00z" - let istart=5 - let iend=6 - - echo $istart > meta_time-step.txt - echo $istart > meta_time-step.max8ho3.txt - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t00z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - if [ $i -eq $istart ]; then - wgrib2 $postdirx00/$file -match ":$field1" -match ":$field3" -GRIB $fname1pm25 - wgrib2 $postdirx00/$file -match ":$field2" -match ":$field3" -GRIB $fname1o3 - wgrib2 $postdirx00/$file -match ":$field2" -match ":$field3" -GRIB $fname18ho3 - else - wgrib2 $postdirx00/$file -match ":$field1" -match ":$field3" -append -GRIB $fname1pm25 - wgrib2 $postdirx00/$file -match ":$field2" -match ":$field3" -append -GRIB $fname1o3 - wgrib2 $postdirx00/$file -match ":$field2" -match ":$field3" -append -GRIB $fname18ho3 - fi - - let i=i+1 - done # while - - #=== Day1 O3 and PM2.5 - #--- hours 1-22 from 06Z cycle (i.e., UTC 07z-next day 04z) - - let istart=1 - let iend=22 - - echo $iend >> meta_time-step.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -append -GRIB $fname1pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname1o3 - - let i=i+1 - done # while - - #======================================== - #=== Day 1 max 8hr O3 - #--- hours 1-29 from 06Z cycle (i.e., UTC 07-next day 11z) - - let istart=1 - let iend=29 - - let iend2=$iend-1 - echo $iend2 >> meta_time-step.max8ho3.txt - echo $iend >> meta_time-step.max8ho3.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname18ho3 - - let i=i+1 - done # while - - #======================================== - #=== Day2 O3 and PM2.5 - #--- hours 23-46 from 06Z cycle (i.e., UTC 05z-next day 04z) - - let istart=23 - let iend=46 - - echo $istart >> meta_time-step.txt - echo $iend >> meta_time-step.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - if [ $i -eq $istart ]; then - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -GRIB $fname2pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -GRIB $fname2o3 - else - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -append -GRIB $fname2pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname2o3 - fi - - let i=i+1 - done # while - - #=== Day2 Max 8hr O3 - #--- hours 23-53 from 06Z cycle (i.e., UTC 05z-next day 11z) - - let istart=23 - let iend=53 - - let iend2=$iend-1 - echo $iend2 >> meta_time-step.max8ho3.txt - echo $iend >> meta_time-step.max8ho3.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - if [ $i -eq $istart ]; then - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -GRIB $fname28ho3 - else - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname28ho3 - fi - - let i=i+1 - done # while - - - #======================================== - #=== Day3 O3 and PM2.5 - #--- hours 47-70 from 06Z cycle (i.e., UTC 05z-next day 04z) - - let istart=47 - let iend=70 - - echo $istart >> meta_time-step.txt - echo $iend >> meta_time-step.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - if [ $i -eq $istart ]; then - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -GRIB $fname3pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -GRIB $fname3o3 - else - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -append -GRIB $fname3pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname3o3 - fi - - let i=i+1 - done # while - - #=== Day 3 max 8hr O3 - #--- hours 47-72 from 06Z cycle (i.e., UTC 05z-next day 06z, the last hour of current cycle) - - let istart=47 - let iend=72 - - echo $iend >> meta_time-step.max8ho3.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - if [ $i -eq $istart ]; then - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -GRIB $fname38ho3 - else - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname38ho3 - fi - - let i=i+1 - done # while - -elif [ "${cyc}" = "12" ] && [ "${FCST_LEN_HRS}" = "72" ]; then - - if [ ! -d ${postdirx00} ] || [ ! -d ${postdirx06} ]; then - print_err_msg_exit "00z or 06z postprd folder not available." - fi - - # - #----------------------------------------------------------------------- - # - # Get grib data at certain record - # - subset $field & ":1 hybrid level" and append all time together - # - #----------------------------------------------------------------------- - # - #======================================== - #=== Day1 O3 and PM2.5 - #--- borrow two hours from 00Z cycle (i.e., UTC 05-06z) - #--- $NDATE - 12 ==> "00z" - - let istart=5 - let iend=6 - - echo $istart > meta_time-step.txt - echo $istart > meta_time-step.max8ho3.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t00z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - if [ $i -eq $istart ]; then - wgrib2 $postdirx00/$file -match ":$field1" -match ":$field3" -GRIB $fname1pm25 - wgrib2 $postdirx00/$file -match ":$field2" -match ":$field3" -GRIB $fname1o3 - wgrib2 $postdirx00/$file -match ":$field2" -match ":$field3" -GRIB $fname18ho3 - else - wgrib2 $postdirx00/$file -match ":$field1" -match ":$field3" -append -GRIB $fname1pm25 - wgrib2 $postdirx00/$file -match ":$field2" -match ":$field3" -append -GRIB $fname1o3 - wgrib2 $postdirx00/$file -match ":$field2" -match ":$field3" -append -GRIB $fname18ho3 - fi - - let i=i+1 - done # while - - #=== Day1 O3 and PM2.5 - #--- borrow six hours from 06Z cycle (i.e., UTC 07-12z) - #--- $NDATE - 6 ==> "06z" - - let istart=1 - let iend=6 - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t06z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - wgrib2 $postdirx06/$file -match ":$field1" -match ":$field3" -append -GRIB $fname1pm25 - wgrib2 $postdirx06/$file -match ":$field2" -match ":$field3" -append -GRIB $fname1o3 - wgrib2 $postdirx06/$file -match ":$field2" -match ":$field3" -append -GRIB $fname18ho3 - - let i=i+1 - done # while - - #=== Day1 O3 and PM2.5 - #--- hours 1-16 from 12Z cycle (i.e., UTC 13z-next day 04z) - - let istart=1 - let iend=16 - - echo $iend >> meta_time-step.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -append -GRIB $fname1pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname1o3 - - let i=i+1 - done # while - - #=== Day 1 max 8hr O3 - #--- hours 1-23 from 12Z cycle (i.e., UTC 13z-next day 11z) - - let istart=1 - let iend=23 - - let iend2=$iend-1 - echo $iend2 >> meta_time-step.max8ho3.txt - echo $iend >> meta_time-step.max8ho3.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname18ho3 - - let i=i+1 - done # while - - #======================================== - #=== Day2 O3 and PM2.5 - #--- hours 17-40 from 12Z cycle (i.e., UTC 05z-next day 04z) - - let istart=17 - let iend=40 - - echo $istart >> meta_time-step.txt - echo $iend >> meta_time-step.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - if [ $i -eq $istart ]; then - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -GRIB $fname2pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -GRIB $fname2o3 - else - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -append -GRIB $fname2pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname2o3 - fi - - let i=i+1 - done # while - - #=== Day2 Max 8hr O3 - #--- hours 17-47 from 12Z cycle (i.e., UTC 05z-next day 11z) - - let istart=17 - let iend=47 - - let iend2=$iend-1 - echo $iend2 >> meta_time-step.max8ho3.txt - echo $iend >> meta_time-step.max8ho3.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - if [ $i -eq $istart ]; then - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -GRIB $fname28ho3 - else - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname28ho3 - fi - - let i=i+1 - done # while - - #======================================== - #=== Day3 O3 and PM2.5 - #--- hours 41-64 from 12Z cycle (i.e., UTC 05z-next day 04z) - - let istart=41 - let iend=64 - - echo $istart >> meta_time-step.txt - echo $iend >> meta_time-step.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - if [ $i -eq $istart ]; then - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -GRIB $fname3pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -GRIB $fname3o3 - else - wgrib2 $postdir/$file -match ":$field1" -match ":$field3" -append -GRIB $fname3pm25 - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname3o3 - fi - - let i=i+1 - done # while - - #=== Day 3 max 8hr O3 - #--- hours 41-71 from 12Z cycle (i.e., UTC 05z-next day 11z) - - let istart=41 - let iend=71 - - let iend2=$iend-1 - echo $iend2 >> meta_time-step.max8ho3.txt - - let i=$istart - - while [ $i -le $iend ]; do - - printf -v i2 "%02g" $i - file="${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2" - - if [ $i -eq $istart ]; then - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -GRIB $fname38ho3 - else - wgrib2 $postdir/$file -match ":$field2" -match ":$field3" -append -GRIB $fname38ho3 - fi - - let i=i+1 - done # while - -else - print_info_msg "Post-UPP only works for 06z or 12z cycle and 72 hour run length." - exit 0 -fi - -# -#---------------------------------------------------------------------- -# -# Execute POST-UPP-STAT -# -#----------------------------------------------------------------------- -# -PREP_STEP -eval ${RUN_CMD_SERIAL} ${EXECdir}/O3-PM25-stat ${REDIRECT_OUT_ERR} || \ - print_err_msg_exit "\ - Call to execute POST-UPP-STAT for Online-CMAQ failed." -POST_STEP - -# -#----------------------------------------------------------------------- -# -# Rearrange output files. -# -#----------------------------------------------------------------------- -# -for fhr in $(seq -f "%02g" 1 72); do - wgrib2 $postdir/${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2 -match ":$field1" -match ":$field3" -GRIB ${NET}.t${cyc}z.pm25.f${fhr}.${POST_OUTPUT_DOMAIN_NAME}.grib2 - wgrib2 $postdir/${NET}.t${cyc}z.cmaq.f0${i2}.${POST_OUTPUT_DOMAIN_NAME}.grib2 -match ":$field2" -match ":$field3" -GRIB ${NET}.t${cyc}z.awpozcon.f${fhr}.${POST_OUTPUT_DOMAIN_NAME}.grib2 -done - -mv_vrfy day*.grib2 meta_time-step* ${COMOUT} -mv_vrfy ${NET}.t${cyc}z.pm25.f*.${POST_OUTPUT_DOMAIN_NAME}.grib2 ${COMOUT} -mv_vrfy ${NET}.t${cyc}z.awpozcon.f*.${POST_OUTPUT_DOMAIN_NAME}.grib2 ${COMOUT} -mv_vrfy ${NET}.max_1hr_o3.grib2 ${COMOUT}/${NET}.t${cyc}z.max_1hr_o3.${POST_OUTPUT_DOMAIN_NAME}.grib2 -mv_vrfy ${NET}.max_8hr_o3.grib2 ${COMOUT}/${NET}.t${cyc}z.max_8hr_o3.${POST_OUTPUT_DOMAIN_NAME}.grib2 -mv_vrfy ${NET}.ave_24hr_pm25.grib2 ${COMOUT}/${NET}.t${cyc}z.ave_24hr_pm25.${POST_OUTPUT_DOMAIN_NAME}.grib2 -mv_vrfy ${NET}.max_1hr_pm25.grib2 ${COMOUT}/${NET}.t${cyc}z.max_1hr_pm25.${POST_OUTPUT_DOMAIN_NAME}.grib2 - -if [ "${PREDEF_GRID_NAME}" = "AQM_NA_13km" ]; then - - grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" - grid148="lambert:263.0000:33.0000:45.0000 239.3720:442:12000.000 21.8210:265:12000.000" - grid196="mercator:20.0000 198.4750:321:2500.000:206.1310 18.0730:255:2500.000:23.0880" - grid198="nps:210.0000:60.0000 181.4290:825:5953.000 40.5300:553:5953.000" - - mkdir_vrfy cs.${PDY} - mkdir_vrfy ak.${PDY} - mkdir_vrfy hi.${PDY} - - for grid in 148 227 196 198 - do - gg="grid${grid}" - wgrib2 ${NET}.t${cyc}z.max_8hr_o3.${POST_OUTPUT_DOMAIN_NAME}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.t${cyc}z.max_8hr_o3.${grid}.grib2 - wgrib2 ${NET}.t${cyc}z.max_1hr_o3.${POST_OUTPUT_DOMAIN_NAME}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg}} ${NET}.t${cyc}z.max_1hr_o3.${grid}.grib2 - wgrib2 ${NET}.t${cyc}z.ave_24hr_pm25.${POST_OUTPUT_DOMAIN_NAME}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.t${cyc}z.ave_24hr_pm25.${grid}.grib2 - wgrib2 ${NET}.t${cyc}z.max_1hr_pm25.${POST_OUTPUT_DOMAIN_NAME}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.t${cyc}z.max_1hr_pm25.${grid}.grib2 - - for fhr in $(seq -f "%02g" 1 72); do - wgrib2 ${NET}.t${cyc}z.pm25.f${fhr}.${POST_OUTPUT_DOMAIN_NAME}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} aqm.t${cyc}z.pm25.f${fhr}.${grid}.grib2 - wgrib2 ${NET}.t${cyc}z.awpozcon.f${fhr}.${POST_OUTPUT_DOMAIN_NAME}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} aqm.t${cyc}z.awpozcon.f${fhr}.${grid}.grib2 - done - done - - mv_vrfy *.148.grib2 *.227.grib2 cs.${PDY} - mv_vrfy *.198.grib2 ak.${PDY} - mv_vrfy *.196.grib2 hi.${PDY} - - mv_vrfy cs.${PDY} ${COMOUT}/cs.${PDY} - mv_vrfy ak.${PDY} ${COMOUT}/ak.${PDY} - mv_vrfy hi.${PDY} ${COMOUT}/hi.${PDY} -fi - -# -#----------------------------------------------------------------------- -# -# Print message indicating successful completion of script. -# -#----------------------------------------------------------------------- -# -print_info_msg " -======================================================================== -POST-STAT completed successfully. - -Exiting script: \"${scrfunc_fn}\" -In directory: \"${scrfunc_dir}\" -========================================================================" -# -#----------------------------------------------------------------------- -# -{ restore_shell_opts; } > /dev/null 2>&1 diff --git a/scripts/exregional_post_stat_o3.sh b/scripts/exregional_post_stat_o3.sh new file mode 100755 index 0000000000..9faca1eb9f --- /dev/null +++ b/scripts/exregional_post_stat_o3.sh @@ -0,0 +1,292 @@ +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. $USHdir/source_util_funcs.sh +source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" + +This is the ex-script for the task that runs POST-STAT-O3. +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set OpenMP variables. +# +#----------------------------------------------------------------------- +# +export KMP_AFFINITY=${KMP_AFFINITY_POST_STAT_O3} +export OMP_NUM_THREADS=${OMP_NUM_THREADS_POST_STAT_O3} +export OMP_STACKSIZE=${OMP_STACKSIZE_POST_STAT_O3} +# +#----------------------------------------------------------------------- +# +# Set run command. +# +#----------------------------------------------------------------------- +# +eval ${PRE_TASK_CMDS} + +if [ -z "${RUN_CMD_SERIAL:-}" ] ; then + print_err_msg_exit "\ + Run command was not set in machine file. \ + Please set RUN_CMD_SERIAL for your platform" +else + RUN_CMD_SERIAL=$(eval echo ${RUN_CMD_SERIAL}) + print_info_msg "$VERBOSE" " + All executables will be submitted with command \'${RUN_CMD_SERIAL}\'." +fi + +# +#----------------------------------------------------------------------- +# +# Move to the working directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA}/tmp_POST_STAT_O3" +mkdir_vrfy -p "$DATA" +cd_vrfy $DATA + +set -x +# +#----------------------------------------------------------------------- +# +# POST-STAT: O3 +# +#----------------------------------------------------------------------- +# +if [ "${PREDEF_GRID_NAME}" = "AQM_NA_13km" ]; then + id_domain=793 +fi + +ln_vrfy -sf ${COMIN}/${NET}.${cycle}.chem_sfc.nc . + +# +cat >aqm_post.ini <> ${NET}.${cycle}.1ho3.${id_domain}.grib2 + else + wgrib2 ${DATA}/${NET}.${cycle}.awpozcon.f${fhr9}.${id_domain}.grib2 -d 1 -append -grib ${NET}.${cycle}.1ho3.${id_domain}.grib2 + wgrib2 ${DATA}/${NET}.${cycle}.awpozcon.f${fhr9}.${id_domain}.grib2 -d 2 -append -grib ${NET}.${cycle}.8ho3.${id_domain}.grib2 + fi + (( fhr=fhr+1 )) +done + +grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" +#grid148="lambert:263.0000:33.0000:45.0000 239.3720:442:12000.000 21.8210:265:12000.000" +grid196="mercator:20.0000 198.4750:321:2500.000:206.1310 18.0730:255:2500.000:23.0880" +grid198="nps:210.0000:60.0000 181.4290:825:5953.000 40.5300:553:5953.000" + +for grid in 227 196 198;do + gg="grid${grid}" + wgrib2 ${NET}.${cycle}.1ho3.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.1ho3.${grid}.grib2 + + if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then + wgrib2 ${NET}.${cycle}.8ho3.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.8ho3.${grid}.grib2 + + for hr in 1 8; do + echo 0 > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.${hr}ho3.${grid}.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=grib2.${cycle}.${hr}awpcsozcon.${grid}.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_ave_${hr}hr_o3-awpozcon.${cycle}.${grid} + + echo `ls -l grib2.${cycle}.${hr}awpcsozcon.${grid}.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=grib2.${cycle}.${hr}awpcsozcon.${grid}.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.${hr}ho3.${grid}.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_ave_${hr}hr_o3-awpozcon.${cycle}.${grid} + done + for var in 1ho3 8ho3 awpozcon;do + cp_vrfy ${DATA}/${NET}.${cycle}.${var}*grib2 ${COMOUT} + cp_vrfy ${DATA}/awpaqm.${cycle}.${var}*grib2 ${COMOUT} + done + + fi +done + +#------------------------------------------------------------ +# o3_post_maxi +#------------------------------------------------------------ +if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then + + ln_vrfy -sf ${COMIN}/${NET}.${cycle}.chem_sfc.nc a.nc + + export chk=1 + export chk1=1 + # today 00z file exists otherwise chk=0 + +cat >aqm_max.ini < filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.max_${hr}hr_o3.${grid}.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=aqm-${hr}hro3-maxi.${grid}.grib2.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm-${hr}hro3-maxi.${cycle}.${grid} + echo `ls -l aqm-${hr}hro3-maxi.${grid}.grib2.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=aqm-${hr}hro3-maxi.${grid}.grib2.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.${hr}ho3-max.${grid}.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm-${hr}hro3-maxi.${cycle}.${grid} + done + + cp_vrfy awpaqm.${cycle}.*o3-max.${grid}.grib2 ${COMOUT} + if [ "${SENDDBN_NTC}" = "YES" ]; then + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.1ho3-max.${grid}.grib2 + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.8ho3-max.${grid}.grib2 + fi + done +fi + +# +#----------------------------------------------------------------------- +# +# Print message indicating successful completion of script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +POST-STAT-O3 completed successfully. + +Exiting script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" +========================================================================" +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 diff --git a/scripts/exregional_post_stat_pm25.sh b/scripts/exregional_post_stat_pm25.sh new file mode 100755 index 0000000000..3895ce21bf --- /dev/null +++ b/scripts/exregional_post_stat_pm25.sh @@ -0,0 +1,297 @@ +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. $USHdir/source_util_funcs.sh +source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" + +This is the ex-script for the task that runs POST-STAT-PM25. +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set OpenMP variables. +# +#----------------------------------------------------------------------- +# +export KMP_AFFINITY=${KMP_AFFINITY_POST_STAT_PM25} +export OMP_NUM_THREADS=${OMP_NUM_THREADS_POST_STAT_PM25} +export OMP_STACKSIZE=${OMP_STACKSIZE_POST_STAT_PM25} +# +#----------------------------------------------------------------------- +# +# Set run command. +# +#----------------------------------------------------------------------- +# +eval ${PRE_TASK_CMDS} + +if [ -z "${RUN_CMD_SERIAL:-}" ] ; then + print_err_msg_exit "\ + Run command was not set in machine file. \ + Please set RUN_CMD_SERIAL for your platform" +else + RUN_CMD_SERIAL=$(eval echo ${RUN_CMD_SERIAL}) + print_info_msg "$VERBOSE" " + All executables will be submitted with command \'${RUN_CMD_SERIAL}\'." +fi + +# +#----------------------------------------------------------------------- +# +# Move to the working directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA}/tmp_POST_STAT_PM25" +mkdir_vrfy -p "$DATA" +cd_vrfy $DATA + +set -x + +# +#----------------------------------------------------------------------- +# +# POST-STAT: PM25 +# +#----------------------------------------------------------------------- +# + +if [ "${PREDEF_GRID_NAME}" = "AQM_NA_13km" ]; then + id_domain=793 +fi + +#--------------------------------------------------------------- +# aqm_pm25_post +#--------------------------------------------------------------- + +ln_vrfy -sf ${COMIN}/${NET}.${cycle}.chem_sfc.nc . + +cat >aqm_post.ini <> ${NET}.${cycle}.1hpm25.${id_domain}.grib2 + +export grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" +#export grid148="lambert:263.0000:33.0000:45.0000 239.3720:442:12000.000 21.8210:265:12000.000" +export grid196="mercator:20.0000 198.4750:321:2500.000:206.1310 18.0730:255:2500.000:23.0880" +export grid198="nps:210.0000:60.0000 181.4290:825:5953.000 40.5300:553:5953.000" + +for grid in 227 196 198; do + gg="grid${grid}" + wgrib2 ${NET}.${cycle}.1hpm25.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.1hpm25.${grid}.grib2 +done + +cp_vrfy ${DATA}/${NET}.${cycle}*pm25*.grib2 ${COMOUT} + +# Create AWIPS GRIB2 data for Bias-Corrected PM2.5 +if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then + for grid in 227 198 196; do + echo 0 > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.1hpm25.${grid}.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=${NET}.${cycle}.1hpm25.${grid}.grib2.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_1hpm25.${cycle}.${grid} + + echo `ls -l ${NET}.${cycle}.grib2_pm25.${grid}.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.1hpm25.${grid}.grib2.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.1hpm25.${grid}.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_1hpm25.${cycle}.${grid} + + # Post Files to COMOUT + cp_vrfy awpaqm.${cycle}.1hpm25.${grid}.grib2 ${COMOUT} + + # Distribute Data + if [ "${SENDDBN_NTC}" = "YES" ] ; then + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.1hpm25.${grid}.grib2 + ${DBNROOT}/bin/dbn_alert ${DBNALERT_TYPE} ${NET} ${job} ${COMOUT}/awpaqm.${cycle}.daily-1hr-pm25-max.${grid}.grib2 + fi + done +fi + +#--------------------------------------------------------------- +# aqm_pm25_post_maxi +#--------------------------------------------------------------- +if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then + + ln_vrfy -sf ${COMIN}/${NET}.${cycle}.chem_sfc.nc a.nc + + export chk=1 + export chk1=1 + # today 00z file exists otherwise chk=0 + +cat >aqm_max.ini < filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.1hpm25-max.${grid}.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=${NET}.${cycle}.max_1hr_pm25.${grid}.grib2.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_max_1hr_pm25.${cycle}.${grid} + + echo `ls -l ${NET}.${cycle}.max_1hr_pm25.${grid}.grib2.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.max_1hr_pm25.${grid}.grib2.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.daily-1hr-pm25-max.${grid}.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_max_1hr_pm25.${cycle}.${grid} + + rm filesize + echo 0 > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.24hrpm25-ave.${grid}.grib2 + export FORT12="filesize" + export FORT31= + export FORT51=${NET}.${cycle}.24hrpm25-ave.${grid}.grib2.temp + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_ave_24hrpm25_awp.${cycle}.${grid} + + echo `ls -l ${NET}.${cycle}.24hrpm25-ave.${grid}.grib2.temp | awk '{print $5} '` > filesize + export XLFRTEOPTS="unit_vars=yes" + export FORT11=${NET}.${cycle}.24hrpm25-ave.${grid}.grib2.temp + export FORT12="filesize" + export FORT31= + export FORT51=awpaqm.${cycle}.24hr-pm25-ave.${grid}.grib2 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_ave_24hrpm25_awp.${cycle}.${grid} + + cp_vrfy ${DATA}/${NET}.${cycle}.ave_24hr_pm25*.grib2 ${COMOUT} + cp_vrfy ${DATA}/${NET}.${cycle}.max_1hr_pm25*.grib2 ${COMOUT} + cp_vrfy awpaqm.${cycle}.daily-1hr-pm25-max.${grid}.grib2 ${COMOUT} + cp_vrfy awpaqm.${cycle}.24hr-pm25-ave.${grid}.grib2 ${COMOUT} + + if [ "$SENDDBN" = "YES" ]; then + ${DBNROOT}/bin/dbn_alert MODEL AQM_MAX ${job} ${COMOUT}/${NET}.${cycle}.ave_24hr_pm25.${grid}.grib2 + ${DBNROOT}/bin/dbn_alert MODEL AQM_MAX ${job} ${COMOUT}/${NET}.${cycle}.max_1hr_pm25.${grid}.grib2 + fi + done +fi + +# +#----------------------------------------------------------------------- +# +# Print message indicating successful completion of script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +POST-STAT-PM25 completed successfully. + +Exiting script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" +========================================================================" +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 diff --git a/scripts/exregional_pre_post_stat.sh b/scripts/exregional_pre_post_stat.sh new file mode 100755 index 0000000000..4ae10a3efa --- /dev/null +++ b/scripts/exregional_pre_post_stat.sh @@ -0,0 +1,165 @@ +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. $USHdir/source_util_funcs.sh +source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" + +This is the ex-script for the task that runs POST-UPP-STAT. +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set OpenMP variables. +# +#----------------------------------------------------------------------- +# +export KMP_AFFINITY=${KMP_AFFINITY_PRE_POST_STAT} +export OMP_NUM_THREADS=${OMP_NUM_THREADS_PRE_POST_STAT} +export OMP_STACKSIZE=${OMP_STACKSIZE_PRE_POST_STAT} +# +#----------------------------------------------------------------------- +# +# Set run command. +# +#----------------------------------------------------------------------- +# +eval ${PRE_TASK_CMDS} + +if [ -z "${RUN_CMD_SERIAL:-}" ] ; then + print_err_msg_exit "\ + Run command was not set in machine file. \ + Please set RUN_CMD_SERIAL for your platform" +else + RUN_CMD_SERIAL=$(eval echo ${RUN_CMD_SERIAL}) + print_info_msg "$VERBOSE" " + All executables will be submitted with command \'${RUN_CMD_SERIAL}\'." +fi + +# +#----------------------------------------------------------------------- +# +# Move to the working directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA}/tmp_PRE_POST_STAT" +mkdir_vrfy -p "$DATA" +cd_vrfy $DATA + +set -x + +ist=1 +case ${cyc} in + 00) est=06;; + 06) est=72;; + 12) est=72;; + 18) est=06;; +esac + +while [ "$ist" -le "${est}" ]; do + hst=$( printf "%03d" "${ist}" ) + + rm_vrfy -f ${DATA}/tmp*nc + rm_vrfy -f ${DATA}/${NET}.${cycle}.chem_sfc_f${hst}*nc + rm_vrfy -f ${DATA}/${NET}.${cycle}.met_sfc_f${hst}*nc + + ncks -v lat,lon,o3_ave,no_ave,no2_ave,pm25_ave -d pfull,63,63 ${COMIN}/${NET}.${cycle}.dyn.f${hst}.nc ${DATA}/tmp2a.nc + + ncks -C -O -x -v pfull ${DATA}/tmp2a.nc ${DATA}/tmp2b.nc + + ncwa -a pfull ${DATA}/tmp2b.nc ${DATA}/tmp2c.nc + + ncrename -v o3_ave,o3 -v no_ave,no -v no2_ave,no2 -v pm25_ave,PM25_TOT ${DATA}/tmp2c.nc + + mv_vrfy ${DATA}/tmp2c.nc ${DATA}/${NET}.${cycle}.chem_sfc.f${hst}.nc + + ncks -v dswrf,hpbl,tmp2m,ugrd10m,vgrd10m,spfh2m ${COMIN}/${NET}.${cycle}.phy.f${hst}.nc ${DATA}/${NET}.${cycle}.met_sfc.f${hst}.nc + + (( ist=ist+1 )) +done + + +ist=1 +while [ "${ist}" -le "${est}" ]; do + hst=$( printf "%03d" "${ist}" ) + ic=0 + while [ $ic -lt 900 ]; do + if [ -s ${DATA}/${NET}.${cycle}.chem_sfc.f${hst}.nc ]; then + echo "${DATA}/${NET}.${cycle}.chem_sfc.f${hst}.nc" "exist!" + break + else + sleep 10 + (( ic=ic+1 )) + fi + done + (( ist=ist+1 )) +done + +ncecat ${DATA}/${NET}.${cycle}.chem_sfc.f*.nc ${DATA}/${NET}.${cycle}.chem_sfc.nc + +# +#----------------------------------------------------------------------- +# +# Move output to COMIN directory. +# +#----------------------------------------------------------------------- +# +mv_vrfy ${DATA}/${NET}.${cycle}.met_sfc.f*.nc ${COMIN} +mv_vrfy ${DATA}/${NET}.${cycle}.chem_sfc.f*.nc ${COMIN} +mv_vrfy ${DATA}/${NET}.${cycle}.chem_sfc.nc ${COMIN} +# +#----------------------------------------------------------------------- +# +# Print message indicating successful completion of script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +PRE-POST-STAT completed successfully. + +Exiting script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" +========================================================================" +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 diff --git a/scripts/exregional_run_fcst.sh b/scripts/exregional_run_fcst.sh index a5fa181b51..beb6441d9c 100755 --- a/scripts/exregional_run_fcst.sh +++ b/scripts/exregional_run_fcst.sh @@ -567,7 +567,8 @@ POST_STEP # Move RESTART directory to COMIN and create symlink in DATA only for # NCO mode and when it is not empty. # -# Move AQM output product file to COMOUT only for NCO mode in Online-CMAQ +# Move AQM output product file to COMOUT only for NCO mode in Online-CMAQ. +# Move dyn and phy files to COMIN only if run_post and write_dopost are off. # #----------------------------------------------------------------------- # @@ -580,6 +581,11 @@ if [ "${RUN_ENVIR}" = "nco" ]; then if [ "${CPL_AQM}" = "TRUE" ]; then mv_vrfy ${DATA}/${AQM_RC_PRODUCT_FN} ${COMOUT}/${NET}.${cycle}${dot_ensmem}.${AQM_RC_PRODUCT_FN} + + if [ "${RUN_TASK_RUN_POST}" = "FALSE" ] && [ "${WRITE_DOPOST}" = "FALSE" ]; then + mv_vrfy ${DATA}/dynf${fhr}.nc ${COMIN}/${NET}.${cycle}${dot_ensmem}.dyn.f${fhr}.nc + mv_vrfy ${DATA}/phyf${fhr}.nc ${COMIN}/${NET}.${cycle}${dot_ensmem}.phy.f${fhr}.nc + fi fi fi # @@ -643,8 +649,8 @@ if [ ${WRITE_DOPOST} = "TRUE" ]; then done if [ "${CPL_AQM}" = "TRUE" ] && [ "${RUN_ENVIR}" = "nco" ]; then - mv_vrfy ${DATA}/dynf${fhr}.nc ${COMOUT}/${NET}.${cycle}${dot_ensmem}.dyn.f${fhr}.nc - mv_vrfy ${DATA}/phyf${fhr}.nc ${COMOUT}/${NET}.${cycle}${dot_ensmem}.phy.f${fhr}.nc + mv_vrfy ${DATA}/dynf${fhr}.nc ${COMIN}/${NET}.${cycle}${dot_ensmem}.dyn.f${fhr}.nc + mv_vrfy ${DATA}/phyf${fhr}.nc ${COMIN}/${NET}.${cycle}${dot_ensmem}.phy.f${fhr}.nc fi done diff --git a/scripts/exregional_run_post.sh b/scripts/exregional_run_post.sh index bcf8732811..93c1cd126a 100755 --- a/scripts/exregional_run_post.sh +++ b/scripts/exregional_run_post.sh @@ -294,10 +294,10 @@ for fid in "${fids[@]}"; do fi done -# Move phy and dyn files to COMOUT only for AQM in NCO mode +# Move phy and dyn files to COMIN only for AQM in NCO mode if [ "${CPL_AQM}" = "TRUE" ] && [ "${RUN_ENVIR}" = "nco" ]; then - mv_vrfy ${dyn_file} ${COMOUT}/${NET}.${cycle}${dot_ensmem}.dyn.f${fhr}.nc - mv_vrfy ${phy_file} ${COMOUT}/${NET}.${cycle}${dot_ensmem}.phy.f${fhr}.nc + mv_vrfy ${dyn_file} ${COMIN}/${NET}.${cycle}${dot_ensmem}.dyn.f${fhr}.nc + mv_vrfy ${phy_file} ${COMIN}/${NET}.${cycle}${dot_ensmem}.phy.f${fhr}.nc fi rm_vrfy -rf ${DATA_FHR} diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 5d851b9a8a..65c7cfb2eb 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -2206,7 +2206,11 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: false RUN_TASK_FIRE_EMISSION: false RUN_TASK_POINT_SOURCE: false - RUN_TASK_POST_STAT: false + RUN_TASK_PRE_POST_STAT: false + RUN_TASK_POST_STAT_O3: false + RUN_TASK_POST_STAT_PM25: false + RUN_TASK_BIAS_CORRECTION_O3: false + RUN_TASK_BIAS_CORRECTION_PM25: false AQM_ICS_TN: "aqm_ics" NNODES_AQM_ICS: 1 @@ -2254,15 +2258,51 @@ cpl_aqm_parm: OMP_NUM_THREADS_POINT_SOURCE: 2 OMP_STACKSIZE_POINT_SOURCE: "1024m" - POST_STAT_TN: "post_stat" - NNODES_POST_STAT: 1 - PPN_POST_STAT: 1 - WTIME_POST_STAT: 00:30:00 - MAXTRIES_POST_STAT: 2 - KMP_AFFINITY_POST_STAT: "scatter" - OMP_NUM_THREADS_POST_STAT: 1 - OMP_STACKSIZE_POST_STAT: "2056M" + PRE_POST_STAT_TN: "pre_post_stat" + NNODES_PRE_POST_STAT: 1 + PPN_PRE_POST_STAT: 1 + WTIME_PRE_POST_STAT: 00:30:00 + MAXTRIES_PRE_POST_STAT: 2 + KMP_AFFINITY_PRE_POST_STAT: "scatter" + OMP_NUM_THREADS_PRE_POST_STAT: 1 + OMP_STACKSIZE_PRE_POST_STAT: "2056M" + POST_STAT_O3_TN: "post_stat_o3" + NNODES_POST_STAT_O3: 1 + PPN_POST_STAT_O3: 1 + WTIME_POST_STAT_O3: 00:30:00 + MAXTRIES_POST_STAT_O3: 2 + KMP_AFFINITY_POST_STAT_O3: "scatter" + OMP_NUM_THREADS_POST_STAT_O3: 1 + OMP_STACKSIZE_POST_STAT_O3: "2056M" + + POST_STAT_PM25_TN: "post_stat_pm25" + NNODES_POST_STAT_PM25: 1 + PPN_POST_STAT_PM25: 1 + WTIME_POST_STAT_PM25: 00:30:00 + MAXTRIES_POST_STAT_PM25: 2 + KMP_AFFINITY_POST_STAT_PM25: "scatter" + OMP_NUM_THREADS_POST_STAT_PM25: 1 + OMP_STACKSIZE_POST_STAT_PM25: "2056M" + + BIAS_CORRECTION_O3_TN: "bias_correct_o3" + NNODES_BIAS_CORRECTION_O3: 1 + PPN_BIAS_CORRECTION_O3: 1 + WTIME_BIAS_CORRECTION_O3: 00:30:00 + MAXTRIES_BIAS_CORRECTION_O3: 2 + KMP_AFFINITY_BIAS_CORRECTION_O3: "scatter" + OMP_NUM_THREADS_BIAS_CORRECTION_O3: 128 + OMP_STACKSIZE_BIAS_CORRECTION_O3: "2056M" + + BIAS_CORRECTION_PM25_TN: "bias_correct_pm25" + NNODES_BIAS_CORRECTION_PM25: 1 + PPN_BIAS_CORRECTION_PM25: 1 + WTIME_BIAS_CORRECTION_PM25: 00:30:00 + MAXTRIES_BIAS_CORRECTION_PM25: 2 + KMP_AFFINITY_BIAS_CORRECTION_PM25: "scatter" + OMP_NUM_THREADS_BIAS_CORRECTION_PM25: 128 + OMP_STACKSIZE_BIAS_CORRECTION_PM25: "2056M" + # #----------------------------------------------------------------------- # @@ -2359,9 +2399,12 @@ cpl_aqm_parm: # COLDSTART: # Flag turning on/off warm start # -# WARMSTART_CYCLE_DIR +# WARMSTART_CYCLE_DIR: # Path to the directory where RESTART dir is located for warm start # +# COMINbicor: +# Path to the data for bias correction +# #----------------------------------------------------------------------- # AQM_RC_TMPL_FN: "aqm.rc" @@ -2403,4 +2446,5 @@ cpl_aqm_parm: COLDSTART: true WARMSTART_CYCLE_DIR: "/path/to/warm/start/cycle/dir" + COMINbicor: "" COMINgfs_BASEDIR: "" diff --git a/ush/machine/wcoss2.yaml b/ush/machine/wcoss2.yaml index 2a6efa397f..fcd9d71151 100644 --- a/ush/machine/wcoss2.yaml +++ b/ush/machine/wcoss2.yaml @@ -35,4 +35,5 @@ data: HRRR: compath.py ${envir}/hrrr/${hrrr_ver}/hrrr.${PDYext}/conus cpl_aqm_parm: PT_SRC_BASEDIR: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt + COMINbicor: /lfs/h2/emc/physics/noscrub/kai.wang/Bias_correction/aqmv7.0 COMINgfs_BASEDIR: /lfs/h1/ops/prod/com/gfs/v16.3 diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 index ea0b9dc240..32609f5f7b 100644 --- a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 +++ b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 @@ -69,7 +69,9 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true + RUN_TASK_PRE_POST_STAT: false RUN_TASK_POST_STAT: false + RUN_TASK_BIAS_CORRECTION: false DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 diff --git a/versions/run.ver.wcoss2 b/versions/run.ver.wcoss2 index 0e8bcb6a51..6c7a9c1d52 100644 --- a/versions/run.ver.wcoss2 +++ b/versions/run.ver.wcoss2 @@ -15,3 +15,7 @@ export udunits_ver=2.2.28 export gsl_ver=2.7 export netcdf_ver=4.7.4 export nco_ver=4.9.7 + +export wgrib2_ver=2.0.8_wmo +export libjpeg_ver=9c +export grib_util_ver=1.2.4 From ce3cb7c42235862c6b603b2baf4b1ffab0100ad2 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Thu, 8 Dec 2022 15:53:38 +0000 Subject: [PATCH 038/119] change same to c3b for wgrib2 --- jobs/JREGIONAL_POST_STAT_O3 | 2 +- jobs/JREGIONAL_POST_STAT_PM25 | 2 +- scripts/exregional_bias_correction_o3.sh | 33 +++++++------------ scripts/exregional_post_stat_o3.sh | 6 ++-- scripts/exregional_post_stat_pm25.sh | 6 ++-- ush/config_defaults.yaml | 4 +-- .../config.yaml_nco_aqmna13km_1day_wcoss2 | 25 +++++++------- 7 files changed, 35 insertions(+), 43 deletions(-) diff --git a/jobs/JREGIONAL_POST_STAT_O3 b/jobs/JREGIONAL_POST_STAT_O3 index 1d7c844e3e..0cc2c96b7f 100755 --- a/jobs/JREGIONAL_POST_STAT_O3 +++ b/jobs/JREGIONAL_POST_STAT_O3 @@ -51,7 +51,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the J-job script for the task that runs POST-UPP-STAT. +This is the J-job script for the task that runs POST-STAT-O3. ========================================================================" # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_POST_STAT_PM25 b/jobs/JREGIONAL_POST_STAT_PM25 index 3b14476520..ad728f4eac 100755 --- a/jobs/JREGIONAL_POST_STAT_PM25 +++ b/jobs/JREGIONAL_POST_STAT_PM25 @@ -51,7 +51,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the J-job script for the task that runs POST-UPP-STAT. +This is the J-job script for the task that runs POST-STAT-PM25. ========================================================================" # #----------------------------------------------------------------------- diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index 787dc504b5..d5df78c3ac 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -1,9 +1,14 @@ -ource the variable definitions file and the bash utility functions. +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. # #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # @@ -102,25 +107,9 @@ esac #----------------------------------------------------------------------------- # STEP 1: Extracting PM2.5, O3, and met variables from CMAQ input and outputs -ic=1 -while [ $ic -lt 120 ]; do - if [ -s ${COMIN}/${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc ]; then - echo "cycle ${cyc} post1 is done!" - break - else - (( ic=ic+1 )) - sleep 10 - fi -done - -if [ $ic -ge 120 ]; then - print_err_msg_exit "FATAL ERROR - COULD NOT LOCATE:${COMIN}/${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc" -fi - # remove any pre-exit ${NET}.${cycle}.chem_sfc/met_sfc.nc for 2-stage post processing -if [ -s ${DATA}/grid/${cyc}z/${PDY}/${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc ]; then - rm_vrfy -f ${DATA}/grid/${cyc}z/${PDY}/${NET}.${cycle}.chem_sfc.*.nc - rm_vrfy -f ${DATA}/grid/${cyc}z/${PDY}/${NET}.${cycle}.met_sfc.*.nc +if [ -d ${DATA}/grid/${cyc}z/${PDY} ]; then + rm_vrfy -rf ${DATA}/grid/${cyc}z/${PDY} fi mkdir_vrfy -p ${DATA}/grid/${cyc}z/${PDY} @@ -130,8 +119,8 @@ mkdir_vrfy -p ${DATA}/setup mkdir_vrfy -p ${DATA}/out/ozone/${yyyy} mkdir_vrfy -p ${DATA}/interpolated/ozone/${yyyy} -cp_vrfy ${COMIN}/${NET}.${cycle}.chem_sfc.*.nc ${DATA}/grid/${cyc}z/${PDY} -cp_vrfy ${COMIN}/${NET}.${cycle}.met_sfc.*.nc ${DATA}/grid/${cyc}z/${PDY} +ln_vrfy -sf ${COMIN}/${NET}.${cycle}.chem_sfc.*.nc ${DATA}/grid/${cyc}z/${PDY} +ln_vrfy -sf ${COMIN}/${NET}.${cycle}.met_sfc.*.nc ${DATA}/grid/${cyc}z/${PDY} #----------------------------------------------------------------------- # STEP 2 : Intepolating CMAQ O3 into AIRNow sites diff --git a/scripts/exregional_post_stat_o3.sh b/scripts/exregional_post_stat_o3.sh index 9faca1eb9f..12aeddb2f3 100755 --- a/scripts/exregional_post_stat_o3.sh +++ b/scripts/exregional_post_stat_o3.sh @@ -138,7 +138,7 @@ grid198="nps:210.0000:60.0000 181.4290:825:5953.000 40.5300:553:5953.000" for grid in 227 196 198;do gg="grid${grid}" - wgrib2 ${NET}.${cycle}.1ho3.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.1ho3.${grid}.grib2 + wgrib2 ${NET}.${cycle}.1ho3.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.1ho3.${grid}.grib2 if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then wgrib2 ${NET}.${cycle}.8ho3.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.8ho3.${grid}.grib2 @@ -237,8 +237,8 @@ EOF1 for grid in 227 196 198; do gg="grid${grid}" - wgrib2 ${NET}.${cycle}.max_8hr_o3.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.max_8hr_o3.${grid}.grib2 - wgrib2 ${NET}.${cycle}.max_1hr_o3.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.max_1hr_o3.${grid}.grib2 + wgrib2 ${NET}.${cycle}.max_8hr_o3.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.max_8hr_o3.${grid}.grib2 + wgrib2 ${NET}.${cycle}.max_1hr_o3.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.max_1hr_o3.${grid}.grib2 cp_vrfy ${DATA}/${NET}.${cycle}.max_*hr_o3.*.grib2 ${COMOUT} if [ "$SENDDBN" = "YES" ]; then diff --git a/scripts/exregional_post_stat_pm25.sh b/scripts/exregional_post_stat_pm25.sh index 3895ce21bf..56ac2b923d 100755 --- a/scripts/exregional_post_stat_pm25.sh +++ b/scripts/exregional_post_stat_pm25.sh @@ -125,7 +125,7 @@ export grid198="nps:210.0000:60.0000 181.4290:825:5953.000 40.5300:553:5953.000" for grid in 227 196 198; do gg="grid${grid}" - wgrib2 ${NET}.${cycle}.1hpm25.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.1hpm25.${grid}.grib2 + wgrib2 ${NET}.${cycle}.1hpm25.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.1hpm25.${grid}.grib2 done cp_vrfy ${DATA}/${NET}.${cycle}*pm25*.grib2 ${COMOUT} @@ -227,8 +227,8 @@ EOF1 for grid in 227 196 198; do gg="grid${grid}" - wgrib2 ${NET}.${cycle}.ave_24hr_pm25.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.24hrpm25-ave.${grid}.grib2 - wgrib2 ${NET}.${cycle}.max_1hr_pm25.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.1hpm25-max.${grid}.grib2 + wgrib2 ${NET}.${cycle}.ave_24hr_pm25.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.24hrpm25-ave.${grid}.grib2 + wgrib2 ${NET}.${cycle}.max_1hr_pm25.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.1hpm25-max.${grid}.grib2 # Add WMO header for daily 1h PM2.5 and 24hr_ave PM2.5 rm -rf filesize diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 65c7cfb2eb..3a81bb9a95 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -2285,7 +2285,7 @@ cpl_aqm_parm: OMP_NUM_THREADS_POST_STAT_PM25: 1 OMP_STACKSIZE_POST_STAT_PM25: "2056M" - BIAS_CORRECTION_O3_TN: "bias_correct_o3" + BIAS_CORRECTION_O3_TN: "bias_correction_o3" NNODES_BIAS_CORRECTION_O3: 1 PPN_BIAS_CORRECTION_O3: 1 WTIME_BIAS_CORRECTION_O3: 00:30:00 @@ -2294,7 +2294,7 @@ cpl_aqm_parm: OMP_NUM_THREADS_BIAS_CORRECTION_O3: 128 OMP_STACKSIZE_BIAS_CORRECTION_O3: "2056M" - BIAS_CORRECTION_PM25_TN: "bias_correct_pm25" + BIAS_CORRECTION_PM25_TN: "bias_correction_pm25" NNODES_BIAS_CORRECTION_PM25: 1 PPN_BIAS_CORRECTION_PM25: 1 WTIME_BIAS_CORRECTION_PM25: 00:30:00 diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 index 32609f5f7b..3566d23116 100644 --- a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 +++ b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 @@ -8,12 +8,12 @@ workflow: USE_CRON_TO_RELAUNCH: true CRON_RELAUNCH_INTVL_MNTS: 3 # EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs - EXPT_SUBDIR: aqm_test_realtime + EXPT_SUBDIR: aqm_test_post CCPP_PHYS_SUITE: FV3_GFS_v15p2 - DATE_FIRST_CYCL: '2022112300' - DATE_LAST_CYCL: '2022112300' + DATE_FIRST_CYCL: '2022120600' + DATE_LAST_CYCL: '2022120606' INCR_CYCL_FREQ: 6 - FCST_LEN_HRS: 6 + FCST_LEN_HRS: 12 PREEXISTING_DIR_METHOD: rename VERBOSE: true COMPILER: intel @@ -24,12 +24,12 @@ nco: NET: aqm model_ver: v7.0 RUN: aqm_test -# OPSROOT: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/NCO_OUTPUT_aqm +# OPSROOT: /lfs/h2/emc/stmp/chan-hoo.jeon/NCO_OUTPUT_aqm workflow_switches: RUN_TASK_MAKE_GRID: false RUN_TASK_MAKE_OROG: false RUN_TASK_MAKE_SFC_CLIMO: false - RUN_TASK_RUN_POST: true + RUN_TASK_RUN_POST: false task_make_grid: GRID_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/DOMAIN_DATA/AQM_NA_13km task_make_orog: @@ -39,12 +39,12 @@ task_make_sfc_climo: task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS FV3GFS_FILE_FMT_ICS: netcdf - EXTRN_MDL_ICS_OFFSET_HRS: 6 + EXTRN_MDL_ICS_OFFSET_HRS: 0 task_get_extrn_lbcs: EXTRN_MDL_NAME_LBCS: FV3GFS LBC_SPEC_INTVL_HRS: 6 FV3GFS_FILE_FMT_LBCS: netcdf - EXTRN_MDL_LBCS_OFFSET_HRS: 6 + EXTRN_MDL_LBCS_OFFSET_HRS: 0 task_run_fcst: DT_ATMOS: 180 LAYOUT_X: 50 @@ -69,9 +69,12 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_PRE_POST_STAT: false - RUN_TASK_POST_STAT: false - RUN_TASK_BIAS_CORRECTION: false + RUN_TASK_PRE_POST_STAT: true + RUN_TASK_POST_STAT_O3: true + RUN_TASK_POST_STAT_PM25: true + RUN_TASK_BIAS_CORRECTION_O3: false + RUN_TASK_BIAS_CORRECTION_PM25: false + WTIME_AQM_LBCS: 01:00:00 DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 From 2ab01b3e7cd9a1933e5ee2d299db0a13d4d16c6b Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Thu, 8 Dec 2022 18:49:20 +0000 Subject: [PATCH 039/119] fix missing for-loop --- externals/Externals_AQM.cfg | 2 +- scripts/exregional_run_fcst.sh | 6 ++++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/externals/Externals_AQM.cfg b/externals/Externals_AQM.cfg index 03621a5d9e..6556b485be 100644 --- a/externals/Externals_AQM.cfg +++ b/externals/Externals_AQM.cfg @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/AQM-utils # Specify either a branch name or a hash but not both. #branch = develop -hash = 5b04519 +hash = 75261b6 local_path = sorc/AQM-utils required = True diff --git a/scripts/exregional_run_fcst.sh b/scripts/exregional_run_fcst.sh index beb6441d9c..f6aa0dc575 100755 --- a/scripts/exregional_run_fcst.sh +++ b/scripts/exregional_run_fcst.sh @@ -583,8 +583,10 @@ if [ "${RUN_ENVIR}" = "nco" ]; then mv_vrfy ${DATA}/${AQM_RC_PRODUCT_FN} ${COMOUT}/${NET}.${cycle}${dot_ensmem}.${AQM_RC_PRODUCT_FN} if [ "${RUN_TASK_RUN_POST}" = "FALSE" ] && [ "${WRITE_DOPOST}" = "FALSE" ]; then - mv_vrfy ${DATA}/dynf${fhr}.nc ${COMIN}/${NET}.${cycle}${dot_ensmem}.dyn.f${fhr}.nc - mv_vrfy ${DATA}/phyf${fhr}.nc ${COMIN}/${NET}.${cycle}${dot_ensmem}.phy.f${fhr}.nc + for fhr in $(seq -f "%03g" 0 ${FCST_LEN_HRS}); do + mv_vrfy ${DATA}/dynf${fhr}.nc ${COMIN}/${NET}.${cycle}${dot_ensmem}.dyn.f${fhr}.nc + mv_vrfy ${DATA}/phyf${fhr}.nc ${COMIN}/${NET}.${cycle}${dot_ensmem}.phy.f${fhr}.nc + done fi fi fi From deab79e80008f61959b58638c13fcaaf42daf5d4 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Fri, 9 Dec 2022 20:27:06 +0000 Subject: [PATCH 040/119] add flag for BUILD_POST_STAT --- devbuild.sh | 8 +- externals/Externals_AQM.cfg | 2 +- sorc/CMakeLists.txt | 2 +- .../config.yaml_community_aqmna13km_1day_hera | 1 - .../config.yaml_community_conus13km_1day_hera | 1 - .../hera/config.yaml_cold_aqmna13km_1day_hera | 1 - .../config.yaml_cold_gsdhrrr25km_1d4cyc_hera | 1 - .../config.yaml_nco_gsdhrrr25km_1d2cyc_hera | 1 - ...nfig.yaml_realtime_gsdhrrr25km_1d1cyc_hera | 1 - .../config.yaml_warm_rrfsconus13km_1day_hera | 1 - .../config.yaml_cold_gsdhrrr25km_1d4cyc_orion | 1 - .../config.yaml_cold_aqmna13km_1day_wcoss2 | 6 +- ...config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 | 6 +- .../config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 | 6 +- ...ig.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 | 85 ------------------- ...config.yaml_warm_rrfsconus13km_1day_wcoss2 | 6 +- 16 files changed, 29 insertions(+), 100 deletions(-) delete mode 100644 ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 diff --git a/devbuild.sh b/devbuild.sh index 81e24a83f1..4ab03e3705 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -272,6 +272,11 @@ if [ "${APPLICATION}" = "ATMAQ" ]; then BUILD_NEXUS="on" BUILD_AQM_UTILS="on" fi + if [ "${PLATFORM}" = "wcoss2" ]; then + BUILD_POST_STAT="on" + else + BUILD_POST_STAT="off" + fi fi # source version file only if it is specified in versions directory @@ -343,7 +348,8 @@ CMAKE_SETTINGS="\ -DBUILD_GSI=${BUILD_GSI}\ -DBUILD_RRFS_UTILS=${BUILD_RRFS_UTILS}\ -DBUILD_NEXUS=${BUILD_NEXUS}\ - -DBUILD_AQM_UTILS=${BUILD_AQM_UTILS}" + -DBUILD_AQM_UTILS=${BUILD_AQM_UTILS}\ + -DBUILD_POST_STAT=${BUILD_POST_STAT}" if [ ! -z "${APPLICATION}" ]; then CMAKE_SETTINGS="${CMAKE_SETTINGS} -DAPP=${APPLICATION}" diff --git a/externals/Externals_AQM.cfg b/externals/Externals_AQM.cfg index 6556b485be..2f3c26f95f 100644 --- a/externals/Externals_AQM.cfg +++ b/externals/Externals_AQM.cfg @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/AQM-utils # Specify either a branch name or a hash but not both. #branch = develop -hash = 75261b6 +hash = ab1e19c local_path = sorc/AQM-utils required = True diff --git a/sorc/CMakeLists.txt b/sorc/CMakeLists.txt index a9aaef1fce..8853625ba5 100644 --- a/sorc/CMakeLists.txt +++ b/sorc/CMakeLists.txt @@ -172,7 +172,7 @@ if (CPL_AQM) PREFIX ${CMAKE_CURRENT_BINARY_DIR}/AQM-utils SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/AQM-utils INSTALL_DIR ${CMAKE_INSTALL_PREFIX} - CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR} + CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${CMAKE_INSTALL_PREFIX} -DCMAKE_INSTALL_BINDIR=${CMAKE_INSTALL_BINDIR} -DBUILD_POST_STAT=${BUILD_POST_STAT} BUILD_ALWAYS TRUE ) endif() diff --git a/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera b/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera index d38ae9c393..a4dd976d75 100644 --- a/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera +++ b/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera @@ -65,7 +65,6 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 diff --git a/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera b/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera index a4b6b0a52b..8beaaaf1ef 100644 --- a/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera +++ b/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera @@ -54,7 +54,6 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: true DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera b/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera index f5ecb097df..b183c59e48 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_cold_aqmna13km_1day_hera @@ -59,7 +59,6 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera b/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera index abcbdbf878..db2d0eba3b 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_cold_gsdhrrr25km_1d4cyc_hera @@ -53,7 +53,6 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera b/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera index 65719d5b86..528ce4b280 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_nco_gsdhrrr25km_1d2cyc_hera @@ -62,7 +62,6 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_realtime_gsdhrrr25km_1d1cyc_hera b/ush/sample_config/WE2E_test/hera/config.yaml_realtime_gsdhrrr25km_1d1cyc_hera index 61aec3c428..23efec87a8 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_realtime_gsdhrrr25km_1d1cyc_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_realtime_gsdhrrr25km_1d1cyc_hera @@ -53,7 +53,6 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera b/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera index 396840e678..e64ea97dd7 100644 --- a/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera +++ b/ush/sample_config/WE2E_test/hera/config.yaml_warm_rrfsconus13km_1day_hera @@ -57,7 +57,6 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 diff --git a/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion b/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion index 11565459c9..47915909f9 100644 --- a/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion +++ b/ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion @@ -60,7 +60,6 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: false - RUN_TASK_POST_STAT: false DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true AQM_GEFS_CYC: 0 diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 index 5a0e6381a1..e7ba4d9a7f 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_aqmna13km_1day_wcoss2 @@ -60,7 +60,11 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false + RUN_TASK_PRE_POST_STAT: true + RUN_TASK_POST_STAT_O3: true + RUN_TASK_POST_STAT_PM25: true + RUN_TASK_BIAS_CORRECTION_O3: false + RUN_TASK_BIAS_CORRECTION_PM25: false NNODES_NEXUS_EMISSION: 4 PPN_NEXUS_EMISSION: 40 DO_AQM_CHEM_LBCS: true diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 index 01cc0d88a5..bbea0855af 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 @@ -54,7 +54,11 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false + RUN_TASK_PRE_POST_STAT: false + RUN_TASK_POST_STAT_O3: false + RUN_TASK_POST_STAT_PM25: false + RUN_TASK_BIAS_CORRECTION_O3: false + RUN_TASK_BIAS_CORRECTION_PM25: false NNODES_NEXUS_EMISSION: 2 PPN_NEXUS_EMISSION: 40 DO_AQM_CHEM_LBCS: true diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 index 3327907897..66d343fa84 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 @@ -63,7 +63,11 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false + RUN_TASK_PRE_POST_STAT: false + RUN_TASK_POST_STAT_O3: false + RUN_TASK_POST_STAT_PM25: false + RUN_TASK_BIAS_CORRECTION_O3: false + RUN_TASK_BIAS_CORRECTION_PM25: false NNODES_NEXUS_EMISSION: 2 PPN_NEXUS_EMISSION: 40 DO_AQM_CHEM_LBCS: true diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 deleted file mode 100644 index 03d2f3f224..0000000000 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_poststat_gsdhrrr25km_1d2cyc_wcoss2 +++ /dev/null @@ -1,85 +0,0 @@ -metadata: - description: config for Online-CMAQ, GSD_HRRR_25km, 72hr forecast, post_stat, on WCOSS2 -user: - RUN_ENVIR: community - MACHINE: wcoss2 - ACCOUNT: AQM-DEV -workflow: - USE_CRON_TO_RELAUNCH: true - CRON_RELAUNCH_INTVL_MNTS: 3 -# EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs - EXPT_SUBDIR: aqm_hrrr25_poststat - CCPP_PHYS_SUITE: FV3_GFS_v15p2 - DATE_FIRST_CYCL: '2019080500' - DATE_LAST_CYCL: '2019080506' - INCR_CYCL_FREQ: 6 - FCST_LEN_HRS: 72 - PREEXISTING_DIR_METHOD: rename - VERBOSE: true - COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm - FIELD_TABLE_TMPL_FN: field_table_aqm -nco: - envir: prod - NET: aqm -workflow_switches: - RUN_TASK_MAKE_GRID: true - RUN_TASK_MAKE_OROG: true - RUN_TASK_MAKE_SFC_CLIMO: true - RUN_TASK_RUN_POST: true -task_get_extrn_ics: - EXTRN_MDL_NAME_ICS: FV3GFS -# FV3GFS_FILE_FMT_ICS: grib2 - EXTRN_MDL_ICS_OFFSET_HRS: 0 -task_get_extrn_lbcs: - EXTRN_MDL_NAME_LBCS: FV3GFS - LBC_SPEC_INTVL_HRS: 6 -# FV3GFS_FILE_FMT_LBCS: grib2 - EXTRN_MDL_LBCS_OFFSET_HRS: 0 - WTIME_GET_EXTRN_LBCS: 01:00:00 -task_make_lbcs: - WTIME_MAKE_LBCS: 01:00:00 -task_run_fcst: - RESTART_INTERVAL: 6 - WTIME_RUN_FCST: 01:00:00 - QUILTING: true - PRINT_ESMF: false - PREDEF_GRID_NAME: GSD_HRRR_25km -global: - DO_ENSEMBLE: false - NUM_ENS_MEMBERS: 2 - HALO_BLEND: 0 - DO_REAL_TIME: false -cpl_aqm_parm: - CPL_AQM: true - RUN_TASK_AQM_ICS: true - RUN_TASK_AQM_LBCS: true - RUN_TASK_NEXUS_EMISSION: true - RUN_TASK_FIRE_EMISSION: true - RUN_TASK_POINT_SOURCE: false - RUN_TASK_POST_STAT: true - NNODES_NEXUS_EMISSION: 2 - PPN_NEXUS_EMISSION: 40 - WTIME_NEXUS_EMISSION: 01:00:00 - DO_AQM_CHEM_LBCS: true - DO_AQM_GEFS_LBCS: false - AQM_GEFS_CYC: 0 - AQM_RC_TMPL_FN: aqm.rc - AQM_CONFIG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/epa/data - AQM_BIO_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/bio - AQM_BIO_FILE: BEIS_SARC401.ncf - DO_AQM_FENGSHA: false - DO_AQM_CANOPY: false - AQM_FIRE_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/emissions/GSCE/GBBEPx.in.C401/Reprocessed - AQM_FIRE_FILE_PREFIX: GBBEPx_C401GRID.emissions_v003 - AQM_FIRE_FILE_SUFFIX: .nc - AQM_RC_FIRE_FREQUENCY: static - DO_AQM_PRODUCT: true - AQM_LBCS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/LBCS/boundary_conditions_v4 - AQM_LBCS_FILES: gfs_bndy_chem_.tile7.000.nc - AQM_GEFS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/GEFS_aerosol - NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions - NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix - NEXUS_GRID_FN: grid_spec_GSD_HRRR_25km.nc - NUM_SPLIT_NEXUS: 6 - diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 b/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 index 1984513d2f..06d8fecd8f 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 +++ b/ush/sample_config/WE2E_test/wcoss2/config.yaml_warm_rrfsconus13km_1day_wcoss2 @@ -58,7 +58,11 @@ cpl_aqm_parm: RUN_TASK_NEXUS_EMISSION: true RUN_TASK_FIRE_EMISSION: true RUN_TASK_POINT_SOURCE: true - RUN_TASK_POST_STAT: false + RUN_TASK_PRE_POST_STAT: false + RUN_TASK_POST_STAT_O3: false + RUN_TASK_POST_STAT_PM25: false + RUN_TASK_BIAS_CORRECTION_O3: false + RUN_TASK_BIAS_CORRECTION_PM25: false NNODES_NEXUS_EMISSION: 2 PPN_NEXUS_EMISSION: 40 DO_AQM_CHEM_LBCS: true From 22ced1992148c549802f420dd3b43d1ca1aa517b Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Fri, 9 Dec 2022 21:41:54 +0000 Subject: [PATCH 041/119] fix fire_file_fp and typo --- .../{nexus_post_split.loca.lua => nexus_post_split.local.lua} | 0 scripts/exregional_fire_emission.sh | 4 ++-- 2 files changed, 2 insertions(+), 2 deletions(-) rename modulefiles/tasks/hera/{nexus_post_split.loca.lua => nexus_post_split.local.lua} (100%) diff --git a/modulefiles/tasks/hera/nexus_post_split.loca.lua b/modulefiles/tasks/hera/nexus_post_split.local.lua similarity index 100% rename from modulefiles/tasks/hera/nexus_post_split.loca.lua rename to modulefiles/tasks/hera/nexus_post_split.local.lua diff --git a/scripts/exregional_fire_emission.sh b/scripts/exregional_fire_emission.sh index 9044ac4a85..b4539e2b1e 100755 --- a/scripts/exregional_fire_emission.sh +++ b/scripts/exregional_fire_emission.sh @@ -66,8 +66,8 @@ hh=${FIRE_FILE_CDATE:8:2} aqm_fire_file_fn="${AQM_FIRE_FILE_PREFIX}_${yyyymmdd}_t${hh}z${AQM_FIRE_FILE_SUFFIX}" # Check if the file exists in the designated directory -if [ -s "${AQM_FIRE_DIR}/${aqm_fire_file_fn}" ]; then - cp_vrfy "${AQM_FIRE_DIR}/${aqm_fire_file_fn}" "${FIRE_EMISSION_STAGING_DIR}" +if [ -e "${AQM_FIRE_DIR}/${yyyymmdd}/${aqm_fire_file_fn}" ]; then + cp_vrfy "${AQM_FIRE_DIR}/${yyyymmdd}/${aqm_fire_file_fn}" "${FIRE_EMISSION_STAGING_DIR}" else # Retrieve files from HPSS arcv_dir="/NCEPDEV/emc-naqfc/2year/Kai.Wang/RAVE_fire/RAVE_NA" From d099d9fed602d03715744d46492ad279acfb619a Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Sat, 10 Dec 2022 23:20:00 +0000 Subject: [PATCH 042/119] update hash of aqm_utils --- externals/Externals_AQM.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/externals/Externals_AQM.cfg b/externals/Externals_AQM.cfg index 2f3c26f95f..2d388a58d0 100644 --- a/externals/Externals_AQM.cfg +++ b/externals/Externals_AQM.cfg @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/AQM-utils # Specify either a branch name or a hash but not both. #branch = develop -hash = ab1e19c +hash = 4084d55 local_path = sorc/AQM-utils required = True From 424719b851413d63e78a7eddfd472ce76589f41e Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Sat, 10 Dec 2022 23:56:17 +0000 Subject: [PATCH 043/119] update modules for aqm_utils --- devbuild.sh | 5 ++--- externals/Externals_AQM.cfg | 2 +- modulefiles/build_wcoss2_intel.lua | 2 ++ versions/build.ver.wcoss2 | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/devbuild.sh b/devbuild.sh index 4ab03e3705..b153ec877f 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -348,8 +348,7 @@ CMAKE_SETTINGS="\ -DBUILD_GSI=${BUILD_GSI}\ -DBUILD_RRFS_UTILS=${BUILD_RRFS_UTILS}\ -DBUILD_NEXUS=${BUILD_NEXUS}\ - -DBUILD_AQM_UTILS=${BUILD_AQM_UTILS}\ - -DBUILD_POST_STAT=${BUILD_POST_STAT}" + -DBUILD_AQM_UTILS=${BUILD_AQM_UTILS}" if [ ! -z "${APPLICATION}" ]; then CMAKE_SETTINGS="${CMAKE_SETTINGS} -DAPP=${APPLICATION}" @@ -364,7 +363,7 @@ if [ ! -z "${DISABLE_OPTIONS}" ]; then CMAKE_SETTINGS="${CMAKE_SETTINGS} -DDISABLE_OPTIONS=${DISABLE_OPTIONS}" fi if [ "${APPLICATION}" = "ATMAQ" ]; then - CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCPL_AQM=ON" + CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCPL_AQM=ON -DBUILD_POST_STAT=${BUILD_POST_STAT}" fi # make settings diff --git a/externals/Externals_AQM.cfg b/externals/Externals_AQM.cfg index 2d388a58d0..6f56ec669f 100644 --- a/externals/Externals_AQM.cfg +++ b/externals/Externals_AQM.cfg @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/AQM-utils # Specify either a branch name or a hash but not both. #branch = develop -hash = 4084d55 +hash = a9e5217 local_path = sorc/AQM-utils required = True diff --git a/modulefiles/build_wcoss2_intel.lua b/modulefiles/build_wcoss2_intel.lua index 7213d85ee9..525b7171b2 100644 --- a/modulefiles/build_wcoss2_intel.lua +++ b/modulefiles/build_wcoss2_intel.lua @@ -44,6 +44,8 @@ load(pathJoin("sfcio", os.getenv("sfcio_ver"))) load(pathJoin("wrf_io", os.getenv("wrf_io_ver"))) load(pathJoin("wgrib2", os.getenv("wgrib2_ver"))) +load(pathJoin("bufr", os.getenv("bufr_ver"))) +load(pathJoin("nemsiogfs", os.getenv("nemsiogfs_ver"))) setenv("CMAKE_C_COMPILER","cc") setenv("CMAKE_CXX_COMPILER","CC") diff --git a/versions/build.ver.wcoss2 b/versions/build.ver.wcoss2 index b5e96994c1..9604713de3 100644 --- a/versions/build.ver.wcoss2 +++ b/versions/build.ver.wcoss2 @@ -34,4 +34,4 @@ export sfcio_ver=1.4.1 export wrf_io_ver=1.2.0 export wgrib2_ver=2.0.8_wmo export bufr_ver=11.7.0 -export namsiogfs_ver=2.5.3 +export nemsiogfs_ver=2.5.3 From 2c4db89537b853319de1ba380844e77370672fee Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Sun, 11 Dec 2022 23:57:53 +0000 Subject: [PATCH 044/119] update bias-correction scripts --- jobs/JREGIONAL_BIAS_CORRECTION_O3 | 2 +- jobs/JREGIONAL_BIAS_CORRECTION_PM25 | 2 +- jobs/JREGIONAL_POST_STAT_PM25 | 2 +- parm/FV3LAM_wflow.xml | 8 +- scripts/exregional_bias_correction_o3.sh | 109 ++++++++++++++------- scripts/exregional_bias_correction_pm25.sh | 104 ++++++++++++++------ ush/config_defaults.yaml | 6 +- ush/machine/wcoss2.yaml | 2 +- 8 files changed, 156 insertions(+), 79 deletions(-) diff --git a/jobs/JREGIONAL_BIAS_CORRECTION_O3 b/jobs/JREGIONAL_BIAS_CORRECTION_O3 index 271e71158d..9f9257da5a 100755 --- a/jobs/JREGIONAL_BIAS_CORRECTION_O3 +++ b/jobs/JREGIONAL_BIAS_CORRECTION_O3 @@ -64,7 +64,7 @@ DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" export COMIN_PDY="${COMIN_PDY:-${COMIN_BASEDIR}/${RUN}.${PDY}}" export COMIN_PDYm1="${COMIN_PDYm1:-${COMIN_BASEDIR}/${RUN}.${PDYm1}}" -export PARMaqm_utils="${PARMaqm_utils:-${HOMEdir}/sorc/AQM-utils/parm}" +export PARMaqm_utils="${PARMaqm_utils:-${HOMEdir}/sorc/AQM-utils/parm/bias_correction}" TMP_STDAY=`${NDATE} -8760 ${PDY}${cyc} | cut -c1-8` # 1 year back # The earliest day of training data is August 1 2020 diff --git a/jobs/JREGIONAL_BIAS_CORRECTION_PM25 b/jobs/JREGIONAL_BIAS_CORRECTION_PM25 index e90affd4d0..6eef78fe0e 100755 --- a/jobs/JREGIONAL_BIAS_CORRECTION_PM25 +++ b/jobs/JREGIONAL_BIAS_CORRECTION_PM25 @@ -64,7 +64,7 @@ DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" export COMIN_PDY="${COMIN_PDY:-${COMIN_BASEDIR}/${RUN}.${PDY}}" export COMIN_PDYm1="${COMIN_PDYm1:-${COMIN_BASEDIR}/${RUN}.${PDYm1}}" -export PARMaqm_utils="${PARMaqm_utils:-${HOMEdir}/sorc/AQM-utils/parm}" +export PARMaqm_utils="${PARMaqm_utils:-${HOMEdir}/sorc/AQM-utils/parm/bias_correction}" TMP_STDAY=`${NDATE} -8760 ${PDY}${cyc} | cut -c1-8` # 1 year back # The earliest day of training data is August 1 2020 diff --git a/jobs/JREGIONAL_POST_STAT_PM25 b/jobs/JREGIONAL_POST_STAT_PM25 index ad728f4eac..3b14476520 100755 --- a/jobs/JREGIONAL_POST_STAT_PM25 +++ b/jobs/JREGIONAL_POST_STAT_PM25 @@ -51,7 +51,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the J-job script for the task that runs POST-STAT-PM25. +This is the J-job script for the task that runs POST-UPP-STAT. ========================================================================" # #----------------------------------------------------------------------- diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml index 9fb182712e..7ce0634be4 100644 --- a/parm/FV3LAM_wflow.xml +++ b/parm/FV3LAM_wflow.xml @@ -1180,11 +1180,7 @@ the tag to be identical to the ones above for other output times. SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} -{%- if run_task_post_stat_pm25 %} - -{%- else %} - -{%- endif %} + @@ -1212,7 +1208,7 @@ the tag to be identical to the ones above for other output times. SLASH_ENSMEM_SUBDIR{{ slash_ensmem_subdir }} - + diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index d5df78c3ac..a6ce9e9d1c 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # @@ -80,12 +80,21 @@ fi #----------------------------------------------------------------------- # DATA="${DATA}/tmp_BIAS_CORRECTION_O3" +rm_vrfy -rf "$DATA" mkdir_vrfy -p "$DATA" cd_vrfy $DATA set -x yyyy=${PDY:0:4} +yyyymm=${PDY:0:6} +yyyy_m1=${PDYm1:0:4} +yyyymm_m1=${PDYm1:0:6} +yyyy_m2=${PDYm2:0:4} +yyyymm_m2=${PDYm2:0:6} +yyyy_m3=${PDYm3:0:4} +yyyymm_m3=${PDYm3:0:6} + # #----------------------------------------------------------------------- # @@ -97,6 +106,22 @@ if [ "${PREDEF_GRID_NAME}" = "AQM_NA_13km" ]; then id_domain=793 fi +#----------------------------------------------------------------------------- +# STEP 1: Retrieve AIRNOW observation data +#----------------------------------------------------------------------------- + +mkdir -p ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +mkdir -p ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +mkdir -p ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + +cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + +#----------------------------------------------------------------------------- +# STEP 2: Extracting PM2.5, O3, and met variables from CMAQ input and outputs +#----------------------------------------------------------------------------- + case $cyc in 00) bc_interp_hr=06;; 06) bc_interp_hr=72;; @@ -104,59 +129,65 @@ case $cyc in 18) bc_interp_hr=06;; esac -#----------------------------------------------------------------------------- -# STEP 1: Extracting PM2.5, O3, and met variables from CMAQ input and outputs +ic=1 +while [ $ic -lt 120 ]; do + if [ -s ${COMIN}/${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc ]; then + echo "cycle ${cyc} post1 is done!" + break + else + (( ic=ic+1 )) + fi +done + +if [ $ic -ge 120 ]; then + print_err_msg_exit "FATAL ERROR - COULD NOT LOCATE:${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc" +fi # remove any pre-exit ${NET}.${cycle}.chem_sfc/met_sfc.nc for 2-stage post processing -if [ -d ${DATA}/grid/${cyc}z/${PDY} ]; then - rm_vrfy -rf ${DATA}/grid/${cyc}z/${PDY} +DATA_grid="${DATA}/data/bcdata.${yyyymm}/grid" +if [ -d "${DATA_grid}/${cyc}z/${PDY}" ]; then + rm_vrfy -rf "${DATA_grid}/${cyc}z/${PDY}" fi -mkdir_vrfy -p ${DATA}/grid/${cyc}z/${PDY} +mkdir_vrfy -p "${DATA_grid}/${cyc}z/${PDY}" +ln_vrfy -sf ${COMIN}/${NET}.${cycle}.chem_sfc.*.nc ${DATA_grid}/${cyc}z/${PDY} +ln_vrfy -sf ${COMIN}/${NET}.${cycle}.met_sfc.*.nc ${DATA_grid}/${cyc}z/${PDY} + +#----------------------------------------------------------------------------- +# STEP 3: Intepolating CMAQ O3 into AIRNow sites +#----------------------------------------------------------------------------- + mkdir_vrfy -p ${DATA}/data/coords mkdir_vrfy -p ${DATA}/data/site-lists.interp -mkdir_vrfy -p ${DATA}/setup mkdir_vrfy -p ${DATA}/out/ozone/${yyyy} mkdir_vrfy -p ${DATA}/interpolated/ozone/${yyyy} -ln_vrfy -sf ${COMIN}/${NET}.${cycle}.chem_sfc.*.nc ${DATA}/grid/${cyc}z/${PDY} -ln_vrfy -sf ${COMIN}/${NET}.${cycle}.met_sfc.*.nc ${DATA}/grid/${cyc}z/${PDY} - -#----------------------------------------------------------------------- -# STEP 2 : Intepolating CMAQ O3 into AIRNow sites - -ln_vrfy -sf ${PARMaqm_utils}/sites.valid.ozone.20220724.12z.list ${DATA}/data/site-lists.interp -ln_vrfy -sf ${PARMaqm_utils}/setup.wcoss2.ifort.serial.opt-zero ${DATA}/setup -ln_vrfy -sf ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords -ln_vrfy -sf ${PARMaqm_utils}/config.interp.ozone.7-vars_${id_domain}.${cyc}z ${DATA} -ln_vrfy -sf ${COMINbicor} ${DATA}/data - -source ${DATA}/setup/setup.wcoss2.ifort.serial.opt-zero +cp_vrfy ${PARMaqm_utils}/sites.valid.ozone.20220724.12z.list ${DATA}/data/site-lists.interp +cp_vrfy ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords +cp_vrfy ${PARMaqm_utils}/config.interp.ozone.7-vars_${id_domain}.${cyc}z ${DATA} ${EXECdir}/aqm_bias_interpolate config.interp.ozone.7-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} -cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/interpolated/ozone/${yyyy} +cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/ozone/${yyyy} -#----------------------------------------------------------------------- -# STEP 3: Performing Bias Correction for PM2.5 +#----------------------------------------------------------------------------- +# STEP 4: Performing Bias Correction for Ozone +#----------------------------------------------------------------------------- mkdir_vrfy -p ${DATA}/data/sites - -ln_vrfy -sf ${PARMaqm_utils}/setup.wcoss2.ifort.parallel.opt-3 ${DATA}/setup -ln_vrfy -sf ${PARMaqm_utils}/config.ozone.bias_corr_${id_domain}.${cyc}z ${DATA} - -source ${DATA}/setup/setup.wcoss2.ifort.parallel.opt-3 +cp_vrfy ${PARMaqm_utils}/config.ozone.bias_corr_${id_domain}.${cyc}z ${DATA} ${EXECdir}/aqm_bias_correct config.ozone.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} cp_vrfy ${DATA}/out/ozone.corrected* ${COMIN} if [ "${cyc}" = "12" ]; then - cp_vrfy ${DATA}/sites/sites.valid.ozone.${PDY}.${cyc}z.list ${DATA} + cp_vrfy ${DATA}/sites/sites.valid.ozone.${PDY}.${cyc}z.list ${COMOUT} fi -#------------------------------------------------------------------------ -# STEP 4: converting netcdf to grib format +#----------------------------------------------------------------------------- +# STEP 5: converting netcdf to grib format +#----------------------------------------------------------------------------- ln_vrfy -sf ${COMIN}/ozone.corrected.${PDY}.${cyc}z.nc . @@ -175,8 +206,10 @@ ${EXECdir}/aqm_post_bias_cor_grib2 ${PDY} ${cyc} cp_vrfy ${DATA}/${NET}.${cycle}.awpozcon*bc*.grib2 ${COMOUT} -#-------------------------------------------------------------- -# STEP 5: calculating 24-hr ave PM2.5 +#----------------------------------------------------------------------------- +# STEP 6: calculating 24-hr ave PM2.5 +#----------------------------------------------------------------------------- + if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then ln_vrfy -sf ${COMOUT}/ozone.corrected.${PDY}.${cyc}z.nc a.nc @@ -293,15 +326,15 @@ rm_vrfy -rf tmpfile while [ "${fhr}" -le "${endfhr}" ]; do fhr=$( printf "%02d" "${fhr}" ) - cp_vrfy ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 ${COMIN} + cp_vrfy ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 ${COMOUT} # create GRIB file to convert to grid 227 then to GRIB2 for NDFD - cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 >> tmpfile + cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 >> tmpfile if [ "${fhr}" -le "07" ]; then - cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 >> tmpfile.1hr + cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 >> tmpfile.1hr else - ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 -d 1 -append -grib tmpfile.1hr - wgrib2 ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_grib}.grib2 -d 2 -append -grib tmpfile.8hr + ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 -d 1 -append -grib tmpfile.1hr + wgrib2 ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 -d 2 -append -grib tmpfile.8hr fi (( fhr=fhr+1 )) done diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh index 23be1514d6..e8d1f648fc 100755 --- a/scripts/exregional_bias_correction_pm25.sh +++ b/scripts/exregional_bias_correction_pm25.sh @@ -1,4 +1,9 @@ -ource the variable definitions file and the bash utility functions. +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. # #----------------------------------------------------------------------- # @@ -81,6 +86,14 @@ cd_vrfy $DATA set -x yyyy=${PDY:0:4} +yyyymm=${PDY:0:6} +yyyy_m1=${PDYm1:0:4} +yyyymm_m1=${PDYm1:0:6} +yyyy_m2=${PDYm2:0:4} +yyyymm_m2=${PDYm2:0:6} +yyyy_m3=${PDYm3:0:4} +yyyymm_m3=${PDYm3:0:6} + # #----------------------------------------------------------------------- # @@ -92,58 +105,91 @@ if [ "${PREDEF_GRID_NAME}" = "AQM_NA_13km" ]; then id_domain=793 fi -case ${cyc} in +#----------------------------------------------------------------------------- +# STEP 1: Retrieve AIRNOW observation data +#----------------------------------------------------------------------------- + +mkdir -p ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +mkdir -p ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +mkdir -p ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + +cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + +#----------------------------------------------------------------------------- +# STEP 2: Extracting PM2.5, O3, and met variables from CMAQ input and outputs +#----------------------------------------------------------------------------- + +case $cyc in 00) bc_interp_hr=06;; 06) bc_interp_hr=72;; 12) bc_interp_hr=72;; 18) bc_interp_hr=06;; esac +ic=1 +while [ $ic -lt 120 ]; do + if [ -s ${COMIN}/${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc ]; then + echo "cycle ${cyc} post1 is done!" + break + else + (( ic=ic+1 )) + fi +done + +if [ $ic -ge 120 ]; then + print_err_msg_exit "FATAL ERROR - COULD NOT LOCATE:${NET}.${cycle}.chem_sfc.f0${bc_interp_hr}.nc" +fi + +# remove any pre-exit ${NET}.${cycle}.chem_sfc/met_sfc.nc for 2-stage post processing +DATA_grid="${DATA}/data/bcdata.${yyyymm}/grid" +if [ -d "${DATA_grid}/${cyc}z/${PDY}" ]; then + rm_vrfy -rf "${DATA_grid}/${cyc}z/${PDY}" +fi + +mkdir_vrfy -p "${DATA_grid}/${cyc}z/${PDY}" +ln_vrfy -sf ${COMIN}/${NET}.${cycle}.chem_sfc.*.nc ${DATA_grid}/${cyc}z/${PDY} +ln_vrfy -sf ${COMIN}/${NET}.${cycle}.met_sfc.*.nc ${DATA_grid}/${cyc}z/${PDY} + +#----------------------------------------------------------------------- +# STEP 3: Intepolating CMAQ PM2.5 into AIRNow sites #----------------------------------------------------------------------- -# STEP 1 : Intepolating CMAQ PM2.5 into AIRNow sites mkdir_vrfy -p ${DATA}/data/coords mkdir_vrfy -p ${DATA}/data/site-lists.interp -mkdir_vrfy -p ${DATA}/setup mkdir_vrfy -p ${DATA}/out/pm25/${yyyy} mkdir_vrfy -p ${DATA}/interpolated/pm25/${yyyy} -ln_vrfy -sf ${PARMaqm_utils}/sites.valid.pm25.20220724.12z.list ${DATA}/data/site-lists.interp -ln_vrfy -sf ${PARMaqm_utils}/setup.wcoss2.ifort.serial.opt-zero ${DATA}/setup -ln_vrfy -sf ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords -ln_vrfy -sf ${PARMaqm_utils}/config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${DATA} -ln_vrfy -sf ${COMINbicor} ${DATA}/data - -source ${DATA}/setup/setup.wcoss2.ifort.serial.opt-zero +cp_vrfy ${PARMaqm_utils}/sites.valid.pm25.20220724.12z.list ${DATA}/data/site-lists.interp +cp_vrfy ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords +cp_vrfy ${PARMaqm_utils}/config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${DATA} ${EXECdir}/aqm_bias_interpolate config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} -cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${DATA}/interpolated/pm25/${Yr} +cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/pm25/${yyyy} #----------------------------------------------------------------------- -# STEP 2: Performing Bias Correction for PM2.5 +# STEP 4: Performing Bias Correction for PM2.5 +#----------------------------------------------------------------------- mkdir_vrfy -p ${DATA}/data/sites -ln_vrfy -sf ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords/ -ln_vrfy -sf ${PARMaqm_utils}/setup.wcoss2.ifort.parallel.opt-3 ${DATA}/setup -ln_vrfy -sf ${PARMaqm_utils}/config.pm2.5.bias_corr_${id_domain}.${cyc}z ${DATA} -ln_vrfy -sf ${COMINbicordat}/bcdata* ${DATA}/data/ -ln_vrfy -sf ${PARMaqm_utils}/site_blocking.pm2.5.2021.0427.2-sites.txt ${DATA} -ln_vrfy -sf ${PARMaqm_utils}/bias_thresholds.pm2.5.2015.1030.32-sites.txt ${DATA} - -source ${DATA}/setup/setup.wcoss2.ifort.parallel.opt-3 +cp_vrfy ${PARMaqm_utils}/config.pm2.5.bias_corr_${id_domain}.${cyc}z ${DATA} +cp_vrfy ${PARMaqm_utils}/site_blocking.pm2.5.2021.0427.2-sites.txt ${DATA} +cp_vrfy ${PARMaqm_utils}/bias_thresholds.pm2.5.2015.1030.32-sites.txt ${DATA} ${EXECdir}/aqm_bias_correct config.pm2.5.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} cp_vrfy $DATA/out/pm2.5.corrected* ${COMIN} if [ "${cyc}" = "12" ]; then - cp_vrfy $DATA/sites/sites.valid.pm25.${PDY}.${cyc}z.list ${DATA} + cp_vrfy $DATA/sites/sites.valid.pm25.${PDY}.${cyc}z.list ${COMOUT} fi #------------------------------------------------------------------------ -# STEP 3: converting netcdf to grib format +# STEP 5: converting netcdf to grib format +#------------------------------------------------------------------------ ln_vrfy -sf ${COMIN}/pm2.5.corrected.${PDY}.${cyc}z.nc . @@ -164,8 +210,9 @@ if [ "$SENDDBN" = "YES" ]; then $DBNROOT/bin/dbn_alert MODEL AQM_PM ${job} ${COMOUT} fi -#-------------------------------------------------------------- -# STEP 4: calculating 24-hr ave PM2.5 +#----------------------------------------------------------------------- +# STEP 6: calculating 24-hr ave PM2.5 +#------------------------------------------------------------------------ if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then ln_vrfy -sf ${COMOUT}/pm2.5.corrected.${PDY}.${cyc}z.nc a.nc @@ -276,7 +323,8 @@ if [ "${SENDDBN}" = "YES" ]; then fi #-------------------------------------------------------------- -# STEP 5: adding WMO header +# STEP 7: adding WMO header +#-------------------------------------------------------------- # Create AWIPS GRIB2 data for Bias-Corrected PM2.5 if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then @@ -297,7 +345,7 @@ if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_pm25_bc.${cycle}.227 #################################################### - rm_vrfy -rf filesize + rm_vrfy -f filesize echo 0 > filesize export XLFRTEOPTS="unit_vars=yes" export FORT11=${NET}.${cycle}.max_1hr_pm25_bc.227.grib2 @@ -314,7 +362,7 @@ if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then export FORT51=awpaqm.${cycle}.daily-1hr-pm25-max-bc.227.grib2 tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_max_1hr_pm25_bc.${cycle}.227 - rm_vrfy filesize + rm_vrfy -f filesize # daily_24hr_ave_PM2.5 echo 0 > filesize export XLFRTEOPTS="unit_vars=yes" diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 3a81bb9a95..8a28edcbea 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -2402,8 +2402,8 @@ cpl_aqm_parm: # WARMSTART_CYCLE_DIR: # Path to the directory where RESTART dir is located for warm start # -# COMINbicor: -# Path to the data for bias correction +# COMINairnow: +# Path to the AIRNOW observation data # #----------------------------------------------------------------------- # @@ -2446,5 +2446,5 @@ cpl_aqm_parm: COLDSTART: true WARMSTART_CYCLE_DIR: "/path/to/warm/start/cycle/dir" - COMINbicor: "" + COMINairnow: "/path/to/airnow/data" COMINgfs_BASEDIR: "" diff --git a/ush/machine/wcoss2.yaml b/ush/machine/wcoss2.yaml index fcd9d71151..6f7a3596c2 100644 --- a/ush/machine/wcoss2.yaml +++ b/ush/machine/wcoss2.yaml @@ -35,5 +35,5 @@ data: HRRR: compath.py ${envir}/hrrr/${hrrr_ver}/hrrr.${PDYext}/conus cpl_aqm_parm: PT_SRC_BASEDIR: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt - COMINbicor: /lfs/h2/emc/physics/noscrub/kai.wang/Bias_correction/aqmv7.0 + COMINairnow: /lfs/h2/emc/physics/noscrub/kai.wang/Bias_correction/airnow/bufr COMINgfs_BASEDIR: /lfs/h1/ops/prod/com/gfs/v16.3 From 931fa60ffd326ee8d1aba31b12ce11cc22c55385 Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Mon, 12 Dec 2022 01:01:12 +0000 Subject: [PATCH 045/119] update bias-correction scripts --- scripts/exregional_bias_correction_o3.sh | 26 +++++++++++++++------- scripts/exregional_bias_correction_pm25.sh | 24 ++++++++++++++------ 2 files changed, 35 insertions(+), 15 deletions(-) diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index a6ce9e9d1c..be3dcdbec4 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -160,13 +160,15 @@ ln_vrfy -sf ${COMIN}/${NET}.${cycle}.met_sfc.*.nc ${DATA_grid}/${cyc}z/${PDY} mkdir_vrfy -p ${DATA}/data/coords mkdir_vrfy -p ${DATA}/data/site-lists.interp mkdir_vrfy -p ${DATA}/out/ozone/${yyyy} -mkdir_vrfy -p ${DATA}/interpolated/ozone/${yyyy} +mkdir_vrfy -p ${DATA}/data/bcdata.${yyyymm}/interpolated/ozone/${yyyy} cp_vrfy ${PARMaqm_utils}/sites.valid.ozone.20220724.12z.list ${DATA}/data/site-lists.interp cp_vrfy ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords cp_vrfy ${PARMaqm_utils}/config.interp.ozone.7-vars_${id_domain}.${cyc}z ${DATA} -${EXECdir}/aqm_bias_interpolate config.interp.ozone.7-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} +PREP_STEP +${EXECdir}/aqm_bias_interpolate config.interp.ozone.7-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} || print_err_msg_exit "Call to executable to run AQM_BIAS_INTERPOLATE returned with nonzero exit code." +POST_STEP cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/ozone/${yyyy} @@ -176,13 +178,15 @@ cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated mkdir_vrfy -p ${DATA}/data/sites cp_vrfy ${PARMaqm_utils}/config.ozone.bias_corr_${id_domain}.${cyc}z ${DATA} - -${EXECdir}/aqm_bias_correct config.ozone.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} +PREP_STEP +${EXECdir}/aqm_bias_correct config.ozone.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} || print_err_msg_exit "Call to executable to run AQM_BIAS_CORRECT returned with nonzero exit code." +POST_STEP + cp_vrfy ${DATA}/out/ozone.corrected* ${COMIN} if [ "${cyc}" = "12" ]; then - cp_vrfy ${DATA}/sites/sites.valid.ozone.${PDY}.${cyc}z.list ${COMOUT} + cp_vrfy ${DATA}/sites/sites.valid.ozone.${PDY}.${cyc}z.list ${DATA} fi #----------------------------------------------------------------------------- @@ -202,7 +206,10 @@ id_gribdomain=${id_domain} EOF1 # convert from netcdf to grib2 format -${EXECdir}/aqm_post_bias_cor_grib2 ${PDY} ${cyc} +PREP_STEP +${EXECdir}/aqm_post_bias_cor_grib2 ${PDY} ${cyc} || print_err_msg_exit "\ +Call to executable to run AQM_POST_BIAS_COR_GRIB2 returned with nonzero exit code." +POST_STEP cp_vrfy ${DATA}/${NET}.${cycle}.awpozcon*bc*.grib2 ${COMOUT} @@ -264,8 +271,11 @@ EOF1 #------------------------------------------------- # write out grib2 format #------------------------------------------------- - ${EXECdir}/aqm_post_maxi_bias_cor_grib2 ${PDY} ${cyc} ${chk} ${chk1} - + PREP_STEP + ${EXECdir}/aqm_post_maxi_bias_cor_grib2 ${PDY} ${cyc} ${chk} ${chk1} || print_err_msg_exit "\ + Call to executable to run AQM_POST_MAXI_BIAS_COR_GRIB2 returned with nonzero exit code." + POST_STEP + # split into max_1h and max_8h files and copy to grib227 wgrib2 aqm-maxi_bc.${id_domain}.grib2 |grep "OZMAX1" | wgrib2 -i aqm-maxi_bc.${id_domain}.grib2 -grib ${NET}.${cycle}.max_1hr_o3_bc.${id_domain}.grib2 wgrib2 aqm-maxi_bc.${id_domain}.grib2 |grep "OZMAX8" | wgrib2 -i aqm-maxi_bc.${id_domain}.grib2 -grib ${NET}.${cycle}.max_8hr_o3_bc.${id_domain}.grib2 diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh index e8d1f648fc..5dcd68a1c5 100755 --- a/scripts/exregional_bias_correction_pm25.sh +++ b/scripts/exregional_bias_correction_pm25.sh @@ -159,13 +159,15 @@ ln_vrfy -sf ${COMIN}/${NET}.${cycle}.met_sfc.*.nc ${DATA_grid}/${cyc}z/${PDY} mkdir_vrfy -p ${DATA}/data/coords mkdir_vrfy -p ${DATA}/data/site-lists.interp mkdir_vrfy -p ${DATA}/out/pm25/${yyyy} -mkdir_vrfy -p ${DATA}/interpolated/pm25/${yyyy} +mkdir_vrfy -p ${DATA}/data/bcdata.${yyyymm}/interpolated/pm25/${yyyy} cp_vrfy ${PARMaqm_utils}/sites.valid.pm25.20220724.12z.list ${DATA}/data/site-lists.interp cp_vrfy ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords cp_vrfy ${PARMaqm_utils}/config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${DATA} -${EXECdir}/aqm_bias_interpolate config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} +PREP_STEP +${EXECdir}/aqm_bias_interpolate config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} || print_err_msg_exit "Call to executable to run AQM_BIAS_INTERPOLATE returned with nonzero exit code." +POST_STEP cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/pm25/${yyyy} @@ -179,12 +181,14 @@ cp_vrfy ${PARMaqm_utils}/config.pm2.5.bias_corr_${id_domain}.${cyc}z ${DATA} cp_vrfy ${PARMaqm_utils}/site_blocking.pm2.5.2021.0427.2-sites.txt ${DATA} cp_vrfy ${PARMaqm_utils}/bias_thresholds.pm2.5.2015.1030.32-sites.txt ${DATA} -${EXECdir}/aqm_bias_correct config.pm2.5.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} +PREP_STEP +${EXECdir}/aqm_bias_correct config.pm2.5.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} || print_err_msg_exit "Call to executable to run AQM_BIAS_CORRECT returned with nonzero exit code." +POST_STEP cp_vrfy $DATA/out/pm2.5.corrected* ${COMIN} if [ "${cyc}" = "12" ]; then - cp_vrfy $DATA/sites/sites.valid.pm25.${PDY}.${cyc}z.list ${COMOUT} + cp_vrfy ${DATA}/sites/sites.valid.pm25.${PDY}.${cyc}z.list ${DATA} fi #------------------------------------------------------------------------ @@ -203,7 +207,10 @@ id_gribdomain=${id_domain} / EOF1 -${EXECdir}/aqm_post_bias_cor_grib2 ${PDY} ${cyc} +PREP_STEP +${EXECdir}/aqm_post_bias_cor_grib2 ${PDY} ${cyc} || print_err_msg_exit "\ +Call to executable to run AQM_POST_BIAS_COR_GRIB2 returned with nonzero exit code." +POST_STEP cp_vrfy ${DATA}/${NET}.${cycle}.pm25*bc*.grib2 ${COMOUT} if [ "$SENDDBN" = "YES" ]; then @@ -267,8 +274,11 @@ EOF1 #------------------------------------------------- # write out grib2 format #------------------------------------------------- - ${EXECdir}/aqm_post_maxi_bias_cor_grib2 ${PDY} ${cyc} ${chk} ${chk1} - + PREP_STEP + ${EXECdir}/aqm_post_maxi_bias_cor_grib2 ${PDY} ${cyc} ${chk} ${chk1} || print_err_msg_exit "\ + Call to executable to run AQM_POST_MAXI_BIAS_COR_GRIB2 returned with nonzero exit code." + POST_STEP + # split into two files: one for 24hr_ave and one for 1h_max wgrib2 aqm-pm25_bc.${id_domain}.grib2 |grep "PMTF" | ${WGRIB2} -i aqm-pm25_bc.${id_domain}.grib2 -grib aqm.t${cyc}z.ave_24hr_pm25_bc.793.grib2 wgrib2 aqm-pm25_bc.${id_domain}.grib2 |grep "PDMAX1" | ${WGRIB2} -i aqm-pm25_bc.${id_domain}.grib2 -grib aqm.t${cyc}z.max_1hr_pm25_bc.793.grib2 From f6b110aa1d731ed6ba9c8cfd9dfc82bf14c7bbbd Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Mon, 12 Dec 2022 01:32:22 +0000 Subject: [PATCH 046/119] fix missing command and parm path --- jobs/JREGIONAL_BIAS_CORRECTION_O3 | 2 +- jobs/JREGIONAL_BIAS_CORRECTION_PM25 | 2 +- scripts/exregional_bias_correction_o3.sh | 10 +++++----- scripts/exregional_bias_correction_pm25.sh | 12 ++++++------ scripts/exregional_post_stat_o3.sh | 10 ++++++++-- scripts/exregional_post_stat_pm25.sh | 14 ++++++++++---- 6 files changed, 31 insertions(+), 19 deletions(-) diff --git a/jobs/JREGIONAL_BIAS_CORRECTION_O3 b/jobs/JREGIONAL_BIAS_CORRECTION_O3 index 9f9257da5a..271e71158d 100755 --- a/jobs/JREGIONAL_BIAS_CORRECTION_O3 +++ b/jobs/JREGIONAL_BIAS_CORRECTION_O3 @@ -64,7 +64,7 @@ DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" export COMIN_PDY="${COMIN_PDY:-${COMIN_BASEDIR}/${RUN}.${PDY}}" export COMIN_PDYm1="${COMIN_PDYm1:-${COMIN_BASEDIR}/${RUN}.${PDYm1}}" -export PARMaqm_utils="${PARMaqm_utils:-${HOMEdir}/sorc/AQM-utils/parm/bias_correction}" +export PARMaqm_utils="${PARMaqm_utils:-${HOMEdir}/sorc/AQM-utils/parm}" TMP_STDAY=`${NDATE} -8760 ${PDY}${cyc} | cut -c1-8` # 1 year back # The earliest day of training data is August 1 2020 diff --git a/jobs/JREGIONAL_BIAS_CORRECTION_PM25 b/jobs/JREGIONAL_BIAS_CORRECTION_PM25 index 6eef78fe0e..e90affd4d0 100755 --- a/jobs/JREGIONAL_BIAS_CORRECTION_PM25 +++ b/jobs/JREGIONAL_BIAS_CORRECTION_PM25 @@ -64,7 +64,7 @@ DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" export COMIN_PDY="${COMIN_PDY:-${COMIN_BASEDIR}/${RUN}.${PDY}}" export COMIN_PDYm1="${COMIN_PDYm1:-${COMIN_BASEDIR}/${RUN}.${PDYm1}}" -export PARMaqm_utils="${PARMaqm_utils:-${HOMEdir}/sorc/AQM-utils/parm/bias_correction}" +export PARMaqm_utils="${PARMaqm_utils:-${HOMEdir}/sorc/AQM-utils/parm}" TMP_STDAY=`${NDATE} -8760 ${PDY}${cyc} | cut -c1-8` # 1 year back # The earliest day of training data is August 1 2020 diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index be3dcdbec4..7dcfbe0a8e 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -162,9 +162,9 @@ mkdir_vrfy -p ${DATA}/data/site-lists.interp mkdir_vrfy -p ${DATA}/out/ozone/${yyyy} mkdir_vrfy -p ${DATA}/data/bcdata.${yyyymm}/interpolated/ozone/${yyyy} -cp_vrfy ${PARMaqm_utils}/sites.valid.ozone.20220724.12z.list ${DATA}/data/site-lists.interp -cp_vrfy ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords -cp_vrfy ${PARMaqm_utils}/config.interp.ozone.7-vars_${id_domain}.${cyc}z ${DATA} +cp_vrfy ${PARMaqm_utils}/bias_correction/sites.valid.ozone.20220724.12z.list ${DATA}/data/site-lists.interp +cp_vrfy ${PARMaqm_utils}/bias_correction/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords +cp_vrfy ${PARMaqm_utils}/bias_correction/config.interp.ozone.7-vars_${id_domain}.${cyc}z ${DATA} PREP_STEP ${EXECdir}/aqm_bias_interpolate config.interp.ozone.7-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} || print_err_msg_exit "Call to executable to run AQM_BIAS_INTERPOLATE returned with nonzero exit code." @@ -177,7 +177,7 @@ cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated #----------------------------------------------------------------------------- mkdir_vrfy -p ${DATA}/data/sites -cp_vrfy ${PARMaqm_utils}/config.ozone.bias_corr_${id_domain}.${cyc}z ${DATA} +cp_vrfy ${PARMaqm_utils}/bias_correction/config.ozone.bias_corr_${id_domain}.${cyc}z ${DATA} PREP_STEP ${EXECdir}/aqm_bias_correct config.ozone.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} || print_err_msg_exit "Call to executable to run AQM_BIAS_CORRECT returned with nonzero exit code." @@ -343,7 +343,7 @@ while [ "${fhr}" -le "${endfhr}" ]; do if [ "${fhr}" -le "07" ]; then cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 >> tmpfile.1hr else - ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 -d 1 -append -grib tmpfile.1hr + wgrib2 ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 -d 1 -append -grib tmpfile.1hr wgrib2 ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 -d 2 -append -grib tmpfile.8hr fi (( fhr=fhr+1 )) diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh index 5dcd68a1c5..eafa5a267e 100755 --- a/scripts/exregional_bias_correction_pm25.sh +++ b/scripts/exregional_bias_correction_pm25.sh @@ -161,9 +161,9 @@ mkdir_vrfy -p ${DATA}/data/site-lists.interp mkdir_vrfy -p ${DATA}/out/pm25/${yyyy} mkdir_vrfy -p ${DATA}/data/bcdata.${yyyymm}/interpolated/pm25/${yyyy} -cp_vrfy ${PARMaqm_utils}/sites.valid.pm25.20220724.12z.list ${DATA}/data/site-lists.interp -cp_vrfy ${PARMaqm_utils}/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords -cp_vrfy ${PARMaqm_utils}/config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${DATA} +cp_vrfy ${PARMaqm_utils}/bias_correction/sites.valid.pm25.20220724.12z.list ${DATA}/data/site-lists.interp +cp_vrfy ${PARMaqm_utils}/bias_correction/aqm.t12z.chem_sfc.f000.nc ${DATA}/data/coords +cp_vrfy ${PARMaqm_utils}/bias_correction/config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${DATA} PREP_STEP ${EXECdir}/aqm_bias_interpolate config.interp.pm2.5.5-vars_${id_domain}.${cyc}z ${cyc}z ${PDY} ${PDY} || print_err_msg_exit "Call to executable to run AQM_BIAS_INTERPOLATE returned with nonzero exit code." @@ -177,9 +177,9 @@ cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/ mkdir_vrfy -p ${DATA}/data/sites -cp_vrfy ${PARMaqm_utils}/config.pm2.5.bias_corr_${id_domain}.${cyc}z ${DATA} -cp_vrfy ${PARMaqm_utils}/site_blocking.pm2.5.2021.0427.2-sites.txt ${DATA} -cp_vrfy ${PARMaqm_utils}/bias_thresholds.pm2.5.2015.1030.32-sites.txt ${DATA} +cp_vrfy ${PARMaqm_utils}/bias_correction/config.pm2.5.bias_corr_${id_domain}.${cyc}z ${DATA} +cp_vrfy ${PARMaqm_utils}/bias_correction/site_blocking.pm2.5.2021.0427.2-sites.txt ${DATA} +cp_vrfy ${PARMaqm_utils}/bias_correction/bias_thresholds.pm2.5.2015.1030.32-sites.txt ${DATA} PREP_STEP ${EXECdir}/aqm_bias_correct config.pm2.5.bias_corr_${id_domain}.${cyc}z ${cyc}z ${BC_STDAY} ${PDY} || print_err_msg_exit "Call to executable to run AQM_BIAS_CORRECT returned with nonzero exit code." diff --git a/scripts/exregional_post_stat_o3.sh b/scripts/exregional_post_stat_o3.sh index 12aeddb2f3..834b3d654b 100755 --- a/scripts/exregional_post_stat_o3.sh +++ b/scripts/exregional_post_stat_o3.sh @@ -109,7 +109,10 @@ id_gribdomain=${id_domain} EOF1 # convert from netcdf to grib2 format -${EXECdir}/aqm_post_grib2 ${PDY} ${cyc} +PREP_STEP +${EXECdir}/aqm_post_grib2 ${PDY} ${cyc} || print_err_msg_exit "\ +Call to executable to run AQM_POST_GRIB2 returned with nonzero exit code." +POST_STEP fhr=01 case ${cyc} in @@ -224,7 +227,10 @@ EOF1 fi fi - ${EXECdir}/aqm_post_maxi_grib2 ${PDY} ${cyc} ${chk} ${chk1} + PREP_STEP + ${EXECdir}/aqm_post_maxi_grib2 ${PDY} ${cyc} ${chk} ${chk1} "\ + Call to executable to run AQM_POST_MAXI_GRIB2 returned with nonzero exit code." + POST_STEP # split into max_1h and max_8h files and copy to grib227 wgrib2 aqm-maxi.${id_domain}.grib2 |grep "OZMAX1" | wgrib2 -i aqm-maxi.${id_domain}.grib2 -grib ${NET}.${cycle}.max_1hr_o3.${id_domain}.grib2 diff --git a/scripts/exregional_post_stat_pm25.sh b/scripts/exregional_post_stat_pm25.sh index 56ac2b923d..ea1f3e49b8 100755 --- a/scripts/exregional_post_stat_pm25.sh +++ b/scripts/exregional_post_stat_pm25.sh @@ -114,7 +114,10 @@ id_gribdomain=${id_domain} EOF1 # convert from netcdf to grib2 format -${EXECdir}/aqm_post_grib2 ${PDY} ${cyc} +PREP_STEP +${EXECdir}/aqm_post_grib2 ${PDY} ${cyc} "\ +Call to executable to run AQM_POST_GRIB2 returned with nonzero exit code." +POST_STEP cat ${NET}.${cycle}.pm25.*.${id_domain}.grib2 >> ${NET}.${cycle}.1hpm25.${id_domain}.grib2 @@ -215,7 +218,10 @@ EOF1 fi fi - ${EXECdir}/aqm_post_maxi_grib2 ${PDY} ${cyc} ${chk} ${chk1} + PREP_STEP + ${EXECdir}/aqm_post_maxi_grib2 ${PDY} ${cyc} ${chk} ${chk1} "\ + Call to executable to run AQM_POST_MAXI_GRIB2 returned with nonzero exit code." + POST_STEP wgrib2 ${NET}_pm25_24h_ave.${id_domain}.grib2 |grep "PMTF" | wgrib2 -i ${NET}_pm25_24h_ave.${id_domain}.grib2 -grib ${NET}.${cycle}.ave_24hr_pm25.${id_domain}.grib2 wgrib2 ${NET}_pm25_24h_ave.${id_domain}.grib2 |grep "PDMAX1" | wgrib2 -i ${NET}_pm25_24h_ave.${id_domain}.grib2 -grib ${NET}.${cycle}.max_1hr_pm25.${id_domain}.grib2 @@ -231,7 +237,7 @@ EOF1 wgrib2 ${NET}.${cycle}.max_1hr_pm25.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${!gg} ${NET}.${cycle}.1hpm25-max.${grid}.grib2 # Add WMO header for daily 1h PM2.5 and 24hr_ave PM2.5 - rm -rf filesize + rm_vrfy -f filesize echo 0 > filesize export XLFRTEOPTS="unit_vars=yes" export FORT11=${NET}.${cycle}.1hpm25-max.${grid}.grib2 @@ -248,7 +254,7 @@ EOF1 export FORT51=awpaqm.${cycle}.daily-1hr-pm25-max.${grid}.grib2 tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_max_1hr_pm25.${cycle}.${grid} - rm filesize + rm_vrfy -f filesize echo 0 > filesize export XLFRTEOPTS="unit_vars=yes" export FORT11=${NET}.${cycle}.24hrpm25-ave.${grid}.grib2 From bbf9956564c01c13c2b6dd445fd53c8743b911a6 Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Mon, 12 Dec 2022 13:36:16 +0000 Subject: [PATCH 047/119] add mem to bias-correction xml --- parm/FV3LAM_wflow.xml | 12 ++++++++++++ scripts/exregional_bias_correction_o3.sh | 12 ++++++------ scripts/exregional_bias_correction_pm25.sh | 13 +++++++------ scripts/exregional_post_stat_o3.sh | 2 +- scripts/exregional_post_stat_pm25.sh | 4 ++-- ush/config_defaults.yaml | 4 ++++ 6 files changed, 32 insertions(+), 15 deletions(-) diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml index 7ce0634be4..582f7d887b 100644 --- a/parm/FV3LAM_wflow.xml +++ b/parm/FV3LAM_wflow.xml @@ -1110,6 +1110,9 @@ the tag to be identical to the ones above for other output times. &RSRV_DEFAULT; &LOAD_MODULES_RUN_TASK_FP; "&POST_STAT_O3_TN;" "&JOBSdir;/JREGIONAL_POST_STAT_O3" {{ nnodes_post_stat_o3 }}:ppn={{ ppn_post_stat_o3 }} +{%- if machine not in ["GAEA"] %} + {{ mem_post_stat_o3 }} +{%- endif %} {{ wtime_post_stat_o3 }} &NCORES_PER_NODE; &POST_STAT_O3_TN; @@ -1138,6 +1141,9 @@ the tag to be identical to the ones above for other output times. &RSRV_DEFAULT; &LOAD_MODULES_RUN_TASK_FP; "&POST_STAT_PM25_TN;" "&JOBSdir;/JREGIONAL_POST_STAT_PM25" {{ nnodes_post_stat_pm25 }}:ppn={{ ppn_post_stat_pm25 }} +{%- if machine not in ["GAEA"] %} + {{ mem_post_stat_pm25 }} +{%- endif %} {{ wtime_post_stat_pm25 }} &NCORES_PER_NODE; &POST_STAT_PM25_TN; @@ -1166,6 +1172,9 @@ the tag to be identical to the ones above for other output times. &RSRV_DEFAULT; &LOAD_MODULES_RUN_TASK_FP; "&BIAS_CORRECTION_O3_TN;" "&JOBSdir;/JREGIONAL_BIAS_CORRECTION_O3" {{ nnodes_bias_correction_o3 }}:ppn={{ ppn_bias_correction_o3 }} +{%- if machine not in ["GAEA"] %} + {{ mem_bias_correction_o3 }} +{%- endif %} {{ wtime_bias_correction_o3 }} &NCORES_PER_NODE; &BIAS_CORRECTION_O3_TN; @@ -1194,6 +1203,9 @@ the tag to be identical to the ones above for other output times. &RSRV_DEFAULT; &LOAD_MODULES_RUN_TASK_FP; "&BIAS_CORRECTION_PM25_TN;" "&JOBSdir;/JREGIONAL_BIAS_CORRECTION_PM25" {{ nnodes_bias_correction_pm25 }}:ppn={{ ppn_bias_correction_pm25 }} +{%- if machine not in ["GAEA"] %} + {{ mem_bias_correction_pm25 }} +{%- endif %} {{ wtime_bias_correction_pm25 }} &NCORES_PER_NODE; &BIAS_CORRECTION_PM25_TN; diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index 7dcfbe0a8e..4d2da1567b 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -334,17 +334,17 @@ esac rm_vrfy -rf tmpfile while [ "${fhr}" -le "${endfhr}" ]; do - fhr=$( printf "%02d" "${fhr}" ) + fhr2d=$( printf "%02d" "${fhr2d}" ) - cp_vrfy ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 ${COMOUT} + cp_vrfy ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr2d}.${id_domain}.grib2 ${COMOUT} # create GRIB file to convert to grid 227 then to GRIB2 for NDFD - cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 >> tmpfile + cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr2d}.${id_domain}.grib2 >> tmpfile if [ "${fhr}" -le "07" ]; then - cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 >> tmpfile.1hr + cat ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr2d}.${id_domain}.grib2 >> tmpfile.1hr else - wgrib2 ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 -d 1 -append -grib tmpfile.1hr - wgrib2 ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr}.${id_domain}.grib2 -d 2 -append -grib tmpfile.8hr + wgrib2 ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr2d}.${id_domain}.grib2 -d 1 -append -grib tmpfile.1hr + wgrib2 ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr2d}.${id_domain}.grib2 -d 2 -append -grib tmpfile.8hr fi (( fhr=fhr+1 )) done diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh index eafa5a267e..944d32626f 100755 --- a/scripts/exregional_bias_correction_pm25.sh +++ b/scripts/exregional_bias_correction_pm25.sh @@ -80,6 +80,7 @@ fi #----------------------------------------------------------------------- # DATA="${DATA}/tmp_BIAS_CORRECTION_PM25" +rm_vrfy -rf $DATA mkdir_vrfy -p "$DATA" cd_vrfy $DATA @@ -113,9 +114,9 @@ mkdir -p ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 mkdir -p ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 mkdir -p ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx031 ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx031 ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx031 ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 #----------------------------------------------------------------------------- # STEP 2: Extracting PM2.5, O3, and met variables from CMAQ input and outputs @@ -318,8 +319,8 @@ case ${cyc} in esac while [ "${fhr}" -le "${endfhr}" ]; do - fhr=$( printf "%02d" "${fhr}" ) - cat ${DATA}/${NET}.${cycle}.pm25_bc.f${fhr}.${id_grib}.grib2 >> tmpfile_pm25_bc + fhr2d=$( printf "%02d" "${fhr}" ) + cat ${DATA}/${NET}.${cycle}.pm25_bc.f${fhr2d}.${id_domain}.grib2 >> tmpfile_pm25_bc (( fhr=fhr+1 )) done @@ -380,7 +381,7 @@ if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then export FORT12="filesize" export FORT31= export FORT51=${NET}.${cycle}.ave_24hr_pm25_bc.227.grib2.temp - tocgrib2super < ${PARMaqm}/wmo/grib2_aqm_ave_24hrpm25_bc_awp.${cycle}.227 + tocgrib2super < ${PARMaqm_utils}/wmo/grib2_aqm_ave_24hrpm25_bc_awp.${cycle}.227 echo `ls -l ${NET}.${cycle}.ave_24hr_pm25_bc.227.grib2.temp | awk '{print $5} '` > filesize export XLFRTEOPTS="unit_vars=yes" diff --git a/scripts/exregional_post_stat_o3.sh b/scripts/exregional_post_stat_o3.sh index 834b3d654b..b5a9347fbd 100755 --- a/scripts/exregional_post_stat_o3.sh +++ b/scripts/exregional_post_stat_o3.sh @@ -228,7 +228,7 @@ EOF1 fi PREP_STEP - ${EXECdir}/aqm_post_maxi_grib2 ${PDY} ${cyc} ${chk} ${chk1} "\ + ${EXECdir}/aqm_post_maxi_grib2 ${PDY} ${cyc} ${chk} ${chk1} || print_err_msg_exit "\ Call to executable to run AQM_POST_MAXI_GRIB2 returned with nonzero exit code." POST_STEP diff --git a/scripts/exregional_post_stat_pm25.sh b/scripts/exregional_post_stat_pm25.sh index ea1f3e49b8..41122557b7 100755 --- a/scripts/exregional_post_stat_pm25.sh +++ b/scripts/exregional_post_stat_pm25.sh @@ -115,7 +115,7 @@ EOF1 # convert from netcdf to grib2 format PREP_STEP -${EXECdir}/aqm_post_grib2 ${PDY} ${cyc} "\ +${EXECdir}/aqm_post_grib2 ${PDY} ${cyc} || print_err_msg_exit "\ Call to executable to run AQM_POST_GRIB2 returned with nonzero exit code." POST_STEP @@ -219,7 +219,7 @@ EOF1 fi PREP_STEP - ${EXECdir}/aqm_post_maxi_grib2 ${PDY} ${cyc} ${chk} ${chk1} "\ + ${EXECdir}/aqm_post_maxi_grib2 ${PDY} ${cyc} ${chk} ${chk1} || print_err_msg_exit "\ Call to executable to run AQM_POST_MAXI_GRIB2 returned with nonzero exit code." POST_STEP diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 8a28edcbea..862c966a37 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -2270,6 +2270,7 @@ cpl_aqm_parm: POST_STAT_O3_TN: "post_stat_o3" NNODES_POST_STAT_O3: 1 PPN_POST_STAT_O3: 1 + MEM_POST_STAT_O3: 120G WTIME_POST_STAT_O3: 00:30:00 MAXTRIES_POST_STAT_O3: 2 KMP_AFFINITY_POST_STAT_O3: "scatter" @@ -2279,6 +2280,7 @@ cpl_aqm_parm: POST_STAT_PM25_TN: "post_stat_pm25" NNODES_POST_STAT_PM25: 1 PPN_POST_STAT_PM25: 1 + MEM_POST_STAT_PM25: 120G WTIME_POST_STAT_PM25: 00:30:00 MAXTRIES_POST_STAT_PM25: 2 KMP_AFFINITY_POST_STAT_PM25: "scatter" @@ -2288,6 +2290,7 @@ cpl_aqm_parm: BIAS_CORRECTION_O3_TN: "bias_correction_o3" NNODES_BIAS_CORRECTION_O3: 1 PPN_BIAS_CORRECTION_O3: 1 + MEM_BIAS_CORRECTION_O3: 120G WTIME_BIAS_CORRECTION_O3: 00:30:00 MAXTRIES_BIAS_CORRECTION_O3: 2 KMP_AFFINITY_BIAS_CORRECTION_O3: "scatter" @@ -2297,6 +2300,7 @@ cpl_aqm_parm: BIAS_CORRECTION_PM25_TN: "bias_correction_pm25" NNODES_BIAS_CORRECTION_PM25: 1 PPN_BIAS_CORRECTION_PM25: 1 + MEM_BIAS_CORRECTION_PM25: 120G WTIME_BIAS_CORRECTION_PM25: 00:30:00 MAXTRIES_BIAS_CORRECTION_PM25: 2 KMP_AFFINITY_BIAS_CORRECTION_PM25: "scatter" From 740463dce3f999af0989fa55de03e27a5d63dc4d Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Mon, 12 Dec 2022 13:43:00 +0000 Subject: [PATCH 048/119] fix typo --- scripts/exregional_bias_correction_o3.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index 4d2da1567b..76a6028ae8 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -334,7 +334,7 @@ esac rm_vrfy -rf tmpfile while [ "${fhr}" -le "${endfhr}" ]; do - fhr2d=$( printf "%02d" "${fhr2d}" ) + fhr2d=$( printf "%02d" "${fhr}" ) cp_vrfy ${DATA}/${NET}.${cycle}.awpozcon_bc.f${fhr2d}.${id_domain}.grib2 ${COMOUT} From ca9e0a235c4ebaca8222a54fec5d7f6acbcbd8ce Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Mon, 12 Dec 2022 15:37:15 +0000 Subject: [PATCH 049/119] remove use of 2020 data from nexus-emission --- scripts/exregional_nexus_emission.sh | 3 --- 1 file changed, 3 deletions(-) diff --git a/scripts/exregional_nexus_emission.sh b/scripts/exregional_nexus_emission.sh index 32681f64c3..3d00a6472f 100755 --- a/scripts/exregional_nexus_emission.sh +++ b/scripts/exregional_nexus_emission.sh @@ -183,11 +183,8 @@ if [ "${NEI2016}" = "TRUE" ]; then #NEI2016 cp_vrfy ${ARL_NEXUS_DIR}/utils/python/nexus_nei2016_linker.py . cp_vrfy ${ARL_NEXUS_DIR}/utils/python/nexus_nei2016_control_tilefix.py . mkdir_vrfy -p ${DATAinput}/NEI2016v1 - mkdir_vrfy -p ${DATAinput}/NEI2016v1/v2020-07 - mkdir_vrfy -p ${DATAinput}/NEI2016v1/v2020-07/${mm} mkdir_vrfy -p ${DATAinput}/NEI2016v1/v2022-07 mkdir_vrfy -p ${DATAinput}/NEI2016v1/v2022-07/${mm} - ./nexus_nei2016_linker.py --src_dir ${NEXUS_INPUT_BASE_DIR} --date ${yyyymmdd} --work_dir ${DATAinput} -v "v2020-07" ./nexus_nei2016_linker.py --src_dir ${NEXUS_INPUT_BASE_DIR} --date ${yyyymmdd} --work_dir ${DATAinput} -v "v2022-07" ./nexus_nei2016_control_tilefix.py -f NEXUS_Config.rc -d ${yyyymmdd} fi From 469dd941491885b9d208f3ea7bd175653a0289e6 Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Mon, 12 Dec 2022 16:36:24 +0000 Subject: [PATCH 050/119] change path to aqm_lbcs in sample --- .../EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 index 3566d23116..a74e522278 100644 --- a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 +++ b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 @@ -95,8 +95,8 @@ cpl_aqm_parm: AQM_FIRE_FILE_SUFFIX: _h72.nc AQM_RC_FIRE_FREQUENCY: hourly DO_AQM_PRODUCT: true - AQM_LBCS_DIR: /lfs/h2/emc/physics/noscrub/jianping.huang/data/UFSAQM_NA13km_GEOS5_LBC_v2 - AQM_LBCS_FILES: geos5_bndy_v2.c793.2013.nc + AQM_LBCS_DIR: /lfs/h2/emc/physics/noscrub/jianping.huang/data/UFSAQM_NA13km_AM4_LBC_v1 + AQM_LBCS_FILES: am4_bndy.c793.2019.v1.nc AQM_GEFS_DIR: /lfs/h1/ops/prod/com/gefs/v12.3 NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix From 28b2944643f04a411c3388d1037ce538842c089f Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Mon, 12 Dec 2022 19:29:50 +0000 Subject: [PATCH 051/119] add gfs_v16.3 to file list on hpss --- parm/data_locations.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/parm/data_locations.yml b/parm/data_locations.yml index 8297ac975a..d20ca819aa 100644 --- a/parm/data_locations.yml +++ b/parm/data_locations.yml @@ -78,6 +78,7 @@ FV3GFS: - /NCEPPROD/hpssprod/runhistory/rh{yyyy}/{yyyymm}/{yyyymmdd} - /NCEPPROD/hpssprod/runhistory/rh{yyyy}/{yyyymm}/{yyyymmdd} - /NCEPPROD/hpssprod/runhistory/rh{yyyy}/{yyyymm}/{yyyymmdd} + - /NCEPPROD/hpssprod/runhistory/rh{yyyy}/{yyyymm}/{yyyymmdd} archive_internal_dir: - ./gfs.{yyyymmdd}/{hh} - ./gfs.{yyyymmdd}/{hh}/atmos @@ -87,10 +88,12 @@ FV3GFS: - gpfs_dell1_nco_ops_com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_pgrb2.tar - com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_pgrb2.tar - com_gfs_v16.2_gfs.{yyyymmdd}_{hh}.gfs_pgrb2.tar + - com_gfs_v16.3_gfs.{yyyymmdd}_{hh}.gfs_pgrb2.tar fcst: - gpfs_dell1_nco_ops_com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_pgrb2.tar - com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_pgrb2.tar - com_gfs_v16.2_gfs.{yyyymmdd}_{hh}.gfs_pgrb2.tar + - com_gfs_v16.3_gfs.{yyyymmdd}_{hh}.gfs_pgrb2.tar nemsio: anl: - gpfs_dell1_nco_ops_com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_nemsioa.tar @@ -103,10 +106,12 @@ FV3GFS: - gpfs_dell1_nco_ops_com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_nca.tar - com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_nca.tar - com_gfs_v16.2_gfs.{yyyymmdd}_{hh}.gfs_nca.tar + - com_gfs_v16.3_gfs.{yyyymmdd}_{hh}.gfs_nca.tar fcst: - ['gpfs_dell1_nco_ops_com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_nca.tar', 'gpfs_dell1_nco_ops_com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_ncb.tar'] - ['com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_nca.tar', 'com_gfs_prod_gfs.{yyyymmdd}_{hh}.gfs_ncb.tar'] - ['com_gfs_v16.2_gfs.{yyyymmdd}_{hh}.gfs_nca.tar', 'com_gfs_v16.2_gfs.{yyyymmdd}_{hh}.gfs_ncb.tar'] + - ['com_gfs_v16.3_gfs.{yyyymmdd}_{hh}.gfs_nca.tar', 'com_gfs_v16.3_gfs.{yyyymmdd}_{hh}.gfs_ncb.tar'] file_names: <<: *gfs_file_names aws: From e769b69ed43273aa73f82f872bf26d2563a82a06 Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Tue, 13 Dec 2022 17:07:24 +0000 Subject: [PATCH 052/119] exclude load build modules for nexus --- ush/load_modules_run_task.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/ush/load_modules_run_task.sh b/ush/load_modules_run_task.sh index 6cb125ceda..516be7fceb 100755 --- a/ush/load_modules_run_task.sh +++ b/ush/load_modules_run_task.sh @@ -107,12 +107,14 @@ if [ -f ${VERSION_FILE} ]; then fi source "${HOMEdir}/etc/lmod-setup.sh" ${machine} -module use "${HOMEdir}/modulefiles" -module load "${BUILD_MOD_FN}" || print_err_msg_exit "\ +if [ "${task_name}" != "nexus_post_split" ]; then + module use "${HOMEdir}/modulefiles" + module load "${BUILD_MOD_FN}" || print_err_msg_exit "\ Loading of platform- and compiler-specific module file (BUILD_MOD_FN) for the workflow task specified by task_name failed: task_name = \"${task_name}\" BUILD_MOD_FN = \"${BUILD_MOD_FN}\"" +fi # #----------------------------------------------------------------------- # From 3e1f48ec0749e397f416e7d2356ae915fbdc70aa Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Wed, 14 Dec 2022 03:35:10 +0000 Subject: [PATCH 053/119] split module list for each component --- .gitignore | 1 + devbuild.sh | 19 +++++++++++++++ externals/Externals_AQM.cfg | 2 +- modulefiles/tasks/wcoss2/make_grid.local.lua | 3 +++ modulefiles/tasks/wcoss2/make_ics.local.lua | 3 +++ modulefiles/tasks/wcoss2/make_lbcs.local.lua | 3 +++ modulefiles/tasks/wcoss2/make_orog.local.lua | 3 +++ .../tasks/wcoss2/make_sfc_climo.local.lua | 3 +++ ush/load_modules_run_task.sh | 24 ++++++++++++++++--- 9 files changed, 57 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index dafefc0695..6d4734c975 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ fix/ include/ lib/ share/ +modulefiles/extrn_comp_build/ sorc/*/ tests/WE2E/WE2E_test_info.csv tests/WE2E/*.txt diff --git a/devbuild.sh b/devbuild.sh index b153ec877f..6fc77596e9 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -364,6 +364,25 @@ if [ ! -z "${DISABLE_OPTIONS}" ]; then fi if [ "${APPLICATION}" = "ATMAQ" ]; then CMAKE_SETTINGS="${CMAKE_SETTINGS} -DCPL_AQM=ON -DBUILD_POST_STAT=${BUILD_POST_STAT}" + + # Copy module files to designated directory + EXTRN_BUILD_MOD_DIR="${SRW_DIR}/modulefiles/extrn_comp_build" + mkdir -p ${EXTRN_BUILD_MOD_DIR} + if [ "${BUILD_UFS}" = "on" ]; then + cp "${SRW_DIR}/sorc/ufs-weather-model/modulefiles/ufs_${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_ufs-weather-model.lua" + fi + if [ "${BUILD_UFS_UTILS}" = "on" ]; then + cp "${SRW_DIR}/sorc/UFS_UTILS/modulefiles/build.${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_ufs-utils.lua" + fi + if [ "${BUILD_UPP}" = "on" ]; then + cp "${SRW_DIR}/sorc/UPP/modulefiles/${PLATFORM}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_upp.lua" + fi + if [ "${BUILD_NEXUS}" = "on" ]; then + cp "${SRW_DIR}/sorc/AQM-utils/parm/nexus_modulefiles/${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_nexus.lua" + fi + if [ "${BUILD_AQM_UTILS}" = "on" ]; then + cp "${SRW_DIR}/sorc/AQM-utils/modulefiles/build_${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_aqm-utils.lua" + fi fi # make settings diff --git a/externals/Externals_AQM.cfg b/externals/Externals_AQM.cfg index 6f56ec669f..e73b259e62 100644 --- a/externals/Externals_AQM.cfg +++ b/externals/Externals_AQM.cfg @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/AQM-utils # Specify either a branch name or a hash but not both. #branch = develop -hash = a9e5217 +hash = 9f66175 local_path = sorc/AQM-utils required = True diff --git a/modulefiles/tasks/wcoss2/make_grid.local.lua b/modulefiles/tasks/wcoss2/make_grid.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_grid.local.lua +++ b/modulefiles/tasks/wcoss2/make_grid.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/modulefiles/tasks/wcoss2/make_ics.local.lua b/modulefiles/tasks/wcoss2/make_ics.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_ics.local.lua +++ b/modulefiles/tasks/wcoss2/make_ics.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/modulefiles/tasks/wcoss2/make_lbcs.local.lua b/modulefiles/tasks/wcoss2/make_lbcs.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_lbcs.local.lua +++ b/modulefiles/tasks/wcoss2/make_lbcs.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/modulefiles/tasks/wcoss2/make_orog.local.lua b/modulefiles/tasks/wcoss2/make_orog.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_orog.local.lua +++ b/modulefiles/tasks/wcoss2/make_orog.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/modulefiles/tasks/wcoss2/make_sfc_climo.local.lua b/modulefiles/tasks/wcoss2/make_sfc_climo.local.lua index 3370fa018b..a898bfa85d 100644 --- a/modulefiles/tasks/wcoss2/make_sfc_climo.local.lua +++ b/modulefiles/tasks/wcoss2/make_sfc_climo.local.lua @@ -1 +1,4 @@ load("python_regional_workflow") + +load(pathJoin("envvar", os.getenv("envvar_ver"))) + diff --git a/ush/load_modules_run_task.sh b/ush/load_modules_run_task.sh index 516be7fceb..4fa0d82145 100755 --- a/ush/load_modules_run_task.sh +++ b/ush/load_modules_run_task.sh @@ -107,9 +107,27 @@ if [ -f ${VERSION_FILE} ]; then fi source "${HOMEdir}/etc/lmod-setup.sh" ${machine} -if [ "${task_name}" != "nexus_post_split" ]; then - module use "${HOMEdir}/modulefiles" - module load "${BUILD_MOD_FN}" || print_err_msg_exit "\ +if [ "${CPL_AQM}" = "TRUE" ]; then + module use "${HOMEdir}/modulefiles/extrn_comp_build" + if [ "${task_name}" = "make_grid" ] || [ "${task_name}" = "make_orog" ] || \ + [ "${task_name}" = "make_sfc_climo" ] || [ "${task_name}" = "make_ics" ] || \ + [ "${task_name}" = "make_lbcs" ]; then + module load mod_ufs-utils + elif [ "${task_name}" = "run_fcst" ]; then + module load mod_ufs-weather-model + elif [ "${task_name}" = "run_post" ]; then + module load mod_upp + elif [ "${task_name}" = "aqm_lbcs" ] || [ "${task_name}" = "point_source" ] || \ + [ "${task_name}" = "post_stat_o3" ] || [ "${task_name}" = "post_stat_pm25" ] || \ + [ "${task_name}" = "bias_correction_o3" ] || \ + [ "${task_name}" = "bias_correction_pm25" ]; then + module load mod_aqm-utils + elif [ "${task_name}" = "nexus_emission" ]; then + module load mod_nexus + fi +else +module use "${HOMEdir}/modulefiles" +module load "${BUILD_MOD_FN}" || print_err_msg_exit "\ Loading of platform- and compiler-specific module file (BUILD_MOD_FN) for the workflow task specified by task_name failed: task_name = \"${task_name}\" From 7b942b393227823d058b46b6191cab14e78966be Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Wed, 14 Dec 2022 16:24:13 +0000 Subject: [PATCH 054/119] fix moule list issue on wcoss2 --- externals/Externals_AQM.cfg | 2 +- modulefiles/tasks/wcoss2/run_fcst.local.lua | 9 +++++++++ modulefiles/tasks/wcoss2/run_post.local.lua | 2 ++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/externals/Externals_AQM.cfg b/externals/Externals_AQM.cfg index e73b259e62..9947f7b9a8 100644 --- a/externals/Externals_AQM.cfg +++ b/externals/Externals_AQM.cfg @@ -21,7 +21,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/AQM-utils # Specify either a branch name or a hash but not both. #branch = develop -hash = 9f66175 +hash = 82dff8f local_path = sorc/AQM-utils required = True diff --git a/modulefiles/tasks/wcoss2/run_fcst.local.lua b/modulefiles/tasks/wcoss2/run_fcst.local.lua index 3370fa018b..3ba04f0af5 100644 --- a/modulefiles/tasks/wcoss2/run_fcst.local.lua +++ b/modulefiles/tasks/wcoss2/run_fcst.local.lua @@ -1 +1,10 @@ load("python_regional_workflow") + +unload("cray_mpich") +unload("netcdf") +load(pathJoin("cray-mpich", os.getenv("cray_mpich_ver"))) +load(pathJoin("netcdf", os.getenv("netcdf_ver"))) + +load(pathJoin("envvar", os.getenv("envvar_ver"))) +load(pathJoin("libjpeg", os.getenv("libjpeg_ver"))) +load(pathJoin("cray-pals", os.getenv("cray_pals_ver"))) diff --git a/modulefiles/tasks/wcoss2/run_post.local.lua b/modulefiles/tasks/wcoss2/run_post.local.lua index 3370fa018b..69325a8a4a 100644 --- a/modulefiles/tasks/wcoss2/run_post.local.lua +++ b/modulefiles/tasks/wcoss2/run_post.local.lua @@ -1 +1,3 @@ load("python_regional_workflow") + +load(pathJoin("cray-pals", os.getenv("cray_pals_ver"))) From 548206036d90acd270e9e2f9f3439199714e3e72 Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Wed, 14 Dec 2022 17:06:06 +0000 Subject: [PATCH 055/119] copy ufs_common to extrn_mod_dir --- devbuild.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/devbuild.sh b/devbuild.sh index 6fc77596e9..1fa258390e 100755 --- a/devbuild.sh +++ b/devbuild.sh @@ -370,6 +370,7 @@ if [ "${APPLICATION}" = "ATMAQ" ]; then mkdir -p ${EXTRN_BUILD_MOD_DIR} if [ "${BUILD_UFS}" = "on" ]; then cp "${SRW_DIR}/sorc/ufs-weather-model/modulefiles/ufs_${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_ufs-weather-model.lua" + cp "${SRW_DIR}/sorc/ufs-weather-model/modulefiles/ufs_common.lua ${EXTRN_BUILD_MOD_DIR} fi if [ "${BUILD_UFS_UTILS}" = "on" ]; then cp "${SRW_DIR}/sorc/UFS_UTILS/modulefiles/build.${PLATFORM}.${COMPILER}.lua" "${EXTRN_BUILD_MOD_DIR}/mod_ufs-utils.lua" From 15eb7f4a752ee7823df0d250018589d1ed164333 Mon Sep 17 00:00:00 2001 From: chan-hoo jeon Date: Wed, 14 Dec 2022 21:57:25 +0000 Subject: [PATCH 056/119] fix missing link issue on bias-correction --- scripts/exregional_bias_correction_o3.sh | 25 ++++++++++++++----- scripts/exregional_bias_correction_pm25.sh | 25 ++++++++++++++----- ush/config_defaults.yaml | 8 ++++-- .../config.yaml_nco_aqmna13km_1day_wcoss2 | 1 + 4 files changed, 45 insertions(+), 14 deletions(-) diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index 76a6028ae8..81715abb47 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -110,13 +110,26 @@ fi # STEP 1: Retrieve AIRNOW observation data #----------------------------------------------------------------------------- -mkdir -p ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 -mkdir -p ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 -mkdir -p ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +# Link the historical airnow data +mkdir_vrfy -p "${DATA}/data" +ln_vrfy -sf ${AQM_AIRNOW_HIST_DIR}/bcdata* "${DATA}/data" +if [ -d "${DATA}/data/bcdata.${yyyymm}" ]; then + rm_vrfy -rf "${DATA}/data/bcdata.${yyyymm}" + mkdir_vrfy -p "${DATA}/data/bcdata.${yyyymm}" + cp_vrfy -rL "${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow" "${DATA}/data/bcdata.${yyyymm}" + cp_vrfy -rL "${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated" "${DATA}/data/bcdata.${yyyymm}" +fi + +# Retrieve real-time airnow data for the last three days +if [ "${DO_REAL_TIME}" = "TRUE" ]; then + mkdir -p ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 + mkdir -p ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 + mkdir -p ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx021 ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +fi #----------------------------------------------------------------------------- # STEP 2: Extracting PM2.5, O3, and met variables from CMAQ input and outputs diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh index 944d32626f..84b9ecae33 100755 --- a/scripts/exregional_bias_correction_pm25.sh +++ b/scripts/exregional_bias_correction_pm25.sh @@ -110,13 +110,26 @@ fi # STEP 1: Retrieve AIRNOW observation data #----------------------------------------------------------------------------- -mkdir -p ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 -mkdir -p ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 -mkdir -p ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +# Link the historical airnow data +mkdir_vrfy -p "${DATA}/data" +ln_vrfy -sf ${AQM_AIRNOW_HIST_DIR}/bcdata* "${DATA}/data" +if [ -d "${DATA}/data/bcdata.${yyyymm}" ]; then + rm_vrfy -rf "${DATA}/data/bcdata.${yyyymm}" + mkdir_vrfy -p "${DATA}/data/bcdata.${yyyymm}" + cp_vrfy -rL "${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow" "${DATA}/data/bcdata.${yyyymm}" + cp_vrfy -rL "${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated" "${DATA}/data/bcdata.${yyyymm}" +fi + +# Retrieve real-time airnow data for the last three days +if [ "${DO_REAL_TIME}" = "TRUE" ]; then + mkdir -p ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 + mkdir -p ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 + mkdir -p ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx031 ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx031 ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx031 ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx031 ${DATA}/data/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx031 ${DATA}/data/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx031 ${DATA}/data/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +fi #----------------------------------------------------------------------------- # STEP 2: Extracting PM2.5, O3, and met variables from CMAQ input and outputs diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 862c966a37..8b50d292b0 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -2406,8 +2406,11 @@ cpl_aqm_parm: # WARMSTART_CYCLE_DIR: # Path to the directory where RESTART dir is located for warm start # +# AQM_AIRNOW_HIST_DIR: +# Path to the directory where the historical AIRNOW data are located +# # COMINairnow: -# Path to the AIRNOW observation data +# Path to the real-time AIRNOW observation data # #----------------------------------------------------------------------- # @@ -2450,5 +2453,6 @@ cpl_aqm_parm: COLDSTART: true WARMSTART_CYCLE_DIR: "/path/to/warm/start/cycle/dir" - COMINairnow: "/path/to/airnow/data" + AQM_AIRNOW_HIST_DIR: "/path/to/historical/airnow/data/dir" + COMINairnow: "/path/to/real/time/airnow/data" COMINgfs_BASEDIR: "" diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 index a74e522278..3ed5e94a8b 100644 --- a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 +++ b/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_1day_wcoss2 @@ -102,5 +102,6 @@ cpl_aqm_parm: NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix NEXUS_GRID_FN: grid_spec_793.nc NUM_SPLIT_NEXUS: 3 + AQM_AIRNOW_HIST_DIR: /lfs/h2/emc/physics/noscrub/kai.wang/Bias_correction/aqmv7.0 # COLDSTART: false # WARMSTART_CYCLE_DIR: /lfs/h2/emc/ptmp/jianping.huang/para/com/aqm/v7.0/aqm.v7.0.c3/2022102118 From 7e5bb4d067b7d7e1eb8bd7a639a0fd6e02a0ac93 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Thu, 15 Dec 2022 13:52:59 +0000 Subject: [PATCH 057/119] add missing nco module to aqm_ics on hera --- modulefiles/tasks/hera/aqm_ics.local.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/modulefiles/tasks/hera/aqm_ics.local.lua b/modulefiles/tasks/hera/aqm_ics.local.lua index 0ef3de3b66..836582f847 100644 --- a/modulefiles/tasks/hera/aqm_ics.local.lua +++ b/modulefiles/tasks/hera/aqm_ics.local.lua @@ -1 +1,2 @@ load("miniconda_online-cmaq") +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) From 034b79f0ce41693052523aa68549c3145d6492ce Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Thu, 15 Dec 2022 19:10:22 +0000 Subject: [PATCH 058/119] add nexus_post_split to module load list --- ush/load_modules_run_task.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ush/load_modules_run_task.sh b/ush/load_modules_run_task.sh index 4fa0d82145..f89bc47e58 100755 --- a/ush/load_modules_run_task.sh +++ b/ush/load_modules_run_task.sh @@ -122,8 +122,8 @@ if [ "${CPL_AQM}" = "TRUE" ]; then [ "${task_name}" = "bias_correction_o3" ] || \ [ "${task_name}" = "bias_correction_pm25" ]; then module load mod_aqm-utils - elif [ "${task_name}" = "nexus_emission" ]; then - module load mod_nexus + elif [ "${task_name}" = "nexus_emission" ] || [ "${task_name}" = "nexus_post_split" ]; then + module load mod_nexus fi else module use "${HOMEdir}/modulefiles" From 62a688f1309863661f0aff404e1ab790473cbf6f Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Fri, 16 Dec 2022 23:42:16 +0000 Subject: [PATCH 059/119] add nexus_gfs_sfc task --- jobs/JREGIONAL_NEXUS_GFS_SFC | 135 ++++++++++++++++ parm/FV3LAM_wflow.xml | 34 +++++ scripts/exregional_nexus_gfs_sfc.sh | 144 ++++++++++++++++++ ush/config_defaults.yaml | 19 +++ .../config.yaml_cold_aqmna13km_1day_wcoss2 | 1 + .../config.yaml_community_aqmna13km_1day_hera | 1 + .../config.yaml_community_conus13km_1day_hera | 1 + .../config.yaml_nco_aqmna13km_1day_wcoss2 | 5 +- .../hera/config.yaml_cold_aqmna13km_1day_hera | 1 + .../config.yaml_cold_gsdhrrr25km_1d4cyc_hera | 1 + .../config.yaml_nco_gsdhrrr25km_1d2cyc_hera | 1 + ...nfig.yaml_realtime_gsdhrrr25km_1d1cyc_hera | 1 + .../config.yaml_warm_rrfsconus13km_1day_hera | 1 + .../config.yaml_cold_gsdhrrr25km_1d4cyc_orion | 83 ---------- .../config.yaml_cold_aqmna13km_1day_wcoss2 | 1 + ...config.yaml_cold_gsdhrrr25km_1d4cyc_wcoss2 | 1 + .../config.yaml_nco_gsdhrrr25km_1d2cyc_wcoss2 | 1 + ...config.yaml_warm_rrfsconus13km_1day_wcoss2 | 1 + 18 files changed, 347 insertions(+), 85 deletions(-) create mode 100755 jobs/JREGIONAL_NEXUS_GFS_SFC create mode 100755 scripts/exregional_nexus_gfs_sfc.sh delete mode 100644 ush/sample_config/WE2E_test/orion/config.yaml_cold_gsdhrrr25km_1d4cyc_orion diff --git a/jobs/JREGIONAL_NEXUS_GFS_SFC b/jobs/JREGIONAL_NEXUS_GFS_SFC new file mode 100755 index 0000000000..a6ea94a614 --- /dev/null +++ b/jobs/JREGIONAL_NEXUS_GFS_SFC @@ -0,0 +1,135 @@ +#!/bin/bash + +# +#----------------------------------------------------------------------- +# +# This script gets fire emission data files from disk or HPSS +# +#----------------------------------------------------------------------- +# + +# +#----------------------------------------------------------------------- +# +# Source the variable definitions file and the bash utility functions. +# +#----------------------------------------------------------------------- +# +. $USHdir/source_util_funcs.sh +source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +. $USHdir/job_preamble.sh "TRUE" +# +#----------------------------------------------------------------------- +# +# Save current shell options (in a global array). Then set new options +# for this script/function. +# +#----------------------------------------------------------------------- +# +{ save_shell_opts; . $USHdir/preamble.sh; } > /dev/null 2>&1 +# +#----------------------------------------------------------------------- +# +# Get the full path to the file in which this script/function is located +# (scrfunc_fp), the name of that file (scrfunc_fn), and the directory in +# which the file is located (scrfunc_dir). +# +#----------------------------------------------------------------------- +# +scrfunc_fp=$( $READLINK -f "${BASH_SOURCE[0]}" ) +scrfunc_fn=$( basename "${scrfunc_fp}" ) +scrfunc_dir=$( dirname "${scrfunc_fp}" ) +# +#----------------------------------------------------------------------- +# +# Print message indicating entry into script. +# +#----------------------------------------------------------------------- +# +print_info_msg " +======================================================================== +Entering script: \"${scrfunc_fn}\" +In directory: \"${scrfunc_dir}\" + +This is the J-job script for the task that copies or fetches RAVE fire +emission data files from disk, or HPSS. +========================================================================" +# +#----------------------------------------------------------------------- +# +# Set the external model start time +# +#----------------------------------------------------------------------- +# +export TIME_OFFSET_HRS=${NEXUS_GFS_SFC_OFFSET_HRS:-0} +yyyymmdd=${PDY} +hh=${cyc} +export GFS_SFC_CDATE=$( $DATE_UTIL --utc --date "${yyyymmdd} ${hh} UTC - ${TIME_OFFSET_HRS} hours" "+%Y%m%d%H" ) + +# +#----------------------------------------------------------------------- +# +# Check whether GFS_SFC_CDATE data files are available on the specified +# cycle date and time on HPSS. +# +#----------------------------------------------------------------------- +# +CDATE_min="2021032100" +if [ "$GFS_SFC_CDATE" -lt "$CDATE_min" ]; then + print_info_msg " +======================================================================== +GFS surface data (NetCDF) are not available on HPSS for this date. +CDATE: \"${GFS_SFC_CDATE}\" +CDATE_min: \"${CDATE_min}\" + +Therefore, this task will be skipped and MERRA2 data will be used for +NEXUS_EMISSION. +========================================================================" + + exit 0 +fi +# +#----------------------------------------------------------------------- +# +# Create the directory where the RAVE fire emission files should be stored +# +#----------------------------------------------------------------------- +# +export GFS_SFC_STAGING_DIR="${COMINext}/GFS_SFC" +mkdir_vrfy -p "${GFS_SFC_STAGING_DIR}" +# +#----------------------------------------------------------------------- +# +# Set the run directory +# +#----------------------------------------------------------------------- +# +DATA="${DATA:-${COMIN}${SLASH_ENSMEM_SUBDIR}}" +mkdir_vrfy -p "${DATA}" +# +#----------------------------------------------------------------------- +# +# Call the ex-script for this J-job and pass to it the necessary variables. +# +#----------------------------------------------------------------------- +# +$SCRIPTSdir/exregional_nexus_gfs_sfc.sh || \ +print_err_msg_exit "\ +Call to ex-script corresponding to J-job \"${scrfunc_fn}\" failed." +# +#----------------------------------------------------------------------- +# +# Run job postamble. +# +#----------------------------------------------------------------------- +# +job_postamble +# +#----------------------------------------------------------------------- +# +# Restore the shell options saved at the beginning of this script/function. +# +#----------------------------------------------------------------------- +# +{ restore_shell_opts; } > /dev/null 2>&1 + diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml index 0a38adad7a..6708986692 100644 --- a/parm/FV3LAM_wflow.xml +++ b/parm/FV3LAM_wflow.xml @@ -91,6 +91,9 @@ Workflow task names. {%- if run_task_aqm_lbcs %} {%- endif %} +{%- if run_task_nexus_gfs_sfc %} + +{%- endif %} {%- if run_task_nexus_emission %} @@ -353,6 +356,32 @@ MODULES_RUN_TASK_FP script. {%- endif %} +{%- if run_task_nexus_gfs_sfc %} + + + + &RSRV_HPSS; + &LOAD_MODULES_RUN_TASK_FP; "&NEXUS_GFS_SFC_TN;" "&JOBSdir;/JREGIONAL_NEXUS_GFS_SFC" + {{ nnodes_nexus_gfs_sfc }}:ppn={{ ppn_nexus_gfs_sfc }} + {{ wtime_nexus_gfs_sfc }} + &NCORES_PER_NODE; + {%- if machine not in ["WCOSS2"] %} + &SCHED_NATIVE_CMD; + {%- endif %} + &NEXUS_GFS_SFC_TN; + &LOGDIR;/&NEXUS_GFS_SFC_TN;_@Y@m@d@H&LOGEXT; + + GLOBAL_VAR_DEFNS_FP&GLOBAL_VAR_DEFNS_FP; + USHdir&USHdir; + PDY@Y@m@d + cyc@H + subcyc@M + LOGDIR&LOGDIR; + +{%- endif %} {%- if run_task_nexus_emission %} + {%- if do_real_time %} + &RSRV_DEFAULT; + {%- else %} &RSRV_HPSS; + {%- endif %} &LOAD_MODULES_RUN_TASK_FP; "&NEXUS_GFS_SFC_TN;" "&JOBSdir;/JREGIONAL_NEXUS_GFS_SFC" {{ nnodes_nexus_gfs_sfc }}:ppn={{ ppn_nexus_gfs_sfc }} - {%- if machine not in ["GAEA", "NOAACLOUD"] %} + {%- if machine not in ["GAEA", "NOAACLOUD"] %} + {%- if not do_real_time %} {{ mem_nexus_gfs_sfc }} + {%- endif %} {%- endif %} {{ wtime_nexus_gfs_sfc }} &NCORES_PER_NODE; @@ -463,11 +469,17 @@ MODULES_RUN_TASK_FP script. --> + {%- if do_real_time %} + &RSRV_DEFAULT; + {%- else %} &RSRV_HPSS; + {%- endif %} &LOAD_MODULES_RUN_TASK_FP; "&FIRE_EMISSION_TN;" "&JOBSdir;/JREGIONAL_FIRE_EMISSION" {{ nnodes_fire_emission }}:ppn={{ ppn_fire_emission }} {%- if machine not in ["GAEA", "NOAACLOUD"] %} + {%- if not do_real_time %} {{ mem_fire_emission }} + {%- endif %} {%- endif %} {{ wtime_fire_emission }} &NCORES_PER_NODE; diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 0810db6a19..6c785293bd 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -2586,7 +2586,7 @@ cpl_aqm_parm: # AQM_GEFS_FILE_PREFIX: # Prefix of AQM GEFS file ("geaer" or "gfs") # -# AQM_GEFS_CYC: +# AQM_GEFS_FILE_CYC: # Cycle of the GEFS aerosol LBC files only if it is fixed # # DO_AQM_CHEM_LBCS: diff --git a/ush/machine/wcoss2.yaml b/ush/machine/wcoss2.yaml index 185d2cc613..fb480891b3 100644 --- a/ush/machine/wcoss2.yaml +++ b/ush/machine/wcoss2.yaml @@ -40,7 +40,7 @@ cpl_aqm_parm: AQM_BIO_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/bio AQM_DUST_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/FENGSHA AQM_CANOPY_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/canopy - AQM_FIRE_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/emissions/GSCE/RAVE.in.793/RAVE_RT + AQM_FIRE_DIR: /lfs/h2/emc/physics/noscrub/jianping.huang/data/RRFS_CMAQ/emissions/GSCE/RAVE.in.C793/RAVE_RT AQM_LBCS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/LBCS/AQM_NA13km_AM4_v1 AQM_GEFS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/GEFS_DATA AQM_AIRNOW_HIST_DIR: /lfs/h2/emc/physics/noscrub/kai.wang/Bias_correction/aqmv7.0 diff --git a/ush/sample_config/ARL_run/config.yaml_cold_aqmna13km_1day_wcoss2 b/ush/sample_config/ARL_run/config.yaml_cold_aqmna13km_1day_wcoss2 deleted file mode 100644 index 32da1bfccd..0000000000 --- a/ush/sample_config/ARL_run/config.yaml_cold_aqmna13km_1day_wcoss2 +++ /dev/null @@ -1,88 +0,0 @@ -metadata: - description: config for Online-CMAQ, AQM_NA_13km, cold start, 1cycle a day, on WCOSS2 -user: - RUN_ENVIR: community - MACHINE: wcoss2 - ACCOUNT: AQM-DEV -workflow: - USE_CRON_TO_RELAUNCH: true - CRON_RELAUNCH_INTVL_MNTS: 3 - EXPT_BASEDIR: /lfs/h2/oar/ptmp/Patrick.C.Campbell/expt_dirs - EXPT_SUBDIR: aqm_cold_aqmna13_1day - PREDEF_GRID_NAME: AQM_NA_13km - CCPP_PHYS_SUITE: FV3_GFS_v16 - DATE_FIRST_CYCL: '2019080512' - DATE_LAST_CYCL: '2019080512' - FCST_LEN_HRS: 24 - PREEXISTING_DIR_METHOD: rename - VERBOSE: true - COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 -nco: - NET: aqm -workflow_switches: - RUN_TASK_MAKE_GRID: true - RUN_TASK_MAKE_OROG: true - RUN_TASK_MAKE_SFC_CLIMO: true - RUN_TASK_RUN_POST: false -task_get_extrn_ics: - EXTRN_MDL_NAME_ICS: FV3GFS -# FV3GFS_FILE_FMT_ICS: grib2 -task_get_extrn_lbcs: - EXTRN_MDL_NAME_LBCS: FV3GFS - LBC_SPEC_INTVL_HRS: 6 -# FV3GFS_FILE_FMT_LBCS: grib2 -task_run_fcst: - DT_ATMOS: 180 - LAYOUT_X: 50 - LAYOUT_Y: 34 - BLOCKSIZE: 16 - RESTART_INTERVAL: 24 - WTIME_RUN_FCST: 02:00:00 - QUILTING: true - PRINT_ESMF: false -task_run_post: - POST_OUTPUT_DOMAIN_NAME: 793 -global: - DO_ENSEMBLE: false - NUM_ENS_MEMBERS: 2 - HALO_BLEND: 0 -cpl_aqm_parm: - CPL_AQM: true - RUN_TASK_ADD_AQM_ICS: true - RUN_TASK_ADD_AQM_LBCS: true - RUN_TASK_NEXUS_GFS_SFC: true - RUN_TASK_NEXUS_EMISSION: true - RUN_TASK_FIRE_EMISSION: true - NNODES_RUN_NEXUS: 4 - PPN_RUN_NEXUS: 40 - DO_AQM_CHEM_LBCS: true - DO_AQM_GEFS_LBCS: true - AQM_GEFS_CYC: 0 - AQM_CONFIG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/epa/data - AQM_BIO_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/aqm/bio - AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf - DO_AQM_DUST: true - AQM_DUST_DIR: /lfs/h2/emc/ptmp/barry.baker - AQM_DUST_FILE_PREFIX: FENGSHA_p8_10km_inputs - AQM_DUST_FILE_SUFFIX: .nc - DO_AQM_CANOPY: false - AQM_CANOPY_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/canopy - AQM_CANOPY_FILE_PREFIX: gfs.t12z.geo - AQM_CANOPY_FILE_SUFFIX: .canopy_regrid.nc - AQM_FIRE_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/emissions/GSCE/RAVE.in.793/RAVE_RT - AQM_FIRE_FILE_PREFIX: Hourly_Emissions_regrid_NA_13km - AQM_FIRE_FILE_SUFFIX: _h72.nc - AQM_RC_FIRE_FREQUENCY: hourly - DO_AQM_PRODUCT: true - AQM_LBCS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/LBCS/RRFS_NA13km_GEOS5_v2 - AQM_LBCS_FILES: geos5_bndy_v2.c793.2013.nc - AQM_GEFS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/GEFS_aerosol - AQM_GEFS_FILE_PREFIX: gfs - AQM_GEFS_FILE_CYC: 0 - NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions - NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix - NEXUS_GRID_FN: grid_spec_793.nc -# COLDSTART: false -# WARMSTART_CYCLE_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/restart/RRFS_CONUS_13km/2019080612 diff --git a/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera b/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera deleted file mode 100644 index a6b9ad8299..0000000000 --- a/ush/sample_config/ARL_run/config.yaml_community_aqmna13km_1day_hera +++ /dev/null @@ -1,98 +0,0 @@ -metadata: - description: config for Online-CMAQ, AQM_NA_13km, Community mode, 1cycle a day -user: - RUN_ENVIR: community - MACHINE: hera - ACCOUNT: naqfc -workflow: - USE_CRON_TO_RELAUNCH: true - CRON_RELAUNCH_INTVL_MNTS: 3 -# EXPT_BASEDIR: /scratch2/NCEPDEV/stmp3/Chan-hoo.Jeon/expt_dirs - EXPT_SUBDIR: aqm.v7.0.c7 - PREDEF_GRID_NAME: AQM_NA_13km - CCPP_PHYS_SUITE: FV3_GFS_v16 - DATE_FIRST_CYCL: '2020091512' - DATE_LAST_CYCL: '2020091512' - INCR_CYCL_FREQ: 24 - FCST_LEN_HRS: 24 - PREEXISTING_DIR_METHOD: rename - VERBOSE: true - COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 -nco: - NET: aqm - model_ver: v7.0 - RUN: aqm_test - OPSROOT: /scratch2/NCEPDEV/stmp3/Chan-hoo.Jeon/NCO_OUTPUT -workflow_switches: - RUN_TASK_MAKE_GRID: false - RUN_TASK_MAKE_OROG: false - RUN_TASK_MAKE_SFC_CLIMO: false - RUN_TASK_RUN_POST: false -task_make_grid: - GRID_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/DOMAIN_DATA/AQM_NA_13km -task_make_orog: - OROG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/DOMAIN_DATA/AQM_NA_13km -task_make_sfc_climo: - SFC_CLIMO_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/DOMAIN_DATA/AQM_NA_13km -task_get_extrn_ics: - EXTRN_MDL_NAME_ICS: FV3GFS -# FV3GFS_FILE_FMT_ICS: grib2 -task_get_extrn_lbcs: - EXTRN_MDL_NAME_LBCS: FV3GFS - LBC_SPEC_INTVL_HRS: 6 -# FV3GFS_FILE_FMT_LBCS: grib2 -task_run_fcst: - DT_ATMOS: 180 - LAYOUT_X: 50 - LAYOUT_Y: 34 - BLOCKSIZE: 16 - RESTART_INTERVAL: 24 - WTIME_RUN_FCST: 02:00:00 - QUILTING: true - PRINT_ESMF: false -task_run_post: - POST_OUTPUT_DOMAIN_NAME: 793 -global: - DO_ENSEMBLE: false - NUM_ENS_MEMBERS: 2 - HALO_BLEND: 0 -cpl_aqm_parm: - CPL_AQM: true - RUN_TASK_AQM_ICS: true - RUN_TASK_AQM_LBCS: true - RUN_TASK_NEXUS_GFS_SFC: true - RUN_TASK_NEXUS_EMISSION: true - RUN_TASK_FIRE_EMISSION: true - RUN_TASK_POINT_SOURCE: true - DO_AQM_CHEM_LBCS: true - DO_AQM_GEFS_LBCS: true - AQM_GEFS_CYC: 0 - AQM_CONFIG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/epa/data - AQM_BIO_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/bio - AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf - DO_AQM_DUST: true - AQM_DUST_DIR: /scratch1/RDARCH/rda-arl-gpu/Barry.Baker/emissions/nexus/FENGSHA/Online_CMAQ - AQM_DUST_FILE_PREFIX: FENGSHA_p8_10km_inputs - AQM_DUST_FILE_SUFFIX: .nc - DO_AQM_CANOPY: false - AQM_CANOPY_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/canopy - AQM_CANOPY_FILE_PREFIX: gfs.t12z.geo - AQM_CANOPY_FILE_SUFFIX: .canopy_regrid.nc - AQM_FIRE_DIR: /scratch2/NCEPDEV/naqfc/Jianping.Huang/Data/emissions/GSCE/RAVE.in.793/RAVE_RT - AQM_FIRE_FILE_PREFIX: Hourly_Emissions_regrid_NA_13km - AQM_FIRE_FILE_SUFFIX: _h72.nc - AQM_RC_FIRE_FREQUENCY: hourly - DO_AQM_PRODUCT: true - AQM_LBCS_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ_NA13km/LBCS/RRFS_NA13km_GEOS5_v2 - AQM_LBCS_FILES: geos5_bndy_v2.c793.2013.nc - AQM_GEFS_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/GEFS_aerosol - AQM_GEFS_FILE_PREFIX: geaer - NEXUS_INPUT_DIR: /scratch2/NCEPDEV/naqfc/Jianping.Huang/emissions/nexus - NEXUS_FIX_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/nexus/fix - NEXUS_GRID_FN: grid_spec_793.nc - NUM_SPLIT_NEXUS: 1 - RESTART_WORKFLOW: true - RESTART_CYCLE_DIR: /scratch2/NCEPDEV/stmp3/Jianping.Huang/NCO_OUTPUT/stmp/tmpnwprd/aqm_test_a/2020091412 - diff --git a/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera b/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera deleted file mode 100644 index 5078ae69ad..0000000000 --- a/ush/sample_config/ARL_run/config.yaml_community_conus13km_1day_hera +++ /dev/null @@ -1,86 +0,0 @@ -metadata: - description: config for Online-CMAQ, RRFS_CONUScompact_13km, Community mode, 1cycle a day -user: - RUN_ENVIR: community - MACHINE: hera - ACCOUNT: naqfc -workflow: - USE_CRON_TO_RELAUNCH: true - CRON_RELAUNCH_INTVL_MNTS: 3 -# EXPT_BASEDIR: /scratch1/NCEPDEV/stmp4/Patrick.C.Campbell/expt_dirs - EXPT_SUBDIR: aqm_canopy_conus13_1day - PREDEF_GRID_NAME: RRFS_CONUScompact_13km - CCPP_PHYS_SUITE: FV3_GFS_v16 - DATE_FIRST_CYCL: '2019080112' - DATE_LAST_CYCL: '2019080112' - INCR_CYCL_FREQ: 24 - FCST_LEN_HRS: 24 - PREEXISTING_DIR_METHOD: rename - VERBOSE: true - COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 -nco: - NET: aqm -workflow_switches: - RUN_TASK_MAKE_GRID: true - RUN_TASK_MAKE_OROG: true - RUN_TASK_MAKE_SFC_CLIMO: true - RUN_TASK_RUN_POST: false -task_get_extrn_ics: - EXTRN_MDL_NAME_ICS: FV3GFS -# FV3GFS_FILE_FMT_ICS: grib2 -task_get_extrn_lbcs: - EXTRN_MDL_NAME_LBCS: FV3GFS - LBC_SPEC_INTVL_HRS: 6 -# FV3GFS_FILE_FMT_LBCS: grib2 -task_run_fcst: - DT_ATMOS: 180 - LAYOUT_X: 16 - LAYOUT_Y: 10 - BLOCKSIZE: 32 - RESTART_INTERVAL: 24 - WTIME_RUN_FCST: 01:30:00 - QUILTING: true - PRINT_ESMF: false -global: - DO_ENSEMBLE: false - NUM_ENS_MEMBERS: 2 - HALO_BLEND: 0 -cpl_aqm_parm: - CPL_AQM: true - RUN_TASK_AQM_ICS: true - RUN_TASK_AQM_LBCS: true - RUN_TASK_NEXUS_GFS_SFC: true - RUN_TASK_NEXUS_EMISSION: true - RUN_TASK_FIRE_EMISSION: true - RUN_TASK_POINT_SOURCE: true - DO_AQM_CHEM_LBCS: true - DO_AQM_GEFS_LBCS: true - AQM_GEFS_CYC: 0 - AQM_CONFIG_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/epa/data - AQM_BIO_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/aqm/bio - AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf - DO_AQM_FENGSHA: true - AQM_DUST_DIR: /scratch1/RDARCH/rda-arl-gpu/Barry.Baker/emissions/nexus/FENGSHA/Online_CMAQ - AQM_DUST_FILE_PREFIX: FENGSHA_p8_10km_inputs - AQM_DUST_FILE_SUFFIX: .nc - DO_AQM_CANOPY: false - AQM_CANOPY_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/canopy - AQM_CANOPY_FILE_PREFIX: gfs.t12z.geo - AQM_CANOPY_FILE_SUFFIX: .canopy_regrid.nc - AQM_FIRE_DIR: /scratch2/NCEPDEV/naqfc/Jianping.Huang/Data/emissions/GSCE/GBBEPx.in.C775/Reprocessed - AQM_FIRE_FILE_PREFIX: Hourly_Emissions_regrid_rrfs_13km - AQM_FIRE_FILE_SUFFIX: _h72.nc - AQM_RC_FIRE_FREQUENCY: hourly - DO_AQM_PRODUCT: true - AQM_LBCS_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/LBCS/RRFS_CONUS_13km_no_blending - AQM_LBCS_FILES: gfs_bndy_chem_.tile7.000.nc - AQM_GEFS_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/GEFS_aerosol - NEXUS_INPUT_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/emissions/nexus - NEXUS_FIX_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/nexus/fix - NEXUS_GRID_FN: grid_spec_RRFS_CONUScompact_13km.nc - NUM_SPLIT_NEXUS: 1 - COLDSTART: false - WARMSTART_CYCLE_DIR: /scratch2/NCEPDEV/stmp3/Jianping.Huang/expt_dirs/uwm_aqm_cs_canopy_a/2019073112 - diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_community_aqmna13km_hera b/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera similarity index 100% rename from ush/sample_config/WE2E_test/hera/config.yaml_community_aqmna13km_hera rename to ush/sample_config_AQM/config.yaml_community_aqmna13km_hera diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_community_aqmna13km_wcoss2 b/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 similarity index 95% rename from ush/sample_config/WE2E_test/wcoss2/config.yaml_community_aqmna13km_wcoss2 rename to ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 index 42bb93b202..204777ae06 100644 --- a/ush/sample_config/WE2E_test/wcoss2/config.yaml_community_aqmna13km_wcoss2 +++ b/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 @@ -1,5 +1,5 @@ metadata: - description: config for Online-CMAQ, AQM_NA_13km, cold start, 1cycle a day, on WCOSS2 + description: config for Online-CMAQ, AQM_NA_13km, community mode on WCOSS2 user: RUN_ENVIR: community MACHINE: wcoss2 @@ -46,7 +46,7 @@ task_run_fcst: LAYOUT_Y: 34 BLOCKSIZE: 16 RESTART_INTERVAL: 6 - WTIME_RUN_FCST: 02:00:00 + WTIME_RUN_FCST: 04:00:00 QUILTING: true PRINT_ESMF: false task_run_post: diff --git a/ush/sample_config/WE2E_test/hera/config.yaml_community_gsdhrrr25km_hera b/ush/sample_config_AQM/config.yaml_community_gsdhrrr25km_hera similarity index 100% rename from ush/sample_config/WE2E_test/hera/config.yaml_community_gsdhrrr25km_hera rename to ush/sample_config_AQM/config.yaml_community_gsdhrrr25km_hera diff --git a/ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_wcoss2 b/ush/sample_config_AQM/config.yaml_nco_gsdhrrr25km_wcoss2 similarity index 100% rename from ush/sample_config/WE2E_test/wcoss2/config.yaml_nco_gsdhrrr25km_wcoss2 rename to ush/sample_config_AQM/config.yaml_nco_gsdhrrr25km_wcoss2 diff --git a/ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_wcoss2 b/ush/sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 similarity index 100% rename from ush/sample_config/EMC_run/config.yaml_nco_aqmna13km_wcoss2 rename to ush/sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 From 5863c068921cb571b297c7d94104b9ef479ce09f Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Wed, 25 Jan 2023 19:53:58 +0000 Subject: [PATCH 096/119] add missing module for pre_post_stat on hera --- .../tasks/hera/pre_post_stat.local.lua | 1 + .../config.yaml_community_aqmna13km_hera | 2 +- .../config.yaml_community_gsdhrrr25km_hera | 79 ---------------- .../config.yaml_nco_gsdhrrr25km_wcoss2 | 94 ------------------- 4 files changed, 2 insertions(+), 174 deletions(-) create mode 100644 modulefiles/tasks/hera/pre_post_stat.local.lua delete mode 100644 ush/sample_config_AQM/config.yaml_community_gsdhrrr25km_hera delete mode 100644 ush/sample_config_AQM/config.yaml_nco_gsdhrrr25km_wcoss2 diff --git a/modulefiles/tasks/hera/pre_post_stat.local.lua b/modulefiles/tasks/hera/pre_post_stat.local.lua new file mode 100644 index 0000000000..23370a8d60 --- /dev/null +++ b/modulefiles/tasks/hera/pre_post_stat.local.lua @@ -0,0 +1 @@ +load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) diff --git a/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera b/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera index b56399d931..beff48bee8 100644 --- a/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera +++ b/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera @@ -8,7 +8,7 @@ workflow: USE_CRON_TO_RELAUNCH: true CRON_RELAUNCH_INTVL_MNTS: 3 # EXPT_BASEDIR: /scratch2/NCEPDEV/stmp3/Chan-hoo.Jeon/expt_dirs - EXPT_SUBDIR: aqm_cold_aqmna13_1day + EXPT_SUBDIR: aqm_community_aqmna13 PREDEF_GRID_NAME: AQM_NA_13km CCPP_PHYS_SUITE: FV3_GFS_v16 DATE_FIRST_CYCL: '2023011700' diff --git a/ush/sample_config_AQM/config.yaml_community_gsdhrrr25km_hera b/ush/sample_config_AQM/config.yaml_community_gsdhrrr25km_hera deleted file mode 100644 index 1a5da9bf12..0000000000 --- a/ush/sample_config_AQM/config.yaml_community_gsdhrrr25km_hera +++ /dev/null @@ -1,79 +0,0 @@ -metadata: - description: config for Online-CMAQ, GSD_HRRR_25km, community mode on HERA -user: - RUN_ENVIR: community - MACHINE: hera - ACCOUNT: naqfc -workflow: - USE_CRON_TO_RELAUNCH: true - CRON_RELAUNCH_INTVL_MNTS: 3 -# EXPT_BASEDIR: /scratch2/NCEPDEV/stmp3/Chan-hoo.Jeon/expt_dirs - EXPT_SUBDIR: aqm_community_hrrr25km - PREDEF_GRID_NAME: GSD_HRRR_25km - CCPP_PHYS_SUITE: FV3_GFS_v16 - DATE_FIRST_CYCL: '2019080500' - DATE_LAST_CYCL: '2019080506' - INCR_CYCL_FREQ: 6 - FCST_LEN_HRS: -1 - FCST_LEN_CYCL: - - 6 - - 12 - PREEXISTING_DIR_METHOD: rename - VERBOSE: true - COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 -nco: - NET: aqm -workflow_switches: - RUN_TASK_MAKE_GRID: true - RUN_TASK_MAKE_OROG: true - RUN_TASK_MAKE_SFC_CLIMO: true - RUN_TASK_RUN_POST: false -task_get_extrn_ics: - EXTRN_MDL_NAME_ICS: FV3GFS -# FV3GFS_FILE_FMT_ICS: netcdf - EXTRN_MDL_ICS_OFFSET_HRS: 0 -task_get_extrn_lbcs: - EXTRN_MDL_NAME_LBCS: FV3GFS - LBC_SPEC_INTVL_HRS: 6 -# FV3GFS_FILE_FMT_LBCS: netcdf - EXTRN_MDL_LBCS_OFFSET_HRS: 0 -task_run_fcst: - RESTART_INTERVAL: 6 - WTIME_RUN_FCST: 00:30:00 - QUILTING: true - PRINT_ESMF: false -global: - DO_ENSEMBLE: false - NUM_ENS_MEMBERS: 2 - HALO_BLEND: 0 - DO_REAL_TIME: false -cpl_aqm_parm: - CPL_AQM: true - RUN_TASK_AQM_ICS: true - RUN_TASK_AQM_LBCS: true - RUN_TASK_NEXUS_GFS_SFC: false - RUN_TASK_NEXUS_EMISSION: true - RUN_TASK_FIRE_EMISSION: true - RUN_TASK_POINT_SOURCE: true - DO_AQM_CHEM_LBCS: true - DO_AQM_GEFS_LBCS: true - AQM_BIO_FILE: BEIS_SARC401.ncf - DO_AQM_DUST: false - DO_AQM_CANOPY: false - AQM_FIRE_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/emissions/GSCE/GBBEPx.in.C401/Reprocessed - AQM_FIRE_FILE_PREFIX: GBBEPx_C401GRID.emissions_v003 - AQM_FIRE_FILE_SUFFIX: .nc - AQM_RC_FIRE_FREQUENCY: static - DO_AQM_PRODUCT: true - AQM_LBCS_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/LBCS/boundary_conditions_v4 - AQM_LBCS_FILES: gfs_bndy_chem_.tile7.000.nc - AQM_GEFS_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/GEFS_aerosol - AQM_GEFS_FILE_PREFIX: gfs - AQM_GEFS_FILE_CYC: 0 - NEXUS_INPUT_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/emissions/nexus - NEXUS_FIX_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/nexus/fix - NEXUS_GRID_FN: grid_spec_GSD_HRRR_25km.nc - NUM_SPLIT_NEXUS: 2 - diff --git a/ush/sample_config_AQM/config.yaml_nco_gsdhrrr25km_wcoss2 b/ush/sample_config_AQM/config.yaml_nco_gsdhrrr25km_wcoss2 deleted file mode 100644 index 1ef3d7bc53..0000000000 --- a/ush/sample_config_AQM/config.yaml_nco_gsdhrrr25km_wcoss2 +++ /dev/null @@ -1,94 +0,0 @@ -metadata: - description: config for Online-CMAQ, GSD_HRRR_25km, NCO mode on WCOSS2 -user: - RUN_ENVIR: nco - MACHINE: wcoss2 - ACCOUNT: AQM-DEV -workflow: - USE_CRON_TO_RELAUNCH: true - CRON_RELAUNCH_INTVL_MNTS: 3 -# EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs - EXPT_SUBDIR: aqm_nco_hrrr25km - PREDEF_GRID_NAME: GSD_HRRR_25km - CCPP_PHYS_SUITE: FV3_GFS_v16 - DATE_FIRST_CYCL: '2019080500' - DATE_LAST_CYCL: '2019080506' - INCR_CYCL_FREQ: 6 - FCST_LEN_HRS: -1 - FCST_LEN_CYCL: - - 6 - - 12 - PREEXISTING_DIR_METHOD: rename - VERBOSE: true - COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 -nco: - envir: prod - NET: aqm - model_ver: v7.0 - RUN: aqm_hrrr25km -# OPSROOT: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/NCO_OUTPUT -workflow_switches: - RUN_TASK_MAKE_GRID: false - RUN_TASK_MAKE_OROG: false - RUN_TASK_MAKE_SFC_CLIMO: false - RUN_TASK_RUN_POST: false -task_make_grid: - GRID_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/DOMAIN_DATA/GSD_HRRR_25km -task_make_orog: - OROG_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/DOMAIN_DATA/GSD_HRRR_25km -task_make_sfc_climo: - SFC_CLIMO_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/DOMAIN_DATA/GSD_HRRR_25km -task_get_extrn_ics: - EXTRN_MDL_NAME_ICS: FV3GFS -# FV3GFS_FILE_FMT_ICS: netcdf - EXTRN_MDL_ICS_OFFSET_HRS: 0 -task_get_extrn_lbcs: - EXTRN_MDL_NAME_LBCS: FV3GFS - LBC_SPEC_INTVL_HRS: 6 -# FV3GFS_FILE_FMT_LBCS: netcdf - EXTRN_MDL_LBCS_OFFSET_HRS: 0 -task_run_fcst: - RESTART_INTERVAL: 6 - WTIME_RUN_FCST: 00:30:00 - QUILTING: true - PRINT_ESMF: false -global: - DO_ENSEMBLE: false - NUM_ENS_MEMBERS: 2 - HALO_BLEND: 0 - DO_REAL_TIME: false -cpl_aqm_parm: - CPL_AQM: true - RUN_TASK_AQM_ICS: true - RUN_TASK_AQM_LBCS: true - RUN_TASK_NEXUS_GFS_SFC: false - RUN_TASK_NEXUS_EMISSION: true - RUN_TASK_FIRE_EMISSION: true - RUN_TASK_POINT_SOURCE: true - RUN_TASK_PRE_POST_STAT: false - RUN_TASK_POST_STAT_O3: false - RUN_TASK_POST_STAT_PM25: false - RUN_TASK_BIAS_CORRECTION_O3: false - RUN_TASK_BIAS_CORRECTION_PM25: false - NNODES_NEXUS_EMISSION: 2 - PPN_NEXUS_EMISSION: 40 - DO_AQM_CHEM_LBCS: true - DO_AQM_GEFS_LBCS: true - AQM_BIO_FILE: BEIS_SARC401.ncf - DO_AQM_DUST: false - DO_AQM_CANOPY: false - AQM_FIRE_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/emissions/GSCE/GBBEPx.in.C401/Reprocessed - AQM_FIRE_FILE_PREFIX: GBBEPx_C401GRID.emissions_v003 - AQM_FIRE_FILE_SUFFIX: .nc - AQM_RC_FIRE_FREQUENCY: static - DO_AQM_PRODUCT: true - AQM_LBCS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/LBCS/boundary_conditions_v4 - AQM_LBCS_FILES: gfs_bndy_chem_.tile7.000.nc - AQM_GEFS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/GEFS_aerosol - AQM_GEFS_FILE_PREFIX: gfs - AQM_GEFS_FILE_CYC: 0 - NEXUS_GRID_FN: grid_spec_GSD_HRRR_25km.nc - NUM_SPLIT_NEXUS: 3 - From 7f6e21b55592ec3c1c9b02bc3e2e26cfbd5e2c13 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Wed, 1 Feb 2023 16:35:46 +0000 Subject: [PATCH 097/119] update hash of aqm-utils --- Externals.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Externals.cfg b/Externals.cfg index 8ecf73073a..a3c5628416 100644 --- a/Externals.cfg +++ b/Externals.cfg @@ -58,7 +58,7 @@ protocol = git repo_url = https://github.com/NOAA-EMC/AQM-utils # Specify either a branch name or a hash but not both. #branch = develop -hash = 81a99ca +hash = 5ee63d2 local_path = sorc/AQM-utils required = True From 1ec72e733d8f55aa6e74203598d92b702915fd0b Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Thu, 2 Feb 2023 00:40:06 +0000 Subject: [PATCH 098/119] store bias-correction training data --- scripts/exregional_bias_correction_o3.sh | 25 ++++++++++++++++++---- scripts/exregional_bias_correction_pm25.sh | 20 ++++++++++++++--- 2 files changed, 38 insertions(+), 7 deletions(-) diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index 834be680cb..cf40bdb545 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -188,6 +188,23 @@ POST_STEP cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/ozone/${yyyy} + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} +cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +cp_vrfy ${COMINairnow}/${yyyy}/${PDY}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/grid/${cyc}z/${PDY} +cp_vrfy ${COMIN}/${NET}.${cycle}.*sfc*.nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/grid/${cyc}z/${PDY} + +#exit #----------------------------------------------------------------------------- # STEP 4: Performing Bias Correction for Ozone #----------------------------------------------------------------------------- @@ -298,8 +315,8 @@ EOF1 grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" - wgrib2 ${NET}.${cycle}.max_8hr_o3_bc.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.max_8hr_o3_bc.227.grib2 - wgrib2 ${NET}.${cycle}.max_1hr_o3_bc.${id_domain}.grib2 -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.max_1hr_o3_bc.227.grib2 + wgrib2 ${NET}.${cycle}.max_8hr_o3_bc.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.max_8hr_o3_bc.227.grib2 + wgrib2 ${NET}.${cycle}.max_1hr_o3_bc.${id_domain}.grib2 -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.max_1hr_o3_bc.227.grib2 cp_vrfy ${DATA}/${NET}.${cycle}.max_*hr_o3_bc.*.grib2 ${COMOUT} @@ -368,12 +385,12 @@ newgrib2file2=${NET}.${cycle}.ave_8hr_o3_bc.227.grib2 grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" -wgrib2 tmpfile.1hr -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file1} +wgrib2 tmpfile.1hr -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${newgrib2file1} cp_vrfy tmpfile.1hr ${COMOUT}/${NET}.${cycle}.ave_1hr_o3_bc.${id_domain}.grib2 cp_vrfy ${NET}.${cycle}.ave_1hr_o3_bc.227.grib2 ${COMOUT} if [ "${cyc}" = "06" ] || [ "${cyc}" = "12" ]; then - wgrib2 tmpfile.8hr -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file2} + wgrib2 tmpfile.8hr -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${newgrib2file2} cp_vrfy tmpfile.8hr ${COMOUT}/${NET}.${cycle}.ave_8hr_o3_bc.${id_domain}.grib2 cp_vrfy ${NET}.${cycle}.ave_8hr_o3_bc.227.grib2 ${COMOUT} fi diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh index a8e3ccb53e..86827a83d0 100755 --- a/scripts/exregional_bias_correction_pm25.sh +++ b/scripts/exregional_bias_correction_pm25.sh @@ -188,6 +188,20 @@ POST_STEP cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/pm25/${yyyy} + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/pm25/${yyyy} +cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/pm25/${yyyy} + +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +cp_vrfy ${COMINairnow}/${yyyy}/${PDY}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 +cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + +#exit #----------------------------------------------------------------------- # STEP 4: Performing Bias Correction for PM2.5 #----------------------------------------------------------------------- @@ -309,11 +323,11 @@ EOF1 newgrib2file1=${NET}.${cycle}.ave_24hr_pm25_bc.227.grib2 grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" - wgrib2 ${oldgrib2file1} -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file1} + wgrib2 ${oldgrib2file1} -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${newgrib2file1} oldgrib2file2=${NET}.${cycle}.max_1hr_pm25_bc.${id_domain}.grib2 newgrib2file2=${NET}.${cycle}.max_1hr_pm25_bc.227.grib2 - wgrib2 ${oldgrib2file2} -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${newgrib2file2} + wgrib2 ${oldgrib2file2} -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${newgrib2file2} cp_vrfy ${NET}.${cycle}.max_1hr_pm25_bc.${id_domain}.grib2 ${COMOUT} cp_vrfy ${NET}.${cycle}.ave_24hr_pm25_bc.${id_domain}.grib2 ${COMOUT} @@ -334,7 +348,7 @@ while [ "${fhr}" -le "${FCST_LEN_HRS}" ]; do done grid227="lambert:265.0000:25.0000:25.0000 226.5410:1473:5079.000 12.1900:1025:5079.000" -wgrib2 tmpfile_pm25_bc -set_grib_type same -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.grib2_pm25_bc.227 +wgrib2 tmpfile_pm25_bc -set_grib_type c3b -new_grid_winds earth -new_grid ${grid227} ${NET}.${cycle}.grib2_pm25_bc.227 cp_vrfy tmpfile_pm25_bc ${COMOUT}/${NET}.${cycle}.ave_1hr_pm25_bc.${id_domain}.grib2 cp_vrfy ${NET}.${cycle}.grib2_pm25_bc.227 ${COMOUT}/${NET}.${cycle}.ave_1hr_pm25_bc.227.grib2 From 2c7928b52300e089377f0ee10037b29865a6c3cf Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Thu, 2 Feb 2023 18:25:34 +0000 Subject: [PATCH 099/119] add diag field tables for gfs_v17_p8 --- parm/diag_table_aqm.FV3_GFS_v17_p8 | 258 ++++++++ parm/field_table_aqm.FV3_GFS_v17_p8 | 993 ++++++++++++++++++++++++++++ 2 files changed, 1251 insertions(+) create mode 100644 parm/diag_table_aqm.FV3_GFS_v17_p8 create mode 100644 parm/field_table_aqm.FV3_GFS_v17_p8 diff --git a/parm/diag_table_aqm.FV3_GFS_v17_p8 b/parm/diag_table_aqm.FV3_GFS_v17_p8 new file mode 100644 index 0000000000..ed45de59e9 --- /dev/null +++ b/parm/diag_table_aqm.FV3_GFS_v17_p8 @@ -0,0 +1,258 @@ +{{ starttime.strftime("%Y%m%d.%H") }}Z.{{ cres }}.32bit.non-hydro.regional +{{ starttime.strftime("%Y %m %d %H %M %S") }} + +#output files +"grid_spec", -1, "months", 1, "days", "time" +"atmos_static", -1, "hours", 1, "hours", "time" +"fv3_history", 3, "hours", 1, "hours", "time" +"fv3_history2d", 3, "hours", 1, "hours", "time" + +# +#======================= +# ATMOSPHERE DIAGNOSTICS +#======================= +### +# grid_spec +### +"dynamics", "grid_lon", "grid_lon", "grid_spec", "all", .false., "none", 2 +"dynamics", "grid_lat", "grid_lat", "grid_spec", "all", .false., "none", 2 +"dynamics", "grid_lont", "grid_lont", "grid_spec", "all", .false., "none", 2 +"dynamics", "grid_latt", "grid_latt", "grid_spec", "all", .false., "none", 2 +"dynamics", "area", "area", "grid_spec", "all", .false., "none", 2 +### +# gfs static data +### +"dynamics", "pk", "pk", "atmos_static", "all", .false., "none", 2 +"dynamics", "bk", "bk", "atmos_static", "all", .false., "none", 2 +"dynamics", "hyam", "hyam", "atmos_static", "all", .false., "none", 2 +"dynamics", "hybm", "hybm", "atmos_static", "all", .false., "none", 2 +"dynamics", "zsurf", "zsurf", "atmos_static", "all", .false., "none", 2 +### +# FV3 variabls needed for NGGPS evaluation +### +"gfs_dyn", "ucomp", "ugrd", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "vcomp", "vgrd", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "sphum", "spfh", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "temp", "tmp", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "liq_wat", "clwmr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "o3mr", "o3mr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "delp", "dpres", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "delz", "delz", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "w", "dzdt", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "ice_wat", "icmr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "rainwat", "rwmr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "snowwat", "snmr", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "graupel", "grle", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "ps", "pressfc", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "hs", "hgtsfc", "fv3_history", "all", .false., "none", 2 + +"gfs_phys", "cldfra", "cldfra", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ALBDO_ave", "albdo_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cnvprcp_ave", "cprat_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cnvprcpb_ave", "cpratb_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "totprcp_ave", "prate_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "totprcpb_ave", "prateb_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DLWRF", "dlwrf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DLWRFI", "dlwrf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ULWRF", "ulwrf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ULWRFI", "ulwrf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DSWRF", "dswrf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DSWRFI", "dswrf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "USWRF", "uswrf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "USWRFI", "uswrf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DSWRFtoa", "dswrf_avetoa", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "USWRFtoa", "uswrf_avetoa", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ULWRFtoa", "ulwrf_avetoa", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "gflux_ave", "gflux_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "hpbl", "hpbl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "lhtfl_ave", "lhtfl_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "shtfl_ave", "shtfl_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "pwat", "pwat", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "soilm", "soilm", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_aveclm", "tcdc_aveclm", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_avebndcl", "tcdc_avebndcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_avehcl", "tcdc_avehcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_avelcl", "tcdc_avelcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDC_avemcl", "tcdc_avemcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TCDCcnvcl", "tcdccnvcl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PREScnvclt", "prescnvclt", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PREScnvclb", "prescnvclb", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avehct", "pres_avehct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avehcb", "pres_avehcb", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TEMP_avehct", "tmp_avehct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avemct", "pres_avemct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avemcb", "pres_avemcb", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TEMP_avemct", "tmp_avemct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avelct", "pres_avelct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "PRES_avelcb", "pres_avelcb", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "TEMP_avelct", "tmp_avelct", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "u-gwd_ave", "u-gwd_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "v-gwd_ave", "v-gwd_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "dusfc", "uflx_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "dvsfc", "vflx_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "psurf", "pressfc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "u10m", "ugrd10m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "v10m", "vgrd10m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "acond", "acond", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cduvb_ave", "cduvb_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cpofp", "cpofp", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "duvb_ave", "duvb_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csdlf_ave", "csdlf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csusf_ave", "csusf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csusf_avetoa", "csusftoa", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csdsf_ave", "csdsf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csulf_ave", "csulf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "csulf_avetoa", "csulftoa", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "cwork_ave", "cwork_aveclm", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "evbs_ave", "evbs_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "evcw_ave", "evcw_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "fldcp", "fldcp", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "hgt_hyblev1", "hgt_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "spfh_hyblev1", "spfh_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ugrd_hyblev1", "ugrd_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "vgrd_hyblev1", "vgrd_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "tmp_hyblev1", "tmp_hyblev1", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "gfluxi", "gflux", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "lhtfl", "lhtfl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "shtfl", "shtfl", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "pevpr", "pevpr", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "pevpr_ave", "pevpr_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "sbsno_ave", "sbsno_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "sfexc", "sfexc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "snohf", "snohf", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "snowc_ave", "snowc_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "spfhmax2m", "spfhmax_max2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "spfhmin2m", "spfhmin_min2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "tmpmax2m", "tmax_max2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "tmpmin2m", "tmin_min2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ssrun_acc", "ssrun_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "sunsd_acc", "sunsd_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "watr_acc", "watr_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "wilt", "wilt", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "vbdsf_ave", "vbdsf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "vddsf_ave", "vddsf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "nbdsf_ave", "nbdsf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "nddsf_ave", "nddsf_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "trans_ave", "trans_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "pahi", "pahi", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "pah_ave", "pah_ave", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "ecan_acc", "ecan_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "etran_acc", "etran_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "edir_acc", "edir_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "rainc", "cnvprcp", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "wa_acc", "wa_acc", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "AOD_550", "aod550", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "DU_AOD_550", "du_aod550", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "SU_AOD_550", "su_aod550", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "BC_AOD_550", "bc_aod550", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "OC_AOD_550", "oc_aod550", "fv3_history2d", "all", .false., "none", 2 +"gfs_phys", "SS_AOD_550", "ss_aod550", "fv3_history2d", "all", .false., "none", 2 + +"gfs_sfc", "crain", "crain", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tprcp", "tprcp", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "hgtsfc", "orog", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "lfrac", "lfrac", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "weasd", "weasd", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "f10m", "f10m", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "q2m", "spfh2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "t2m", "tmp2m", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tsfc", "tmpsfc", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "vtype", "vtype", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "stype", "sotyp", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slmsksfc", "land", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "vfracsfc", "veg", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "zorlsfc", "sfcr", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "uustar", "fricv", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilt1", "soilt1" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilt2", "soilt2" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilt3", "soilt3" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilt4", "soilt4" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilw1", "soilw1" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilw2", "soilw2" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilw3", "soilw3" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "soilw4", "soilw4" "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slc_1", "soill1", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slc_2", "soill2", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slc_3", "soill3", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slc_4", "soill4", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "slope", "sltyp", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "alnsf", "alnsf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "alnwf", "alnwf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "alvsf", "alvsf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "alvwf", "alvwf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "canopy", "cnwat", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "facsf", "facsf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "facwf", "facwf", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "ffhh", "ffhh", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "ffmm", "ffmm", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "fice", "icec", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "hice", "icetk", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "snoalb", "snoalb", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "shdmax", "shdmax", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "shdmin", "shdmin", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "snowd", "snod", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tg3", "tg3", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tisfc", "tisfc", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "tref", "tref", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "z_c", "zc", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "c_0", "c0", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "c_d", "cd", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "w_0", "w0", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "w_d", "wd", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xt", "xt", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xz", "xz", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "dt_cool", "dtcool", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xs", "xs", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xu", "xu", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xv", "xv", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xtts", "xtts", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "xzts", "xzts", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "d_conv", "dconv", "fv3_history2d", "all", .false., "none", 2 +"gfs_sfc", "qrain", "qrain", "fv3_history2d", "all", .false., "none", 2 + +### +# chemical tracers advected by FV3 +### +"gfs_dyn", "o3_ave", "o3_ave", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "no_ave", "no_ave", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "no2_ave", "no2_ave", "fv3_history", "all", .false., "none", 2 +"gfs_dyn", "pm25_ave", "pm25_ave", "fv3_history", "all", .false., "none", 2 + +### +# aerosol diagnostics +### +"gfs_phys", "aod", "aod", "fv3_history2d", "all", .false., "none", 2 + +#============================================================================================= +# +#====> This file can be used with diag_manager/v2.0a (or higher) <==== +# +# +# FORMATS FOR FILE ENTRIES (not all input values are used) +# ------------------------ +# +#"file_name", output_freq, "output_units", format, "time_units", "long_name", +# +# +#output_freq: > 0 output frequency in "output_units" +# = 0 output frequency every time step +# =-1 output frequency at end of run +# +#output_units = units used for output frequency +# (years, months, days, minutes, hours, seconds) +# +#time_units = units used to label the time axis +# (days, minutes, hours, seconds) +# +# +# FORMAT FOR FIELD ENTRIES (not all input values are used) +# ------------------------ +# +#"module_name", "field_name", "output_name", "file_name" "time_sampling", time_avg, "other_opts", packing +# +#time_avg = .true. or .false. +# +#packing = 1 double precision +# = 2 float +# = 4 packed 16-bit integers +# = 8 packed 1-byte (not tested?) diff --git a/parm/field_table_aqm.FV3_GFS_v17_p8 b/parm/field_table_aqm.FV3_GFS_v17_p8 new file mode 100644 index 0000000000..2a628c3be9 --- /dev/null +++ b/parm/field_table_aqm.FV3_GFS_v17_p8 @@ -0,0 +1,993 @@ +# added by FRE: sphum must be present in atmos +# specific humidity for moist runs + "TRACER", "atmos_mod", "sphum" + "longname", "specific humidity" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=3.e-6" / +# prognostic cloud water mixing ratio + "TRACER", "atmos_mod", "liq_wat" + "longname", "cloud water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic ice water mixing ratio + "TRACER", "atmos_mod", "ice_wat" + "longname", "cloud ice mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic rain water mixing ratio + "TRACER", "atmos_mod", "rainwat" + "longname", "rain water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic snow water mixing ratio + "TRACER", "atmos_mod", "snowwat" + "longname", "snow water mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic Grau water mixing ratio + "TRACER", "atmos_mod", "graupel" + "longname", "graupel mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic cloud ice number concentration + "TRACER", "atmos_mod", "ice_nc" + "longname", "cloud ice water number concentration" + "units", "/kg" + "profile_type", "fixed", "surface_value=0.0" / +# prognostic rain number concentration + "TRACER", "atmos_mod", "rain_nc" + "longname", "rain number concentration" + "units", "/kg" + "profile_type", "fixed", "surface_value=0.0" / +# prognostic ozone mixing ratio tracer + "TRACER", "atmos_mod", "o3mr" + "longname", "ozone mixing ratio" + "units", "kg/kg" + "profile_type", "fixed", "surface_value=1.e30" / +# prognostic subgrid scale turbulent kinetic energy + "TRACER", "atmos_mod", "sgs_tke" + "longname", "subgrid scale turbulent kinetic energy" + "units", "m2/s2" + "profile_type", "fixed", "surface_value=0.0" / +# prognostic air quality tracers + "TRACER", "atmos_mod", "NO2" + "longname", "NO2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "NO" + "longname", "NO" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "O3" + "longname", "O3" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "NO3" + "longname", "NO3" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "H2O2" + "longname", "H2O2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "N2O5" + "longname", "N2O5" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "HNO3" + "longname", "HNO3" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "HONO" + "longname", "HONO" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "PNA" + "longname", "PNA" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SO2" + "longname", "SO2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SULF" + "longname", "SULF" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "PAN" + "longname", "PAN" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "PACD" + "longname", "PACD" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AACD" + "longname", "AACD" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ALD2" + "longname", "ALD2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "PANX" + "longname", "PANX" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "FORM" + "longname", "FORM" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "MEPX" + "longname", "MEPX" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "MEOH" + "longname", "MEOH" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ROOH" + "longname", "ROOH" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "NTR1" + "longname", "NTR1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "NTR2" + "longname", "NTR2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "FACD" + "longname", "FACD" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "CO" + "longname", "CO" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ALDX" + "longname", "ALDX" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "GLYD" + "longname", "GLYD" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "GLY" + "longname", "GLY" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "MGLY" + "longname", "MGLY" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ETHA" + "longname", "ETHA" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ETOH" + "longname", "ETOH" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "KET" + "longname", "KET" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "PAR" + "longname", "PAR" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ACET" + "longname", "ACET" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "PRPA" + "longname", "PRPA" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ETHY" + "longname", "ETHY" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ETH" + "longname", "ETH" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "OLE" + "longname", "OLE" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "IOLE" + "longname", "IOLE" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ISOP" + "longname", "ISOP" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ISPD" + "longname", "ISPD" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "INTR" + "longname", "INTR" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ISPX" + "longname", "ISPX" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "HPLD" + "longname", "HPLD" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "OPO3" + "longname", "OPO3" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "EPOX" + "longname", "EPOX" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "TERP" + "longname", "TERP" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "BENZENE" + "longname", "BENZENE" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "CRES" + "longname", "CRES" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "OPEN" + "longname", "OPEN" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "TOL" + "longname", "TOL" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "XOPN" + "longname", "XOPN" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "XYLMN" + "longname", "XYLMN" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "NAPH" + "longname", "NAPH" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "CAT1" + "longname", "CAT1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "CRON" + "longname", "CRON" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "OPAN" + "longname", "OPAN" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ECH4" + "longname", "ECH4" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "CL2" + "longname", "CL2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "HOCL" + "longname", "HOCL" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "FMCL" + "longname", "FMCL" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "HCL" + "longname", "HCL" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "CLNO2" + "longname", "CLNO2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SESQ" + "longname", "SESQ" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SOAALK" + "longname", "SOAALK" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VLVPO1" + "longname", "VLVPO1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VSVPO1" + "longname", "VSVPO1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VSVPO2" + "longname", "VSVPO2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VSVPO3" + "longname", "VSVPO3" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VIVPO1" + "longname", "VIVPO1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VLVOO1" + "longname", "VLVOO1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VLVOO2" + "longname", "VLVOO2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VSVOO1" + "longname", "VSVOO1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VSVOO2" + "longname", "VSVOO2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "VSVOO3" + "longname", "VSVOO3" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "PCVOC" + "longname", "PCVOC" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "FORM_PRIMARY" + "longname", "FORM_PRIMARY" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ALD2_PRIMARY" + "longname", "ALD2_PRIMARY" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "BUTADIENE13" + "longname", "BUTADIENE13" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ACROLEIN" + "longname", "ACROLEIN" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ACRO_PRIMARY" + "longname", "ACRO_PRIMARY" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "TOLU" + "longname", "TOLU" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "HG" + "longname", "HG" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "HGIIGAS" + "longname", "HGIIGAS" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASO4J" + "longname", "ASO4J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASO4I" + "longname", "ASO4I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ANH4J" + "longname", "ANH4J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ANH4I" + "longname", "ANH4I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ANO3J" + "longname", "ANO3J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ANO3I" + "longname", "ANO3I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AALK1J" + "longname", "AALK1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AALK2J" + "longname", "AALK2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AXYL1J" + "longname", "AXYL1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AXYL2J" + "longname", "AXYL2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AXYL3J" + "longname", "AXYL3J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ATOL1J" + "longname", "ATOL1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ATOL2J" + "longname", "ATOL2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ATOL3J" + "longname", "ATOL3J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ABNZ1J" + "longname", "ABNZ1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ABNZ2J" + "longname", "ABNZ2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ABNZ3J" + "longname", "ABNZ3J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "APAH1J" + "longname", "APAH1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "APAH2J" + "longname", "APAH2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "APAH3J" + "longname", "APAH3J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ATRP1J" + "longname", "ATRP1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ATRP2J" + "longname", "ATRP2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AISO1J" + "longname", "AISO1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AISO2J" + "longname", "AISO2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASQTJ" + "longname", "ASQTJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AORGCJ" + "longname", "AORGCJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AECJ" + "longname", "AECJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AECI" + "longname", "AECI" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AOTHRJ" + "longname", "AOTHRJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AOTHRI" + "longname", "AOTHRI" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AFEJ" + "longname", "AFEJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AALJ" + "longname", "AALJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASIJ" + "longname", "ASIJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ATIJ" + "longname", "ATIJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ACAJ" + "longname", "ACAJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AMGJ" + "longname", "AMGJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AKJ" + "longname", "AKJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AMNJ" + "longname", "AMNJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ACORS" + "longname", "ACORS" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASOIL" + "longname", "ASOIL" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "NUMATKN" + "longname", "NUMATKN" + "units", "num/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "NUMACC" + "longname", "NUMACC" + "units", "num/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "NUMCOR" + "longname", "NUMCOR" + "units", "num/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SRFATKN" + "longname", "SRFATKN" + "units", "m2/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SRFACC" + "longname", "SRFACC" + "units", "m2/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SRFCOR" + "longname", "SRFCOR" + "units", "m2/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AH2OJ" + "longname", "AH2OJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AH2OI" + "longname", "AH2OI" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AH3OPJ" + "longname", "AH3OPJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AH3OPI" + "longname", "AH3OPI" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ANAJ" + "longname", "ANAJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ANAI" + "longname", "ANAI" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ACLJ" + "longname", "ACLJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ACLI" + "longname", "ACLI" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASEACAT" + "longname", "ASEACAT" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ACLK" + "longname", "ACLK" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASO4K" + "longname", "ASO4K" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ANH4K" + "longname", "ANH4K" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ANO3K" + "longname", "ANO3K" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AH2OK" + "longname", "AH2OK" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AH3OPK" + "longname", "AH3OPK" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AISO3J" + "longname", "AISO3J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AOLGAJ" + "longname", "AOLGAJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AOLGBJ" + "longname", "AOLGBJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AGLYJ" + "longname", "AGLYJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "APCSOJ" + "longname", "APCSOJ" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ALVPO1I" + "longname", "ALVPO1I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVPO1I" + "longname", "ASVPO1I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVPO2I" + "longname", "ASVPO2I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ALVPO1J" + "longname", "ALVPO1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVPO1J" + "longname", "ASVPO1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVPO2J" + "longname", "ASVPO2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVPO3J" + "longname", "ASVPO3J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "AIVPO1J" + "longname", "AIVPO1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ALVOO1I" + "longname", "ALVOO1I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ALVOO2I" + "longname", "ALVOO2I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVOO1I" + "longname", "ASVOO1I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVOO2I" + "longname", "ASVOO2I" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ALVOO1J" + "longname", "ALVOO1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ALVOO2J" + "longname", "ALVOO2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVOO1J" + "longname", "ASVOO1J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVOO2J" + "longname", "ASVOO2J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "ASVOO3J" + "longname", "ASVOO3J" + "units", "ug/kg" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "NH3" + "longname", "NH3" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_ALK1" + "longname", "SV_ALK1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_ALK2" + "longname", "SV_ALK2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_XYL1" + "longname", "SV_XYL1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_XYL2" + "longname", "SV_XYL2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_TOL1" + "longname", "SV_TOL1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_TOL2" + "longname", "SV_TOL2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_BNZ1" + "longname", "SV_BNZ1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_BNZ2" + "longname", "SV_BNZ2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_PAH1" + "longname", "SV_PAH1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_PAH2" + "longname", "SV_PAH2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_TRP1" + "longname", "SV_TRP1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_TRP2" + "longname", "SV_TRP2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_ISO1" + "longname", "SV_ISO1" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_ISO2" + "longname", "SV_ISO2" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "SV_SQT" + "longname", "SV_SQT" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / + "TRACER", "atmos_mod", "LV_PCSOG" + "longname", "LV_PCSOG" + "units", "ppmV" + "tracer_usage", "chemistry" + "profile_type", "fixed", "surface_value=1.e-7" / +# diagnostic air quality tracers + "TRACER", "atmos_mod", "PM25AT" + "longname", "PM2.5 fraction of Aitken mode" + "units", "1" + "tracer_usage", "chemistry", "type=diagnostic" + "profile_type", "fixed", "surface_value=0.0" / + "TRACER", "atmos_mod", "PM25AC" + "longname", "PM2.5 fraction of accumulation mode" + "units", "1" + "tracer_usage", "chemistry", "type=diagnostic" + "profile_type", "fixed", "surface_value=0.0" / + "TRACER", "atmos_mod", "PM25CO" + "longname", "PM2.5 fraction of coarse mode" + "units", "1" + "tracer_usage", "chemistry", "type=diagnostic" + "profile_type", "fixed", "surface_value=0.0" / +"TRACER", "atmos_mod", "PM25_TOT" + "longname", "PM 2.5 from AQM model" + "units", "ug/m3" + "tracer_usage", "chemistry", "type=diagnostic" + "profile_type", "fixed", "surface_value=0.0" / +# non-prognostic cloud amount + "TRACER", "atmos_mod", "cld_amt" + "longname", "cloud amount" + "units", "1" + "profile_type", "fixed", "surface_value=1.e30" / From 08020625fddf54ec91c9ccf0cee4deb71868fd76 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Thu, 2 Feb 2023 21:40:02 +0000 Subject: [PATCH 100/119] add gfs_v17_p8 to scripts --- parm/FV3.input.yml | 1 - ush/generate_FV3LAM_wflow.py | 14 +++++++++++++- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/parm/FV3.input.yml b/parm/FV3.input.yml index db5b927480..89a770ed48 100644 --- a/parm/FV3.input.yml +++ b/parm/FV3.input.yml @@ -360,7 +360,6 @@ FV3_GFS_v16: hord_dp: -5 hord_mt: 5 hord_tm: 5 - hord_tr: 8 hord_vt: 5 k_split: 6 make_nh: False diff --git a/ush/generate_FV3LAM_wflow.py b/ush/generate_FV3LAM_wflow.py index 5333b33a5a..aa94a5c113 100755 --- a/ush/generate_FV3LAM_wflow.py +++ b/ush/generate_FV3LAM_wflow.py @@ -464,12 +464,24 @@ def generate_FV3LAM_wflow(ushdir, logfile: str = "log.generate_FV3LAM_wflow") -> CCPP_PHYS_SUITE == "FV3_GFS_v16" ): if CPL_AQM: fv_core_nml_dict.update({ - "dnats": 5 + "hord_tr": 8, + "dnats": 5, + "nord": 2 }) else: fv_core_nml_dict.update({ "dnats": 1 }) + elif CCPP_PHYS_SUITE == "FV3_GFS_v17_p8": + if CPL_AQM: + fv_core_nml_dict.update({ + "dnats": 5 + }) + else: + fv_core_nml_dict.update({ + "dnats": 0 + }) + settings["fv_core_nml"] = fv_core_nml_dict gfs_physics_nml_dict = {} From 1e8787be107c37ca378ae15a8d2cb0f73b95b8ce Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Thu, 2 Feb 2023 21:48:34 +0000 Subject: [PATCH 101/119] separate gfs_v16 from update --- parm/FV3.input.yml | 1 - ush/generate_FV3LAM_wflow.py | 12 ++++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/parm/FV3.input.yml b/parm/FV3.input.yml index 89a770ed48..72300837a8 100644 --- a/parm/FV3.input.yml +++ b/parm/FV3.input.yml @@ -365,7 +365,6 @@ FV3_GFS_v16: make_nh: False n_split: 6 n_sponge: 10 - nord: 2 na_init: 0 nudge_dz: False res_latlon_dynamics: '' diff --git a/ush/generate_FV3LAM_wflow.py b/ush/generate_FV3LAM_wflow.py index aa94a5c113..e11dc0b245 100755 --- a/ush/generate_FV3LAM_wflow.py +++ b/ush/generate_FV3LAM_wflow.py @@ -460,8 +460,16 @@ def generate_FV3LAM_wflow(ushdir, logfile: str = "log.generate_FV3LAM_wflow") -> }) if ( CCPP_PHYS_SUITE == "FV3_GFS_2017_gfdl_mp" or CCPP_PHYS_SUITE == "FV3_GFS_2017_gfdlmp_regional" or - CCPP_PHYS_SUITE == "FV3_GFS_v15p2" or - CCPP_PHYS_SUITE == "FV3_GFS_v16" ): + CCPP_PHYS_SUITE == "FV3_GFS_v15p2" ): + if CPL_AQM: + fv_core_nml_dict.update({ + "dnats": 5 + }) + else: + fv_core_nml_dict.update({ + "dnats": 1 + }) + elif CCPP_PHYS_SUITE == "FV3_GFS_v16": if CPL_AQM: fv_core_nml_dict.update({ "hord_tr": 8, From 277ce48508196e3f0cc98048f59ab850495e6d6d Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Thu, 2 Feb 2023 22:39:57 +0000 Subject: [PATCH 102/119] add gfs_v17_p8 to build list --- sorc/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sorc/CMakeLists.txt b/sorc/CMakeLists.txt index 8139c35a8b..be89fede73 100644 --- a/sorc/CMakeLists.txt +++ b/sorc/CMakeLists.txt @@ -32,7 +32,7 @@ if (BUILD_UFS) if(NOT CCPP_SUITES) if(CPL_AQM) - set(CCPP_SUITES "FV3_GFS_v15p2,FV3_GFS_v16") + set(CCPP_SUITES "FV3_GFS_v15p2,FV3_GFS_v16,FV3_GFS_v17_p8") else() set(CCPP_SUITES "FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GFS_v15p2,FV3_GFS_v16,FV3_RRFS_v1beta,FV3_HRRR,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0") endif() From 004d76393472c48d8d4d17e42fd3a2d0e6333de4 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Fri, 3 Feb 2023 13:47:08 +0000 Subject: [PATCH 103/119] add gfs_v17_p8 to scripts --- parm/FV3.input.yml | 123 ++++++++++++++++++ scripts/exregional_make_ics.sh | 1 + scripts/exregional_make_lbcs.sh | 1 + scripts/exregional_make_orog.sh | 2 +- scripts/exregional_run_fcst.sh | 2 +- ush/config_defaults.yaml | 2 +- ush/link_fix.py | 2 +- .../config.yaml_community_aqmna13km_hera | 15 ++- .../config.yaml_community_aqmna13km_wcoss2 | 6 +- .../config.yaml_nco_realtime_aqmna13km_wcoss2 | 4 +- ush/valid_param_vals.yaml | 1 + 11 files changed, 143 insertions(+), 16 deletions(-) diff --git a/parm/FV3.input.yml b/parm/FV3.input.yml index 72300837a8..3a9e623c4b 100644 --- a/parm/FV3.input.yml +++ b/parm/FV3.input.yml @@ -411,3 +411,126 @@ FV3_GFS_v16: ldebug: False surf_map_nml: !!python/none +FV3_GFS_v17_p8: + cires_ugwp_nml: + launch_level: 27 + fv_core_nml: + <<: *gfs_v15_fv_core + agrid_vel_rst: True + d2_bg_k1: 0.2 + d2_bg_k2: 0.04 + delt_max: 0.002 + dnats: 0 + do_sat_adj: False + do_vort_damp: !!python/none + full_zs_filter: !!python/none + fv_sg_adj: 450 + hord_dp: -5 + hord_mt: 5 + hord_tm: 5 + hord_vt: 5 + hord_tr: 8 + k_split: 2 + n_split: 6 + n_sponge: 42 + nord: 2 + nudge_dz: False + n_zs_filter: !!python/none + range_warn: True + res_latlon_dynamics: '' + rf_fast: !!python/none + tau: 10.0 + gfdl_cloud_microphysics_nml: + <<: *gfs_gfdl_cloud_mp + mp_time: 150.0 + reiflag: 2 + rthresh: 1.0e-06 + sedi_transport: True + tau_l2v: 225.0 + tau_v2l: 150.0 + gfs_physics_nml: + <<: *gfs_v15_gfs_physics + active_gases: h2o_co2_o3_n2o_ch4_o2 + bl_mynn_edmf: 1 + bl_mynn_edmf_mom: 1 + bl_mynn_tkeadvect: True + cdmbgwd: [4.0, 0.15, 1.0, 1.0] + cplchm: False + decfl: 10 + do_gsl_drag_ls_bl: False + do_gsl_drag_ss: True + do_gsl_drag_tofd: False + do_myjpbl: !!python/none + do_myjsfc: !!python/none + do_mynnedmf: False + do_mynnsfclay: False + do_RRTMGP: False + do_ugwp_v0: True + do_ugwp_v0_nst_only: False + do_ugwp_v0_orog_only: False + do_ugwp_v1: False + do_ugwp_v1_orog_only: False + do_ysu: !!python/none + doGP_cldoptics_LUT: False + doGP_lwscat: False + dt_inner: 150 + fhzero: 6 + frac_grid: True + gwd_opt: 2 + hybedmf: False + iaer: 1011 + ialb: 2 + iau_inc_files: !!python/none + icloud_bl: 1 + icliq_sw: 2 + iems: 2 + imp_physics: 8 + iopt_alb: 1 + iopt_crs: 2 + iopt_dveg: 4 + iopt_rad: 3 + iopt_sfc: 3 + iopt_stc: 3 + iovr: 3 + isatmedmf: 1 + ldiag_ugwp: !!python/none + lgfdlmprad: False + lradar: False + lseaspray: True + lsm: 2 + lsoil: 4 + lsoil_lsm: 4 + ltaerosol: False + lw_file_clouds: rrtmgp-cloud-optics-coeffs-lw.nc + lw_file_gas: rrtmgp-data-lw-g128-210809.nc + min_lakeice: 0.15 + min_seaice: 0.15 + nsradar_reset: !!python/none + nstf_name: [2, 0, 0, 0, 0] + prautco: [0.00015, 0.00015] + psautco: [0.0008, 0.0005] + qdiag3d: False + ras: False + rrtmgp_nBandsLW: 16 + rrtmgp_nBandsSW: 14 + rrtmgp_nGptsLW: 128 + rrtmgp_nGptsSW: 112 + satmedmf: True + sedi_semi: True + sfclay_compute_flux: !!python/none + shinhong: !!python/none + sw_file_clouds: rrtmgp-cloud-optics-coeffs-sw.nc + sw_file_gas: rrtmgp-data-sw-g112-210809.nc + ttendlim: -999 + xkzminv: !!python/none + xkzm_m: !!python/none + xkzm_h: !!python/none + mpp_io_nml: + deflate_level: 1 + shuffle: 1 + namsfc: + fsicl: 0 + fsics: 0 + landice: False + ldebug: False + surf_map_nml: !!python/none diff --git a/scripts/exregional_make_ics.sh b/scripts/exregional_make_ics.sh index 181f705a4a..e7e03b1465 100755 --- a/scripts/exregional_make_ics.sh +++ b/scripts/exregional_make_ics.sh @@ -124,6 +124,7 @@ case "${CCPP_PHYS_SUITE}" in # "FV3_RRFS_v1beta" | \ "FV3_GFS_v15_thompson_mynn_lam3km" | \ + "FV3_GFS_v17_p8" | \ "FV3_WoFS_v0" | \ "FV3_HRRR" ) if [ "${EXTRN_MDL_NAME_ICS}" = "RAP" ] || \ diff --git a/scripts/exregional_make_lbcs.sh b/scripts/exregional_make_lbcs.sh index e281ae5eaf..44193d6d91 100755 --- a/scripts/exregional_make_lbcs.sh +++ b/scripts/exregional_make_lbcs.sh @@ -135,6 +135,7 @@ case "${CCPP_PHYS_SUITE}" in # "FV3_RRFS_v1beta" | \ "FV3_GFS_v15_thompson_mynn_lam3km" | \ + "FV3_GFS_v17_p8" | \ "FV3_WoFS_v0" | \ "FV3_HRRR" ) if [ "${EXTRN_MDL_NAME_LBCS}" = "RAP" ] || \ diff --git a/scripts/exregional_make_orog.sh b/scripts/exregional_make_orog.sh index 0a61eb3f03..99da64c4b6 100755 --- a/scripts/exregional_make_orog.sh +++ b/scripts/exregional_make_orog.sh @@ -244,7 +244,7 @@ mv_vrfy "${raw_orog_fp_orig}" "${raw_orog_fp}" # #----------------------------------------------------------------------- # -if [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR" ]; then +if [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR" ] || [ "${CCPP_PHYS_SUITE}" = "FV3_GFS_v17_p8" ]; then DATA="${DATA:-${OROG_DIR}/temp_orog_data}" mkdir_vrfy -p ${DATA} cd_vrfy ${DATA} diff --git a/scripts/exregional_run_fcst.sh b/scripts/exregional_run_fcst.sh index 865965ab49..b83832710f 100755 --- a/scripts/exregional_run_fcst.sh +++ b/scripts/exregional_run_fcst.sh @@ -204,7 +204,7 @@ create_symlink_to_file target="$target" symlink="$symlink" \ # that the FV3 model is hardcoded to recognize, and those are the names # we use below. # -if [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR" ]; then +if [ "${CCPP_PHYS_SUITE}" = "FV3_HRRR" ] || [ "${CCPP_PHYS_SUITE}" = "FV3_GFS_v17_p8" ]; then fileids=( "ss" "ls" ) for fileid in "${fileids[@]}"; do diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index c7c6ee2b25..403e74b6c2 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -1852,7 +1852,7 @@ task_run_fcst: # #----------------------------------------------------------------------- # - USE_MERRA_CLIMO: '{{ workflow.CCPP_PHYS_SUITE == "FV3_GFS_v15_thompson_mynn_lam3km" }}' + USE_MERRA_CLIMO: '{{ workflow.CCPP_PHYS_SUITE == "FV3_GFS_v15_thompson_mynn_lam3km" or workflow.CCPP_PHYS_SUITE == "FV3_GFS_v17_p8" }}' #---------------------------- # POST config parameters diff --git a/ush/link_fix.py b/ush/link_fix.py index 0351c7a7d2..71454dde54 100755 --- a/ush/link_fix.py +++ b/ush/link_fix.py @@ -208,7 +208,7 @@ def link_fix( f"C*{dot_or_uscore}oro_data.tile{tile_rgnl}.halo{nh0}.nc", f"C*{dot_or_uscore}oro_data.tile{tile_rgnl}.halo{nh4}.nc", ] - if ccpp_phys_suite == "FV3_HRRR": + if ccpp_phys_suite == "FV3_HRRR" or ccpp_phys_suite == "FV3_GFS_v17_p8": fns += [ f"C*{dot_or_uscore}oro_data_ss.tile{tile_rgnl}.halo{nh0}.nc", f"C*{dot_or_uscore}oro_data_ls.tile{tile_rgnl}.halo{nh0}.nc", diff --git a/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera b/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera index beff48bee8..ae5491ffc1 100644 --- a/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera +++ b/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera @@ -10,19 +10,20 @@ workflow: # EXPT_BASEDIR: /scratch2/NCEPDEV/stmp3/Chan-hoo.Jeon/expt_dirs EXPT_SUBDIR: aqm_community_aqmna13 PREDEF_GRID_NAME: AQM_NA_13km - CCPP_PHYS_SUITE: FV3_GFS_v16 + CCPP_PHYS_SUITE: FV3_GFS_v17_p8 DATE_FIRST_CYCL: '2023011700' DATE_LAST_CYCL: '2023011706' INCR_CYCL_FREQ: 6 - FCST_LEN_HRS: -1 - FCST_LEN_CYCL: - - 6 - - 12 + FCST_LEN_HRS: 6 +# FCST_LEN_HRS: -1 +# FCST_LEN_CYCL: +# - 6 +# - 12 PREEXISTING_DIR_METHOD: rename VERBOSE: true COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 + DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v17_p8 + FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v17_p8 nco: NET: aqm workflow_switches: diff --git a/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 b/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 index 204777ae06..df507e18ba 100644 --- a/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 +++ b/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 @@ -10,7 +10,7 @@ workflow: # EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs EXPT_SUBDIR: aqm_community_aqmna13 PREDEF_GRID_NAME: AQM_NA_13km - CCPP_PHYS_SUITE: FV3_GFS_v16 + CCPP_PHYS_SUITE: FV3_GFS_v17_p8 DATE_FIRST_CYCL: '2023011700' DATE_LAST_CYCL: '2023011706' INCR_CYCL_FREQ: 6 @@ -21,8 +21,8 @@ workflow: PREEXISTING_DIR_METHOD: rename VERBOSE: true COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 + DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v17_p8 + FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v17_p8 nco: envir: prod NET: aqm diff --git a/ush/sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 b/ush/sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 index 5143b2f52f..5ea9c6be88 100644 --- a/ush/sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 +++ b/ush/sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 @@ -11,8 +11,8 @@ workflow: EXPT_SUBDIR: aqm_nco_aqmna13km PREDEF_GRID_NAME: AQM_NA_13km CCPP_PHYS_SUITE: FV3_GFS_v16 - DATE_FIRST_CYCL: '2023011700' - DATE_LAST_CYCL: '2023011718' + DATE_FIRST_CYCL: '2023013000' + DATE_LAST_CYCL: '2023013018' INCR_CYCL_FREQ: 6 FCST_LEN_HRS: -1 FCST_LEN_CYCL: diff --git a/ush/valid_param_vals.yaml b/ush/valid_param_vals.yaml index cbfcc83e95..d397e1423c 100644 --- a/ush/valid_param_vals.yaml +++ b/ush/valid_param_vals.yaml @@ -41,6 +41,7 @@ valid_vals_CCPP_PHYS_SUITE: [ "FV3_GFS_v15p2", "FV3_GFS_v15_thompson_mynn_lam3km", "FV3_GFS_v16", +"FV3_GFS_v17_p8", "FV3_RRFS_v1beta", "FV3_WoFS_v0", "FV3_HRRR" From bc044851a8e0e8c2a0f783032184a17b5ae63cf6 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Tue, 7 Feb 2023 18:29:39 +0000 Subject: [PATCH 104/119] update field_table for gfs_v17_p8 --- parm/field_table_aqm.FV3_GFS_v17_p8 | 7 +------ ush/generate_FV3LAM_wflow.py | 2 +- 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/parm/field_table_aqm.FV3_GFS_v17_p8 b/parm/field_table_aqm.FV3_GFS_v17_p8 index 2a628c3be9..887e34cb18 100644 --- a/parm/field_table_aqm.FV3_GFS_v17_p8 +++ b/parm/field_table_aqm.FV3_GFS_v17_p8 @@ -981,13 +981,8 @@ "units", "1" "tracer_usage", "chemistry", "type=diagnostic" "profile_type", "fixed", "surface_value=0.0" / -"TRACER", "atmos_mod", "PM25_TOT" + "TRACER", "atmos_mod", "PM25_TOT" "longname", "PM 2.5 from AQM model" "units", "ug/m3" "tracer_usage", "chemistry", "type=diagnostic" "profile_type", "fixed", "surface_value=0.0" / -# non-prognostic cloud amount - "TRACER", "atmos_mod", "cld_amt" - "longname", "cloud amount" - "units", "1" - "profile_type", "fixed", "surface_value=1.e30" / diff --git a/ush/generate_FV3LAM_wflow.py b/ush/generate_FV3LAM_wflow.py index e11dc0b245..67032eb87e 100755 --- a/ush/generate_FV3LAM_wflow.py +++ b/ush/generate_FV3LAM_wflow.py @@ -483,7 +483,7 @@ def generate_FV3LAM_wflow(ushdir, logfile: str = "log.generate_FV3LAM_wflow") -> elif CCPP_PHYS_SUITE == "FV3_GFS_v17_p8": if CPL_AQM: fv_core_nml_dict.update({ - "dnats": 5 + "dnats": 4 }) else: fv_core_nml_dict.update({ From 466f80bd5004831bf50c97c4073714ecc8e3eaa1 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Tue, 7 Feb 2023 19:44:55 +0000 Subject: [PATCH 105/119] reduce n_sponge for gfs_v17_p8 --- parm/FV3.input.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/FV3.input.yml b/parm/FV3.input.yml index 3a9e623c4b..716088db1d 100644 --- a/parm/FV3.input.yml +++ b/parm/FV3.input.yml @@ -432,7 +432,7 @@ FV3_GFS_v17_p8: hord_tr: 8 k_split: 2 n_split: 6 - n_sponge: 42 + n_sponge: 10 nord: 2 nudge_dz: False n_zs_filter: !!python/none From 3d1e9a1ae3fe4b5dfe9214f013e59b6eab6e4627 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Wed, 8 Feb 2023 18:09:55 +0000 Subject: [PATCH 106/119] increase k_split for 3km domain --- parm/FV3.input.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/parm/FV3.input.yml b/parm/FV3.input.yml index 716088db1d..88a284db97 100644 --- a/parm/FV3.input.yml +++ b/parm/FV3.input.yml @@ -430,7 +430,7 @@ FV3_GFS_v17_p8: hord_tm: 5 hord_vt: 5 hord_tr: 8 - k_split: 2 + k_split: 6 n_split: 6 n_sponge: 10 nord: 2 From 73d9c1371f43f8daf35fb22fb9e8de6ca448c52c Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Wed, 8 Feb 2023 19:10:18 +0000 Subject: [PATCH 107/119] add missing endif --- sorc/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/sorc/CMakeLists.txt b/sorc/CMakeLists.txt index 9553ae7c95..4d2bb4d872 100644 --- a/sorc/CMakeLists.txt +++ b/sorc/CMakeLists.txt @@ -35,6 +35,7 @@ if (BUILD_UFS) set(CCPP_SUITES "FV3_GFS_v15p2,FV3_GFS_v16,FV3_GFS_v17_p8") else() set(CCPP_SUITES "FV3_GFS_2017_gfdlmp,FV3_GFS_2017_gfdlmp_regional,FV3_GFS_v15p2,FV3_GFS_v16,FV3_GFS_v17_p8,FV3_RRFS_v1beta,FV3_HRRR,FV3_GFS_v15_thompson_mynn_lam3km,FV3_WoFS_v0") + endif() endif() if(NOT APP) From 5c563dccffdc18da7a64caaedfc3f7ae41ae6bb6 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Fri, 10 Feb 2023 12:34:01 +0000 Subject: [PATCH 108/119] add ccpp option to aqm.rc --- parm/aqm.rc | 5 +++++ ush/create_aqm_rc_file.py | 1 + 2 files changed, 6 insertions(+) diff --git a/parm/aqm.rc b/parm/aqm.rc index f0e25a2a6c..d827a761a5 100644 --- a/parm/aqm.rc +++ b/parm/aqm.rc @@ -20,8 +20,13 @@ init_concentrations: {{ init_concentrations | lower }} run_aerosol: true +{%- if ccpp_phys_suite in ["FV3_GFS_v15p2", "FV3_GFS_v16"] %} mp_tracer_map: gfdl dy_tracer_map_start: 9 +{%- elif ccpp_phys_suite in ["FV3_GFS_v17_p8"] %} +mp_tracer_map: thompson +dy_tracer_map_start: 11 +{%- endif %} ctm_aod: true ctm_pmdiag: true diff --git a/ush/create_aqm_rc_file.py b/ush/create_aqm_rc_file.py index 92b4ea49f2..733449514e 100644 --- a/ush/create_aqm_rc_file.py +++ b/ush/create_aqm_rc_file.py @@ -82,6 +82,7 @@ def create_aqm_rc_file(cdate, run_dir, init_concentrations): "do_aqm_dust": DO_AQM_DUST, "do_aqm_canopy": DO_AQM_CANOPY, "do_aqm_product": DO_AQM_PRODUCT, + "ccpp_phys_suite": CCPP_PHYS_SUITE, "aqm_config_dir": AQM_CONFIG_DIR, "init_concentrations": init_concentrations, "aqm_rc_bio_file_fp": aqm_rc_bio_file_fp, From 7ff71575923190deee7d9b3d73ee21c3d7de4762 Mon Sep 17 00:00:00 2001 From: chan-hoo Date: Fri, 10 Feb 2023 23:15:24 +0000 Subject: [PATCH 109/119] clean up --- modulefiles/build_hera_intel.lua | 2 -- modulefiles/build_orion_intel.lua | 2 -- parm/FV3.input.yml | 2 +- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/modulefiles/build_hera_intel.lua b/modulefiles/build_hera_intel.lua index 068fa9fa54..02af59a626 100644 --- a/modulefiles/build_hera_intel.lua +++ b/modulefiles/build_hera_intel.lua @@ -27,8 +27,6 @@ load("srw_common") load(pathJoin("nccmp", os.getenv("nccmp_ver") or "1.8.9.0")) load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) -load(pathJoin("wgrib2", os.getenv("wgrib2_ver") or "2.0.8")) - setenv("CMAKE_C_COMPILER","mpiicc") setenv("CMAKE_CXX_COMPILER","mpiicpc") setenv("CMAKE_Fortran_COMPILER","mpiifort") diff --git a/modulefiles/build_orion_intel.lua b/modulefiles/build_orion_intel.lua index 77843117d9..3b150e6d48 100644 --- a/modulefiles/build_orion_intel.lua +++ b/modulefiles/build_orion_intel.lua @@ -21,8 +21,6 @@ load("srw_common") load(pathJoin("nccmp", os.getenv("nccmp_ver") or "1.8.9.0")) load(pathJoin("nco", os.getenv("nco_ver") or "4.9.3")) -load(pathJoin("wgrib2", os.getenv("wgrib2_ver") or "2.0.8")) - setenv("CMAKE_C_COMPILER","mpiicc") setenv("CMAKE_CXX_COMPILER","mpiicpc") setenv("CMAKE_Fortran_COMPILER","mpiifort") diff --git a/parm/FV3.input.yml b/parm/FV3.input.yml index 581d1d442e..094fbda73b 100644 --- a/parm/FV3.input.yml +++ b/parm/FV3.input.yml @@ -229,7 +229,7 @@ FV3_GFS_v15p2: do_sat_adj: True fv_debug: False fv_sg_adj: 600 - k_split: 1 + k_split: 1 kord_mt: 9 kord_tm: -9 kord_tr: 9 From 3e24b1d9f27a05e7eda04bd6bdf11bea403201e3 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Sat, 11 Feb 2023 14:24:50 +0000 Subject: [PATCH 110/119] update valid_param_vals --- ush/valid_param_vals.yaml | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ush/valid_param_vals.yaml b/ush/valid_param_vals.yaml index 9db267fe48..c11bf0e11e 100644 --- a/ush/valid_param_vals.yaml +++ b/ush/valid_param_vals.yaml @@ -89,13 +89,18 @@ valid_vals_USE_MERRA_CLIMO: [True, False] valid_vals_CPL_AQM: [True, False] valid_vals_RUN_TASK_AQM_ICS: [True, False] valid_vals_RUN_TASK_AQM_LBCS: [True, False] +valid_vals_RUN_TASK_NEXUS_GFS_SFC: [True, False] +valid_vals_RUN_TASK_NEXUS_EMISSION: [True, False] +valid_vals_RUN_TASK_FIRE_EMISSION: [True, False] +valid_vals_RUN_TASK_POINT_SOURCE: [True, False] +valid_vals_RUN_TASK_PRE_POST_STAT: [True, False] +valid_vals_RUN_TASK_POST_STAT_O3: [True, False] +valid_vals_RUN_TASK_POST_STAT_PM25: [True, False] +valid_vals_RUN_TASK_BIAS_CORRECTION_O3: [True, False] +valid_vals_RUN_TASK_BIAS_CORRECTION_PM25: [True, False] valid_vals_DO_AQM_DUST: [True, False] valid_vals_DO_AQM_CANOPY: [True, False] valid_vals_DO_AQM_PRODUCT: [True, False] valid_vals_DO_AQM_CHEM_LBCS: [True, False] valid_vals_DO_AQM_GEFS_LBCS: [True, False] -valid_vals_RUN_TASK_NEXUS_EMISSION: [True, False] -valid_vals_RUN_TASK_FIRE_EMISSION: [True, False] -valid_vals_RUN_TASK_POINT_SOURCE: [True, False] -valid_vals_RUN_TASK_POST_STAT: [True, False] valid_vals_COLDSTART: [True, False] From 7ad2712b8d4e05d1af89c03a98fce1b49bfb6aef Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Sat, 11 Feb 2023 14:41:00 +0000 Subject: [PATCH 111/119] change ccpp v17_p8 to v16 in sample scripts --- ush/sample_config_AQM/config.yaml_community_aqmna13km_hera | 6 +++--- .../config.yaml_community_aqmna13km_wcoss2 | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera b/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera index ae5491ffc1..a605785dab 100644 --- a/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera +++ b/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera @@ -10,7 +10,7 @@ workflow: # EXPT_BASEDIR: /scratch2/NCEPDEV/stmp3/Chan-hoo.Jeon/expt_dirs EXPT_SUBDIR: aqm_community_aqmna13 PREDEF_GRID_NAME: AQM_NA_13km - CCPP_PHYS_SUITE: FV3_GFS_v17_p8 + CCPP_PHYS_SUITE: FV3_GFS_v16 DATE_FIRST_CYCL: '2023011700' DATE_LAST_CYCL: '2023011706' INCR_CYCL_FREQ: 6 @@ -22,8 +22,8 @@ workflow: PREEXISTING_DIR_METHOD: rename VERBOSE: true COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v17_p8 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v17_p8 + DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 + FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 nco: NET: aqm workflow_switches: diff --git a/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 b/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 index df507e18ba..204777ae06 100644 --- a/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 +++ b/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 @@ -10,7 +10,7 @@ workflow: # EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs EXPT_SUBDIR: aqm_community_aqmna13 PREDEF_GRID_NAME: AQM_NA_13km - CCPP_PHYS_SUITE: FV3_GFS_v17_p8 + CCPP_PHYS_SUITE: FV3_GFS_v16 DATE_FIRST_CYCL: '2023011700' DATE_LAST_CYCL: '2023011706' INCR_CYCL_FREQ: 6 @@ -21,8 +21,8 @@ workflow: PREEXISTING_DIR_METHOD: rename VERBOSE: true COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v17_p8 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v17_p8 + DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 + FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 nco: envir: prod NET: aqm From a9da112a2e6b48e13ca10cb594878b7497ae4949 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Sat, 11 Feb 2023 16:32:32 +0000 Subject: [PATCH 112/119] fix typo in create_model_configure_file --- ush/create_model_configure_file.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/create_model_configure_file.py b/ush/create_model_configure_file.py index 46d1b0cd6b..8fa978755c 100644 --- a/ush/create_model_configure_file.py +++ b/ush/create_model_configure_file.py @@ -317,7 +317,7 @@ def test_create_model_configure_file(self): create_model_configure_file( run_dir=path, cdate=datetime(2021, 1, 1), - fcst_len_cdate=72, + fcst_len_hrs=72, sub_hourly_post=True, dt_subhourly_post_mnts=4, dt_atmos=1, From c51b3b71ae477d56f6984a094ead06ad3c151331 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Sun, 12 Feb 2023 00:03:04 +0000 Subject: [PATCH 113/119] change to meet reviewer comments --- jobs/JREGIONAL_AQM_ICS | 2 +- jobs/JREGIONAL_AQM_LBCS | 2 +- jobs/JREGIONAL_BIAS_CORRECTION_O3 | 2 +- jobs/JREGIONAL_BIAS_CORRECTION_PM25 | 2 +- jobs/JREGIONAL_FIRE_EMISSION | 2 +- jobs/JREGIONAL_NEXUS_EMISSION | 2 +- jobs/JREGIONAL_NEXUS_GFS_SFC | 2 +- jobs/JREGIONAL_NEXUS_POST_SPLIT | 2 +- jobs/JREGIONAL_POINT_SOURCE | 5 +- jobs/JREGIONAL_POST_STAT_O3 | 2 +- jobs/JREGIONAL_POST_STAT_PM25 | 2 +- jobs/JREGIONAL_PRE_POST_STAT | 2 +- parm/FV3LAM_wflow.xml | 3 +- scripts/exregional_aqm_ics.sh | 2 +- scripts/exregional_aqm_lbcs.sh | 2 +- scripts/exregional_bias_correction_o3.sh | 2 +- scripts/exregional_bias_correction_pm25.sh | 2 +- scripts/exregional_fire_emission.sh | 2 +- scripts/exregional_nexus_emission.sh | 2 +- scripts/exregional_nexus_gfs_sfc.sh | 2 +- scripts/exregional_nexus_post_split.sh | 2 +- scripts/exregional_point_source.sh | 2 +- scripts/exregional_post_stat_o3.sh | 2 +- scripts/exregional_post_stat_pm25.sh | 2 +- scripts/exregional_pre_post_stat.sh | 2 +- ...mna13km_hera => config.aqm.community.yaml} | 46 +- ...km_wcoss2 => config.aqm.nco.realtime.yaml} | 43 +- ush/config_defaults.yaml | 594 ++++++++++-------- ush/generate_FV3LAM_wflow.py | 2 +- ush/machine/wcoss2.yaml | 7 +- ush/predef_grid_params.yaml | 52 +- .../config.yaml_community_aqmna13km_wcoss2 | 92 --- 32 files changed, 439 insertions(+), 451 deletions(-) rename ush/{sample_config_AQM/config.yaml_community_aqmna13km_hera => config.aqm.community.yaml} (89%) rename ush/{sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 => config.aqm.nco.realtime.yaml} (91%) delete mode 100644 ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 diff --git a/jobs/JREGIONAL_AQM_ICS b/jobs/JREGIONAL_AQM_ICS index 3e68ba32e4..b03f22dc2a 100755 --- a/jobs/JREGIONAL_AQM_ICS +++ b/jobs/JREGIONAL_AQM_ICS @@ -17,7 +17,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_aqm_ics" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_AQM_LBCS b/jobs/JREGIONAL_AQM_LBCS index aa93509931..0b675a388f 100755 --- a/jobs/JREGIONAL_AQM_LBCS +++ b/jobs/JREGIONAL_AQM_LBCS @@ -17,7 +17,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "task_get_extrn_lbcs|task_make_orog|task_make_lbcs|cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_get_extrn_lbcs|task_make_orog|task_make_lbcs|cpl_aqm_parm|task_aqm_lbcs" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_BIAS_CORRECTION_O3 b/jobs/JREGIONAL_BIAS_CORRECTION_O3 index f620bcebf4..4b2d3f33a8 100755 --- a/jobs/JREGIONAL_BIAS_CORRECTION_O3 +++ b/jobs/JREGIONAL_BIAS_CORRECTION_O3 @@ -16,7 +16,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_run_post|task_bias_correction_o3" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_BIAS_CORRECTION_PM25 b/jobs/JREGIONAL_BIAS_CORRECTION_PM25 index f018d1633a..3ad39a8ec0 100755 --- a/jobs/JREGIONAL_BIAS_CORRECTION_PM25 +++ b/jobs/JREGIONAL_BIAS_CORRECTION_PM25 @@ -16,7 +16,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_run_post|task_bias_correction_pm25" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_FIRE_EMISSION b/jobs/JREGIONAL_FIRE_EMISSION index 454f3537ae..2196c5dce6 100755 --- a/jobs/JREGIONAL_FIRE_EMISSION +++ b/jobs/JREGIONAL_FIRE_EMISSION @@ -16,7 +16,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_fire_emission" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_NEXUS_EMISSION b/jobs/JREGIONAL_NEXUS_EMISSION index a282a91e15..b916fabf25 100755 --- a/jobs/JREGIONAL_NEXUS_EMISSION +++ b/jobs/JREGIONAL_NEXUS_EMISSION @@ -16,7 +16,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "task_run_fcst|cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_run_fcst|cpl_aqm_parm|task_nexus_emission" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_NEXUS_GFS_SFC b/jobs/JREGIONAL_NEXUS_GFS_SFC index 18450441ba..184f6b7681 100755 --- a/jobs/JREGIONAL_NEXUS_GFS_SFC +++ b/jobs/JREGIONAL_NEXUS_GFS_SFC @@ -16,7 +16,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_nexus_gfs_sfc" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_NEXUS_POST_SPLIT b/jobs/JREGIONAL_NEXUS_POST_SPLIT index 535b7187b0..83054ab10b 100755 --- a/jobs/JREGIONAL_NEXUS_POST_SPLIT +++ b/jobs/JREGIONAL_NEXUS_POST_SPLIT @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_nexus_post_split" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_POINT_SOURCE b/jobs/JREGIONAL_POINT_SOURCE index 65f3a739d3..2164d822a8 100755 --- a/jobs/JREGIONAL_POINT_SOURCE +++ b/jobs/JREGIONAL_POINT_SOURCE @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "task_run_fcst|cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_run_fcst|cpl_aqm_parm|task_point_source" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- @@ -43,8 +43,7 @@ print_info_msg " Entering script: \"${scrfunc_fn}\" In directory: \"${scrfunc_dir}\" -This is the J-job script for the task that generates the emission files -using NEXUS which will output for FV3 (in NetCDF format). +This is the J-job script for the task that generates the point source files. ========================================================================" # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_POST_STAT_O3 b/jobs/JREGIONAL_POST_STAT_O3 index 44182bebf5..99cdaeb789 100755 --- a/jobs/JREGIONAL_POST_STAT_O3 +++ b/jobs/JREGIONAL_POST_STAT_O3 @@ -16,7 +16,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_run_post|task_post_stat_o3" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_POST_STAT_PM25 b/jobs/JREGIONAL_POST_STAT_PM25 index 06f6ff4113..b0f1b2bfab 100755 --- a/jobs/JREGIONAL_POST_STAT_PM25 +++ b/jobs/JREGIONAL_POST_STAT_PM25 @@ -16,7 +16,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_run_post|task_post_stat_pm25" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/jobs/JREGIONAL_PRE_POST_STAT b/jobs/JREGIONAL_PRE_POST_STAT index fbf0880773..7d80d3e5eb 100755 --- a/jobs/JREGIONAL_PRE_POST_STAT +++ b/jobs/JREGIONAL_PRE_POST_STAT @@ -16,7 +16,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_pre_post_stat" ${GLOBAL_VAR_DEFNS_FP} . $USHdir/job_preamble.sh # #----------------------------------------------------------------------- diff --git a/parm/FV3LAM_wflow.xml b/parm/FV3LAM_wflow.xml index 1f93d27c44..7eb97c4baa 100644 --- a/parm/FV3LAM_wflow.xml +++ b/parm/FV3LAM_wflow.xml @@ -136,12 +136,11 @@ Directories and files. {%- if do_ensemble %} @Y@m@d@H/dyn"> @Y@m@d@H/phy"> - {%- else %} @Y@m@d@H/dyn"> @Y@m@d@H/phy"> - {%- endif %} + {%- else %} @Y@m@d@H{{ slash_ensmem_subdir }}/dyn"> @Y@m@d@H{{ slash_ensmem_subdir }}/phy"> diff --git a/scripts/exregional_aqm_ics.sh b/scripts/exregional_aqm_ics.sh index 2a6262779c..73fd27cfb0 100755 --- a/scripts/exregional_aqm_ics.sh +++ b/scripts/exregional_aqm_ics.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_aqm_ics" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_aqm_lbcs.sh b/scripts/exregional_aqm_lbcs.sh index 5864d34df9..242af60ec6 100755 --- a/scripts/exregional_aqm_lbcs.sh +++ b/scripts/exregional_aqm_lbcs.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "task_get_extrn_lbcs|task_make_orog|task_make_lbcs|cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_get_extrn_lbcs|task_make_orog|task_make_lbcs|cpl_aqm_parm|task_aqm_lbcs" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index cf40bdb545..a17723b5c6 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_bias_correction_o3" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh index 86827a83d0..63015ac346 100755 --- a/scripts/exregional_bias_correction_pm25.sh +++ b/scripts/exregional_bias_correction_pm25.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_bias_correction_pm25" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_fire_emission.sh b/scripts/exregional_fire_emission.sh index 125a6a8623..32a74611b9 100755 --- a/scripts/exregional_fire_emission.sh +++ b/scripts/exregional_fire_emission.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_fire_emission" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_nexus_emission.sh b/scripts/exregional_nexus_emission.sh index 99c487b266..93eb31e74d 100755 --- a/scripts/exregional_nexus_emission.sh +++ b/scripts/exregional_nexus_emission.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_nexus_emission" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_nexus_gfs_sfc.sh b/scripts/exregional_nexus_gfs_sfc.sh index 9604d6b764..706034f2c5 100755 --- a/scripts/exregional_nexus_gfs_sfc.sh +++ b/scripts/exregional_nexus_gfs_sfc.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_nexus_gfs_sfc" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_nexus_post_split.sh b/scripts/exregional_nexus_post_split.sh index f8e34be24b..5f095107ff 100755 --- a/scripts/exregional_nexus_post_split.sh +++ b/scripts/exregional_nexus_post_split.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_nexus_post_split" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_point_source.sh b/scripts/exregional_point_source.sh index 198661a04b..7b2862ab1e 100755 --- a/scripts/exregional_point_source.sh +++ b/scripts/exregional_point_source.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "task_run_fcst|cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_run_fcst|cpl_aqm_parm|task_point_source" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_post_stat_o3.sh b/scripts/exregional_post_stat_o3.sh index dd1c4b15e4..e6bd116d3e 100755 --- a/scripts/exregional_post_stat_o3.sh +++ b/scripts/exregional_post_stat_o3.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_run_post|task_post_stat_o3" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_post_stat_pm25.sh b/scripts/exregional_post_stat_pm25.sh index 633be77614..fe18f5c973 100755 --- a/scripts/exregional_post_stat_pm25.sh +++ b/scripts/exregional_post_stat_pm25.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm|task_run_post" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "cpl_aqm_parm|task_run_post|task_post_stat_pm25" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/scripts/exregional_pre_post_stat.sh b/scripts/exregional_pre_post_stat.sh index 1fc7bbb7a0..e4fc8ade07 100755 --- a/scripts/exregional_pre_post_stat.sh +++ b/scripts/exregional_pre_post_stat.sh @@ -8,7 +8,7 @@ #----------------------------------------------------------------------- # . $USHdir/source_util_funcs.sh -source_config_for_task "cpl_aqm_parm" ${GLOBAL_VAR_DEFNS_FP} +source_config_for_task "task_pre_post" ${GLOBAL_VAR_DEFNS_FP} # #----------------------------------------------------------------------- # diff --git a/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera b/ush/config.aqm.community.yaml similarity index 89% rename from ush/sample_config_AQM/config.yaml_community_aqmna13km_hera rename to ush/config.aqm.community.yaml index a605785dab..bcf806eb9c 100644 --- a/ush/sample_config_AQM/config.yaml_community_aqmna13km_hera +++ b/ush/config.aqm.community.yaml @@ -1,18 +1,17 @@ metadata: - description: config for Online-CMAQ, AQM_NA_13km, community mode on HERA + description: config for Online-CMAQ, AQM_NA_13km, community mode user: RUN_ENVIR: community - MACHINE: hera - ACCOUNT: naqfc + MACHINE: [hera or wcoss2] + ACCOUNT: [account name] workflow: USE_CRON_TO_RELAUNCH: true CRON_RELAUNCH_INTVL_MNTS: 3 -# EXPT_BASEDIR: /scratch2/NCEPDEV/stmp3/Chan-hoo.Jeon/expt_dirs - EXPT_SUBDIR: aqm_community_aqmna13 + EXPT_SUBDIR: aqm_v16_test PREDEF_GRID_NAME: AQM_NA_13km CCPP_PHYS_SUITE: FV3_GFS_v16 DATE_FIRST_CYCL: '2023011700' - DATE_LAST_CYCL: '2023011706' + DATE_LAST_CYCL: '2023011700' INCR_CYCL_FREQ: 6 FCST_LEN_HRS: 6 # FCST_LEN_HRS: -1 @@ -24,6 +23,9 @@ workflow: COMPILER: intel DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 + DO_REAL_TIME: false +# COLDSTART: false +# WARMSTART_CYCLE_DIR: /path/to/restart/dir nco: NET: aqm workflow_switches: @@ -31,6 +33,17 @@ workflow_switches: RUN_TASK_MAKE_OROG: true RUN_TASK_MAKE_SFC_CLIMO: true RUN_TASK_RUN_POST: false + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_GFS_SFC: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_FIRE_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_PRE_POST_STAT: true + RUN_TASK_POST_STAT_O3: false + RUN_TASK_POST_STAT_PM25: false + RUN_TASK_BIAS_CORRECTION_O3: false + RUN_TASK_BIAS_CORRECTION_PM25: false task_get_extrn_ics: EXTRN_MDL_NAME_ICS: FV3GFS FV3GFS_FILE_FMT_ICS: netcdf @@ -55,36 +68,23 @@ global: DO_ENSEMBLE: false NUM_ENS_MEMBERS: 2 HALO_BLEND: 0 - DO_REAL_TIME: false cpl_aqm_parm: CPL_AQM: true - RUN_TASK_AQM_ICS: true - RUN_TASK_AQM_LBCS: true - RUN_TASK_NEXUS_GFS_SFC: true - RUN_TASK_NEXUS_EMISSION: true - RUN_TASK_FIRE_EMISSION: true - RUN_TASK_POINT_SOURCE: true - RUN_TASK_PRE_POST_STAT: true - RUN_TASK_POST_STAT_O3: false - RUN_TASK_POST_STAT_PM25: false - RUN_TASK_BIAS_CORRECTION_O3: false - RUN_TASK_BIAS_CORRECTION_PM25: false DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true - AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf DO_AQM_DUST: true + DO_AQM_CANOPY: false + DO_AQM_PRODUCT: true + AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf AQM_DUST_FILE_PREFIX: FENGSHA_p8_10km_inputs AQM_DUST_FILE_SUFFIX: .nc - DO_AQM_CANOPY: false AQM_CANOPY_FILE_PREFIX: gfs.t12z.geo AQM_CANOPY_FILE_SUFFIX: .canopy_regrid.nc AQM_FIRE_FILE_PREFIX: Hourly_Emissions_regrid_NA_13km AQM_FIRE_FILE_SUFFIX: _h72.nc AQM_RC_FIRE_FREQUENCY: hourly - DO_AQM_PRODUCT: true AQM_LBCS_FILES: am4_bndy.c793.2019.v1.nc AQM_GEFS_FILE_PREFIX: geaer NEXUS_GRID_FN: grid_spec_793.nc NUM_SPLIT_NEXUS: 3 -# COLDSTART: false -# WARMSTART_CYCLE_DIR: /scratch2/NCEPDEV/naqfc/RRFS_CMAQ/restart/RRFS_CONUS_13km/2019080612 + diff --git a/ush/sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 b/ush/config.aqm.nco.realtime.yaml similarity index 91% rename from ush/sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 rename to ush/config.aqm.nco.realtime.yaml index 5ea9c6be88..d2c3d6c995 100644 --- a/ush/sample_config_AQM/config.yaml_nco_realtime_aqmna13km_wcoss2 +++ b/ush/config.aqm.nco.realtime.yaml @@ -3,11 +3,10 @@ metadata: user: RUN_ENVIR: nco MACHINE: wcoss2 - ACCOUNT: AQM-DEV + ACCOUNT: [account name] workflow: USE_CRON_TO_RELAUNCH: true CRON_RELAUNCH_INTVL_MNTS: 3 -# EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs EXPT_SUBDIR: aqm_nco_aqmna13km PREDEF_GRID_NAME: AQM_NA_13km CCPP_PHYS_SUITE: FV3_GFS_v16 @@ -25,17 +24,31 @@ workflow: COMPILER: intel DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 + DO_REAL_TIME: true +# COLDSTART: false +# WARMSTART_CYCLE_DIR: /path/to/restart/dir nco: envir: prod NET: aqm model_ver: v7.0 RUN: aqm_nco_aqmna13km -# OPSROOT: /lfs/h2/emc/stmp/chan-hoo.jeon/NCO_OUTPUT_aqm +# OPSROOT: /path/to/custom/opsroot workflow_switches: RUN_TASK_MAKE_GRID: false RUN_TASK_MAKE_OROG: false RUN_TASK_MAKE_SFC_CLIMO: false RUN_TASK_RUN_POST: false + RUN_TASK_AQM_ICS: true + RUN_TASK_AQM_LBCS: true + RUN_TASK_NEXUS_GFS_SFC: true + RUN_TASK_NEXUS_EMISSION: true + RUN_TASK_FIRE_EMISSION: true + RUN_TASK_POINT_SOURCE: true + RUN_TASK_PRE_POST_STAT: true + RUN_TASK_POST_STAT_O3: true + RUN_TASK_POST_STAT_PM25: true + RUN_TASK_BIAS_CORRECTION_O3: true + RUN_TASK_BIAS_CORRECTION_PM25: true task_make_grid: GRID_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/DOMAIN_DATA/AQM_NA_13km task_make_orog: @@ -63,40 +76,28 @@ task_run_fcst: PRINT_ESMF: false task_run_post: POST_OUTPUT_DOMAIN_NAME: 793 +task_aqm_lbcs: + WTIME_AQM_LBCS: 01:00:00 global: DO_ENSEMBLE: false NUM_ENS_MEMBERS: 2 HALO_BLEND: 0 - DO_REAL_TIME: true cpl_aqm_parm: CPL_AQM: true - RUN_TASK_AQM_ICS: true - RUN_TASK_AQM_LBCS: true - RUN_TASK_NEXUS_GFS_SFC: true - RUN_TASK_NEXUS_EMISSION: true - RUN_TASK_FIRE_EMISSION: true - RUN_TASK_POINT_SOURCE: true - RUN_TASK_PRE_POST_STAT: true - RUN_TASK_POST_STAT_O3: true - RUN_TASK_POST_STAT_PM25: true - RUN_TASK_BIAS_CORRECTION_O3: true - RUN_TASK_BIAS_CORRECTION_PM25: true - WTIME_AQM_LBCS: 01:00:00 DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: true - AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf DO_AQM_DUST: true + DO_AQM_CANOPY: false + DO_AQM_PRODUCT: true + AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf AQM_DUST_FILE_PREFIX: FENGSHA_p8_10km_inputs AQM_DUST_FILE_SUFFIX: .nc - DO_AQM_CANOPY: false AQM_CANOPY_FILE_PREFIX: gfs.t12z.geo AQM_CANOPY_FILE_SUFFIX: .canopy_regrid.nc AQM_FIRE_FILE_PREFIX: Hourly_Emissions_regrid_NA_13km AQM_FIRE_FILE_SUFFIX: _h72.nc AQM_RC_FIRE_FREQUENCY: hourly - DO_AQM_PRODUCT: true AQM_LBCS_FILES: am4_bndy.c793.2019.v1.nc NEXUS_GRID_FN: grid_spec_793.nc NUM_SPLIT_NEXUS: 3 -# COLDSTART: false -# WARMSTART_CYCLE_DIR: /lfs/h2/emc/ptmp/jianping.huang/para/com/aqm/v7.0/aqm.v7.0.c3/2022102118 + diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 372a583615..2b5ebecc57 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -394,6 +394,23 @@ platform: #----------------------------------------------------------------------- # EXTRN_MDL_DATA_STORES: "" + # + #----------------------------------------------------------------------- + # + # COMINgfs: + # Path to the real-time GFS data + # + # COMINgefs: + # Path to the real-time GEFS data + # + # COMINairnow: + # Path to the real-time AIRNOW observation data + # + #----------------------------------------------------------------------- + # + COMINgfs: "" + COMINgefs: "" + COMINairnow: "/path/to/real/time/airnow/data" #----------------------------- # WORKFLOW config parameters @@ -875,6 +892,28 @@ workflow: GET_OBS: "get_obs" TN_VX: "run_vx" + # + #----------------------------------------------------------------------- + # + # DO_REAL_TIME: + # switch for real-time run + # + #----------------------------------------------------------------------- + # + DO_REAL_TIME: false + # + #----------------------------------------------------------------------- + # + # COLDSTART: + # Flag turning on/off warm start + # + # WARMSTART_CYCLE_DIR: + # Path to the directory where RESTART dir is located for warm start + # + #----------------------------------------------------------------------- + # + COLDSTART: true + WARMSTART_CYCLE_DIR: "/path/to/warm/start/cycle/dir" #---------------------------- # NCO specific variables @@ -1024,6 +1063,39 @@ workflow_switches: # RUN_TASK_PLOT_ALLVARS: # Flag that determines whether to run python plotting scripts # + # RUN_TASK_AQM_ICS: + # Flag that determines whether the TN_AQM_ICS task is to be run for air quality modeling. + # + # RUN_TASK_AQM_LBCS: + # Flag that determines whether the TN_AQM_LBCS task is to be run for air quality modeling. + # + # RUN_TASK_NEXUS_GFS_SFC: + # Flag that determines whether the TN_NEXUS_GFS_SFC task is to be run for air quality modeling. + # + # RUN_TASK_NEXUS_EMISSION: + # Flag that determines whether the TN_NEXUS_EMISSION task is to be run for air quality modeling. + # + # RUN_TASK_FIRE_EMISSION: + # Flag that determines whether the TN_FIRE_EMISSION task is to be run for air quality modeling. + # + # RUN_TASK_POINT_SOURCE: + # Flag that determines whether the TN_POINT_SOURCE task is to be run for air quality modeling. + # + # RUN_TASK_PRE_POST_STAT: + # Flag that determines whether the TN_PRE_POST_STAT task is to be run for air quality modeling. + # + # RUN_TASK_POST_STAT_O3: + # Flag that determines whether the TN_POST_STAT_O3 task is to be run for air quality modeling. + # + # RUN_TASK_POST_STAT_PM25: + # Flag that determines whether the TN_POST_STAT_PM25 task is to be run for air quality modeling. + # + # RUN_TASK_BIAS_CORRECTION_O3: + # Flag that determines whether the TN_BIAS_CORRECTION_O3 task is to be run for air quality modeling. + # + # RUN_TASK_BIAS_CORRECTION_PM25: + # Flag that determines whether the TN_BIAS_CORRECTION_PM25 task is to be run for air quality modeling. + # #----------------------------------------------------------------------- # RUN_TASK_MAKE_GRID: true @@ -1046,6 +1118,19 @@ workflow_switches: RUN_TASK_VX_ENSPOINT: false RUN_TASK_PLOT_ALLVARS: false + + RUN_TASK_AQM_ICS: false + RUN_TASK_AQM_LBCS: false + RUN_TASK_NEXUS_GFS_SFC: false + RUN_TASK_NEXUS_EMISSION: false + RUN_TASK_FIRE_EMISSION: false + RUN_TASK_POINT_SOURCE: false + RUN_TASK_PRE_POST_STAT: false + RUN_TASK_POST_STAT_O3: false + RUN_TASK_POST_STAT_PM25: false + RUN_TASK_BIAS_CORRECTION_O3: false + RUN_TASK_BIAS_CORRECTION_PM25: false + #---------------------------- # MAKE GRID config parameters #----------------------------- @@ -2055,7 +2140,6 @@ task_run_vx_ensgrid: MEM_VX_ENSGRID: 2G WTIME_VX_ENSGRID: 01:00:00 - #---------------------------- # VX_ENSGRID_REFC config parameters #----------------------------- @@ -2224,6 +2308,146 @@ task_plot_allvars: #------------------------------------------------------------------------------- PLOT_DOMAINS: ["conus"] +#---------------------------- +# AQM_ICS config parameters +#----------------------------- +task_aqm_ics: + TN_AQM_ICS: "aqm_ics" + NNODES_AQM_ICS: 1 + PPN_AQM_ICS: 1 + WTIME_AQM_ICS: 00:30:00 + MAXTRIES_AQM_ICS: 2 + +#---------------------------- +# AQM_LBCS config parameters +#----------------------------- +task_aqm_lbcs: + TN_AQM_LBCS: "aqm_lbcs" + NNODES_AQM_LBCS: 1 + PPN_AQM_LBCS: 24 + WTIME_AQM_LBCS: 00:30:00 + MAXTRIES_AQM_LBCS: 2 + +#---------------------------- +# NEXUS_GFS_SFC config parameters +#----------------------------- +task_nexus_gfs_sfc: + TN_NEXUS_GFS_SFC: "nexus_gfs_sfc" + NNODES_NEXUS_GFS_SFC: 1 + PPN_NEXUS_GFS_SFC: 1 + MEM_NEXUS_GFS_SFC: 2G + WTIME_NEXUS_GFS_SFC: 00:30:00 + MAXTRIES_NEXUS_GFS_SFC: 2 + +#---------------------------- +# NEXUS_EMISSION config parameters +#----------------------------- +task_nexus_emission: + TN_NEXUS_EMISSION: "nexus_emission" + NNODES_NEXUS_EMISSION: 4 + PPN_NEXUS_EMISSION: '{{ platform.NCORES_PER_NODE // OMP_NUM_THREADS_NEXUS_EMISSION }}' + WTIME_NEXUS_EMISSION: 01:00:00 + MAXTRIES_NEXUS_EMISSION: 2 + KMP_AFFINITY_NEXUS_EMISSION: "scatter" + OMP_NUM_THREADS_NEXUS_EMISSION: 2 + OMP_STACKSIZE_NEXUS_EMISSION: "1024m" + +#---------------------------- +# NEXUS_POST_SPLIT config parameters +#----------------------------- +task_nexus_post_split: + TN_NEXUS_POST_SPLIT: "nexus_post_split" + NNODES_NEXUS_POST_SPLIT: 1 + PPN_NEXUS_POST_SPLIT: 1 + WTIME_NEXUS_POST_SPLIT: 00:30:00 + MAXTRIES_NEXUS_POST_SPLIT: 2 + +#---------------------------- +# FIRE_EMISSION config parameters +#----------------------------- +task_fire_emission: + TN_FIRE_EMISSION: "fire_emission" + NNODES_FIRE_EMISSION: 1 + PPN_FIRE_EMISSION: 1 + MEM_FIRE_EMISSION: 2G + WTIME_FIRE_EMISSION: 00:30:00 + MAXTRIES_FIRE_EMISSION: 2 + +#---------------------------- +# POINT_SOURCE config parameters +#----------------------------- +task_point_source: + TN_POINT_SOURCE: "point_source" + NNODES_POINT_SOURCE: 1 + PPN_POINT_SOURCE: 1 + WTIME_POINT_SOURCE: 01:00:00 + MAXTRIES_POINT_SOURCE: 2 + +#---------------------------- +# PRE_POST_STAT config parameters +#----------------------------- +task_pre_post_stat: + TN_PRE_POST_STAT: "pre_post_stat" + NNODES_PRE_POST_STAT: 1 + PPN_PRE_POST_STAT: 1 + WTIME_PRE_POST_STAT: 00:30:00 + MAXTRIES_PRE_POST_STAT: 2 + +#---------------------------- +# POST_STAT_O3 config parameters +#----------------------------- +task_post_stat_o3: + TN_POST_STAT_O3: "post_stat_o3" + NNODES_POST_STAT_O3: 1 + PPN_POST_STAT_O3: 1 + MEM_POST_STAT_O3: 120G + WTIME_POST_STAT_O3: 00:30:00 + MAXTRIES_POST_STAT_O3: 2 + KMP_AFFINITY_POST_STAT_O3: "scatter" + OMP_NUM_THREADS_POST_STAT_O3: 1 + OMP_STACKSIZE_POST_STAT_O3: "2056M" + +#---------------------------- +# POST_STAT_PM25 config parameters +#----------------------------- +task_post_stat_pm25: + TN_POST_STAT_PM25: "post_stat_pm25" + NNODES_POST_STAT_PM25: 1 + PPN_POST_STAT_PM25: 1 + MEM_POST_STAT_PM25: 120G + WTIME_POST_STAT_PM25: 00:30:00 + MAXTRIES_POST_STAT_PM25: 2 + KMP_AFFINITY_POST_STAT_PM25: "scatter" + OMP_NUM_THREADS_POST_STAT_PM25: 1 + OMP_STACKSIZE_POST_STAT_PM25: "2056M" + +#---------------------------- +# BIAS_CORRECTION_O3 config parameters +#----------------------------- +task_bias_correction_o3: + TN_BIAS_CORRECTION_O3: "bias_correction_o3" + NNODES_BIAS_CORRECTION_O3: 1 + PPN_BIAS_CORRECTION_O3: 1 + MEM_BIAS_CORRECTION_O3: 120G + WTIME_BIAS_CORRECTION_O3: 00:30:00 + MAXTRIES_BIAS_CORRECTION_O3: 2 + KMP_AFFINITY_BIAS_CORRECTION_O3: "scatter" + OMP_NUM_THREADS_BIAS_CORRECTION_O3: 128 + OMP_STACKSIZE_BIAS_CORRECTION_O3: "2056M" + +#---------------------------- +# BIAS_CORRECTION_PM25 config parameters +#----------------------------- +task_bias_correction_pm25: + TN_BIAS_CORRECTION_PM25: "bias_correction_pm25" + NNODES_BIAS_CORRECTION_PM25: 1 + PPN_BIAS_CORRECTION_PM25: 1 + MEM_BIAS_CORRECTION_PM25: 120G + WTIME_BIAS_CORRECTION_PM25: 00:30:00 + MAXTRIES_BIAS_CORRECTION_PM25: 2 + KMP_AFFINITY_BIAS_CORRECTION_PM25: "scatter" + OMP_NUM_THREADS_BIAS_CORRECTION_PM25: 128 + OMP_STACKSIZE_BIAS_CORRECTION_PM25: "2056M" #---------------------------- # global config parameters @@ -2380,15 +2604,6 @@ global: #----------------------------------------------------------------------- # HALO_BLEND: 10 - # - #----------------------------------------------------------------------- - # - # DO_REAL_TIME_RUN: - # switch for real-time run - # - #----------------------------------------------------------------------- - # - DO_REAL_TIME: false #---------------------------- # verification parameters @@ -2419,281 +2634,151 @@ cpl_aqm_parm: # #----------------------------------------------------------------------- # - # Set coupling parameters - # # CPL_AQM: # Coupling flag for air quality modeling # - #----------------------------------------------------------------------- + # DO_AQM_DUST: + # Flag turning on/off AQM dust option in AQM_RC # - CPL_AQM: false + # DO_AQM_CANOPY + # Flag turning on/off AQM canopy option in AQM_RC + # + # DO_AQM_PRODUCT + # Flag turning on/off AQM output products in AQM_RC + # + # DO_AQM_CHEM_LBCS: + # Add chemical LBCs to chemical LBCs + # + # DO_AQM_GEFS_LBCS: + # Add GEFS aerosol LBCs to chemical LBCs # - #----------------------------------------------------------------------- + # AQM_CONFIG_DIR: + # Configuration directory for AQM + # + # AQM_BIO_DIR: + # Path to the directory containing AQM bio files + # + # AQM_BIO_FILE: + # File name of AQM BIO file + # + # AQM_DUST_DIR: + # Path to the directory containing AQM dust file + # + # AQM_DUST_FILE_PREFIX: + # Frefix of AQM dust file + # + # AQM_DUST_FILE_SUFFIX: + # Suffix and extension of AQM dust file + # + # AQM_CANOPY_DIR: + # Path to the directory containing AQM canopy files + # + # AQM_CANOPY_FILE_PREFIX: + # File name of AQM canopy file + # + # AQM_CANOPY_FILE_SUFFIX: + # Suffix and extension of AQM CANOPY file + # + # AQM_FIRE_DIR: + # Path to the directory containing AQM fire files + # + # AQM_FIRE_FILE_PREFIX: + # Prefix of AQM FIRE file + # + # AQM_FIRE_FILE_SUFFIX: + # Suffix and extension of AQM FIRE file + # + # AQM_RC_FIRE_FREQUENCY: + # Fire frequency in aqm.rc + # + # AQM_RC_PRODUCT_FN: + # File name of AQM output products + # + # AQM_RC_PRODUCT_FREQUENCY: + # Frequency of AQM output products + # + # AQM_LBCS_DIR: + # Path to the directory containing chemical LBC files + # + # AQM_LBCS_FILES: + # File name of chemical LBCs + # + # AQM_GEFS_DIR: + # Path to the directory containing GEFS aerosol LBC files + # + # AQM_GEFS_FILE_PREFIX: + # Prefix of AQM GEFS file ("geaer" or "gfs") + # + # AQM_GEFS_FILE_CYC: + # Cycle of the GEFS aerosol LBC files only if it is fixed + # + # NEXUS_INPUT_DIR: + # Same as GRID_DIR but for the the air quality emission generation task. + # Should be blank for the default value specified in setup.sh + # + # NEXUS_FIX_DIR: + # Directory containing grid_spec files as the input file of nexus + # + # NEXUS_GRID_FN: + # File name of the input grid_spec file of nexus + # + # NUM_SPLIT_NEXUS: + # Number of split nexus emission tasks + # + # NEXUS_GFS_SFC_OFFSET_HRS: 0 + # Time offset when retrieving gfs surface data files + # + # NEXUS_GFS_SFC_DIR: + # Path to directory containing GFS surface data files + # This is set to COMINgfs when DO_REAL_TIME=TRUE. + # + # NEXUS_GFS_SFC_ARCHV_DIR: + # Path to archive directory for gfs surface files on HPSS # - # Set task flag, name, parallel parameters for air quality modeling + # PT_SRC_BASEDIR: + # Parent directory containing point source files for CONUS/AK/HI + # + # AQM_AIRNOW_HIST_DIR: + # Path to the directory where the historical AIRNOW data are located # #----------------------------------------------------------------------- # - RUN_TASK_AQM_ICS: false - RUN_TASK_AQM_LBCS: false - RUN_TASK_NEXUS_GFS_SFC: false - RUN_TASK_NEXUS_EMISSION: false - RUN_TASK_FIRE_EMISSION: false - RUN_TASK_POINT_SOURCE: false - RUN_TASK_PRE_POST_STAT: false - RUN_TASK_POST_STAT_O3: false - RUN_TASK_POST_STAT_PM25: false - RUN_TASK_BIAS_CORRECTION_O3: false - RUN_TASK_BIAS_CORRECTION_PM25: false - - TN_AQM_ICS: "aqm_ics" - NNODES_AQM_ICS: 1 - PPN_AQM_ICS: 1 - WTIME_AQM_ICS: 00:30:00 - MAXTRIES_AQM_ICS: 2 - - TN_AQM_LBCS: "aqm_lbcs" - NNODES_AQM_LBCS: 1 - PPN_AQM_LBCS: 24 - WTIME_AQM_LBCS: 00:30:00 - MAXTRIES_AQM_LBCS: 2 - - TN_NEXUS_GFS_SFC: "nexus_gfs_sfc" - NNODES_NEXUS_GFS_SFC: 1 - PPN_NEXUS_GFS_SFC: 1 - MEM_NEXUS_GFS_SFC: 2G - WTIME_NEXUS_GFS_SFC: 00:30:00 - MAXTRIES_NEXUS_GFS_SFC: 2 - - TN_NEXUS_EMISSION: "nexus_emission" - NNODES_NEXUS_EMISSION: 4 - PPN_NEXUS_EMISSION: '{{ platform.NCORES_PER_NODE // OMP_NUM_THREADS_NEXUS_EMISSION }}' - WTIME_NEXUS_EMISSION: 01:00:00 - MAXTRIES_NEXUS_EMISSION: 2 - KMP_AFFINITY_NEXUS_EMISSION: "scatter" - OMP_NUM_THREADS_NEXUS_EMISSION: 2 - OMP_STACKSIZE_NEXUS_EMISSION: "1024m" - - TN_NEXUS_POST_SPLIT: "nexus_post_split" - NNODES_NEXUS_POST_SPLIT: 1 - PPN_NEXUS_POST_SPLIT: 1 - WTIME_NEXUS_POST_SPLIT: 00:30:00 - MAXTRIES_NEXUS_POST_SPLIT: 2 - - TN_FIRE_EMISSION: "fire_emission" - NNODES_FIRE_EMISSION: 1 - PPN_FIRE_EMISSION: 1 - MEM_FIRE_EMISSION: 2G - WTIME_FIRE_EMISSION: 00:30:00 - MAXTRIES_FIRE_EMISSION: 2 - - TN_POINT_SOURCE: "point_source" - NNODES_POINT_SOURCE: 1 - PPN_POINT_SOURCE: 1 - WTIME_POINT_SOURCE: 01:00:00 - MAXTRIES_POINT_SOURCE: 2 - - TN_PRE_POST_STAT: "pre_post_stat" - NNODES_PRE_POST_STAT: 1 - PPN_PRE_POST_STAT: 1 - WTIME_PRE_POST_STAT: 00:30:00 - MAXTRIES_PRE_POST_STAT: 2 - - TN_POST_STAT_O3: "post_stat_o3" - NNODES_POST_STAT_O3: 1 - PPN_POST_STAT_O3: 1 - MEM_POST_STAT_O3: 120G - WTIME_POST_STAT_O3: 00:30:00 - MAXTRIES_POST_STAT_O3: 2 - KMP_AFFINITY_POST_STAT_O3: "scatter" - OMP_NUM_THREADS_POST_STAT_O3: 1 - OMP_STACKSIZE_POST_STAT_O3: "2056M" - - TN_POST_STAT_PM25: "post_stat_pm25" - NNODES_POST_STAT_PM25: 1 - PPN_POST_STAT_PM25: 1 - MEM_POST_STAT_PM25: 120G - WTIME_POST_STAT_PM25: 00:30:00 - MAXTRIES_POST_STAT_PM25: 2 - KMP_AFFINITY_POST_STAT_PM25: "scatter" - OMP_NUM_THREADS_POST_STAT_PM25: 1 - OMP_STACKSIZE_POST_STAT_PM25: "2056M" + CPL_AQM: false - TN_BIAS_CORRECTION_O3: "bias_correction_o3" - NNODES_BIAS_CORRECTION_O3: 1 - PPN_BIAS_CORRECTION_O3: 1 - MEM_BIAS_CORRECTION_O3: 120G - WTIME_BIAS_CORRECTION_O3: 00:30:00 - MAXTRIES_BIAS_CORRECTION_O3: 2 - KMP_AFFINITY_BIAS_CORRECTION_O3: "scatter" - OMP_NUM_THREADS_BIAS_CORRECTION_O3: 128 - OMP_STACKSIZE_BIAS_CORRECTION_O3: "2056M" + DO_AQM_DUST: true + DO_AQM_CANOPY: false + DO_AQM_PRODUCT: true + DO_AQM_CHEM_LBCS: true + DO_AQM_GEFS_LBCS: false - TN_BIAS_CORRECTION_PM25: "bias_correction_pm25" - NNODES_BIAS_CORRECTION_PM25: 1 - PPN_BIAS_CORRECTION_PM25: 1 - MEM_BIAS_CORRECTION_PM25: 120G - WTIME_BIAS_CORRECTION_PM25: 00:30:00 - MAXTRIES_BIAS_CORRECTION_PM25: 2 - KMP_AFFINITY_BIAS_CORRECTION_PM25: "scatter" - OMP_NUM_THREADS_BIAS_CORRECTION_PM25: 128 - OMP_STACKSIZE_BIAS_CORRECTION_PM25: "2056M" - -# -#----------------------------------------------------------------------- -# -# Parameters for additional files for air quality modeling -# -# AQM_CONFIG_DIR: -# Configuration directory for AQM -# -# AQM_BIO_DIR: -# Path to the directory containing AQM bio files -# -# AQM_BIO_FILE: -# File name of AQM BIO file -# -# DO_AQM_DUST: -# Flag turning on/off AQM dust option in AQM_RC -# -# AQM_DUST_DIR: -# Path to the directory containing AQM dust file -# -# AQM_DUST_FILE_PREFIX: -# Frefix of AQM dust file -# -# AQM_DUST_FILE_SUFFIX: -# Suffix and extension of AQM dust file -# -# DO_AQM_CANOPY -# Flag turning on/off AQM canopy option in AQM_RC -# -# AQM_CANOPY_DIR: -# Path to the directory containing AQM canopy files -# -# AQM_CANOPY_FILE_PREFIX: -# File name of AQM canopy file -# -# AQM_CANOPY_FILE_SUFFIX: -# Suffix and extension of AQM CANOPY file -# -# AQM_FIRE_DIR: -# Path to the directory containing AQM fire files -# -# AQM_FIRE_FILE_PREFIX: -# Prefix of AQM FIRE file -# -# AQM_FIRE_FILE_SUFFIX: -# Suffix and extension of AQM FIRE file -# -# AQM_RC_FIRE_FREQUENCY: -# Fire frequency in aqm.rc -# -# DO_AQM_PRODUCT -# Flag turning on/off AQM output products in AQM_RC -# -# AQM_RC_PRODUCT_FN: -# File name of AQM output products -# -# AQM_RC_PRODUCT_FREQUENCY: -# Frequency of AQM output products -# -# AQM_LBCS_DIR: -# Path to the directory containing chemical LBC files -# -# AQM_LBCS_FILES: -# File name of chemical LBCs -# -# AQM_GEFS_DIR: -# Path to the directory containing GEFS aerosol LBC files -# -# AQM_GEFS_FILE_PREFIX: -# Prefix of AQM GEFS file ("geaer" or "gfs") -# -# AQM_GEFS_FILE_CYC: -# Cycle of the GEFS aerosol LBC files only if it is fixed -# -# DO_AQM_CHEM_LBCS: -# Add chemical LBCs to chemical LBCs -# -# DO_AQM_GEFS_LBCS: -# Add GEFS aerosol LBCs to chemical LBCs -# -# NEXUS_INPUT_DIR: -# Same as GRID_DIR but for the the air quality emission generation task. -# Should be blank for the default value specified in setup.sh -# -# NEXUS_FIX_DIR: -# Directory containing grid_spec files as the input file of nexus -# -# NEXUS_GRID_FN: -# File name of the input grid_spec file of nexus -# -# NUM_SPLIT_NEXUS: -# Number of split nexus emission tasks -# -# NEXUS_GFS_SFC_OFFSET_HRS: 0 -# Time offset when retrieving gfs surface data files -# -# NEXUS_GFS_SFC_DIR: -# Path to directory containing GFS surface data files -# This is set to COMINgfs when DO_REAL_TIME=TRUE. -# -# NEXUS_GFS_SFC_ARCHV_DIR: -# Path to archive directory for gfs surface files on HPSS -# -# PT_SRC_BASEDIR: -# Parent directory containing point source files for CONUS/AK/HI -# -# COLDSTART: -# Flag turning on/off warm start -# -# WARMSTART_CYCLE_DIR: -# Path to the directory where RESTART dir is located for warm start -# -# AQM_AIRNOW_HIST_DIR: -# Path to the directory where the historical AIRNOW data are located -# -# COMINairnow: -# Path to the real-time AIRNOW observation data -# -# COMINgfs: -# Path to the real-time GFS data -# -# COMINgefs: -# Path to the real-time GEFS data -# -#----------------------------------------------------------------------- -# AQM_CONFIG_DIR: "" AQM_BIO_DIR: "" AQM_BIO_FILE: "BEIS_SARC401.ncf" - DO_AQM_DUST: true + AQM_DUST_DIR: "/path/to/dust/dir" AQM_DUST_FILE_PREFIX: "FENGSHA_p8_10km_inputs" AQM_DUST_FILE_SUFFIX: ".nc" - DO_AQM_CANOPY: false + AQM_CANOPY_DIR: "/path/to/canopy/dir" AQM_CANOPY_FILE_PREFIX: "gfs.t12z.geo" AQM_CANOPY_FILE_SUFFIX: ".canopy_regrid.nc" + AQM_FIRE_DIR: "" AQM_FIRE_FILE_PREFIX: "GBBEPx_C401GRID.emissions_v003" AQM_FIRE_FILE_SUFFIX: ".nc" AQM_FIRE_FILE_OFFSET_HRS: 0 + AQM_RC_FIRE_FREQUENCY: "static" - DO_AQM_PRODUCT: true AQM_RC_PRODUCT_FN: "aqm.prod.nc" AQM_RC_PRODUCT_FREQUENCY: "hourly" AQM_LBCS_DIR: "" AQM_LBCS_FILES: "gfs_bndy_chen_.tile7.000.nc" + AQM_GEFS_DIR: "" AQM_GEFS_FILE_PREFIX: "geaer" AQM_GEFS_FILE_CYC: "" - DO_AQM_CHEM_LBCS: true - DO_AQM_GEFS_LBCS: false - NEXUS_INPUT_DIR: "" NEXUS_FIX_DIR: "" NEXUS_GRID_FN: "grid_spec_GSD_HRRR_25km.nc" @@ -2704,10 +2789,5 @@ cpl_aqm_parm: PT_SRC_BASEDIR: "/path/to/point/source/base/directory/for/conus/hi/ak" - COLDSTART: true - WARMSTART_CYCLE_DIR: "/path/to/warm/start/cycle/dir" - AQM_AIRNOW_HIST_DIR: "/path/to/historical/airnow/data/dir" - COMINairnow: "/path/to/real/time/airnow/data" - COMINgfs: "" - COMINgefs: "" + diff --git a/ush/generate_FV3LAM_wflow.py b/ush/generate_FV3LAM_wflow.py index c2ac0be609..7cec0c17e9 100755 --- a/ush/generate_FV3LAM_wflow.py +++ b/ush/generate_FV3LAM_wflow.py @@ -144,7 +144,7 @@ def generate_FV3LAM_wflow(ushdir, logfile: str = "log.generate_FV3LAM_wflow", de # "ncores_run_fcst": expt_config["task_run_fcst"]["PE_MEMBER01"], "native_run_fcst": f"--cpus-per-task {fcst_threads} --exclusive", - "native_nexus_emission": f"--cpus-per-task {expt_config['cpl_aqm_parm']['OMP_NUM_THREADS_NEXUS_EMISSION']}", + "native_nexus_emission": f"--cpus-per-task {expt_config['task_nexus_emission']['OMP_NUM_THREADS_NEXUS_EMISSION']}", # # Parameters that determine the set of cycles to run. # diff --git a/ush/machine/wcoss2.yaml b/ush/machine/wcoss2.yaml index fb480891b3..ccace81df1 100644 --- a/ush/machine/wcoss2.yaml +++ b/ush/machine/wcoss2.yaml @@ -28,6 +28,9 @@ platform: FIXsfc: /lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/fix/fix_sfc_climo FIXshp: /lfs/h2/emc/lam/noscrub/UFS_SRW_App/develop/NaturalEarth EXTRN_MDL_DATA_STORES: hpss aws nomads + COMINgfs: /lfs/h1/ops/prod/com/gfs/v16.3 + COMINgefs: /lfs/h1/ops/prod/com/gefs/v12.3 + COMINairnow: /lfs/h2/emc/physics/noscrub/kai.wang/Bias_correction/airnow/bufr data: ics_lbcs: GSMGFS: compath.py ${envir}/gsmgfs/${gsmgfs_ver}/gsmgfs.${PDYext} @@ -48,6 +51,4 @@ cpl_aqm_parm: NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix NEXUS_GFS_SFC_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/GFS_DATA PT_SRC_BASEDIR: /lfs/h2/emc/physics/noscrub/Youhua.Tang/nei2016v1-pt - COMINairnow: /lfs/h2/emc/physics/noscrub/kai.wang/Bias_correction/airnow/bufr - COMINgfs: /lfs/h1/ops/prod/com/gfs/v16.3 - COMINgefs: /lfs/h1/ops/prod/com/gefs/v12.3 + diff --git a/ush/predef_grid_params.yaml b/ush/predef_grid_params.yaml index ed43722d14..9907303fc9 100644 --- a/ush/predef_grid_params.yaml +++ b/ush/predef_grid_params.yaml @@ -826,20 +826,20 @@ LAYOUT_X: 10 LAYOUT_Y: 11 BLOCKSIZE: 2 - #if QUILTING = True - WRTCMP_write_groups: 1 - WRTCMP_write_tasks_per_group: 10 - WRTCMP_output_grid: "lambert_conformal" - WRTCMP_cen_lon: -97.5 - WRTCMP_cen_lat: 38.5 - WRTCMP_stdlat1: 38.5 - WRTCMP_stdlat2: 38.5 - WRTCMP_nx: 191 - WRTCMP_ny: 97 - WRTCMP_lon_lwr_left: -120.72962370 - WRTCMP_lat_lwr_left: 25.11648583 - WRTCMP_dx: 25000.0 - WRTCMP_dy: 25000.0 + QUILTING: + WRTCMP_write_groups: 1 + WRTCMP_write_tasks_per_group: 10 + WRTCMP_output_grid: "lambert_conformal" + WRTCMP_cen_lon: -97.5 + WRTCMP_cen_lat: 38.5 + WRTCMP_stdlat1: 38.5 + WRTCMP_stdlat2: 38.5 + WRTCMP_nx: 191 + WRTCMP_ny: 97 + WRTCMP_lon_lwr_left: -120.72962370 + WRTCMP_lat_lwr_left: 25.11648583 + WRTCMP_dx: 25000.0 + WRTCMP_dy: 25000.0 # #----------------------------------------------------------------------- # @@ -861,18 +861,18 @@ LAYOUT_X: 50 LAYOUT_Y: 34 BLOCKSIZE: 16 - # if QUILTING = True - WRTCMP_write_groups: 2 - WRTCMP_write_tasks_per_group: 46 - WRTCMP_output_grid: "rotated_latlon" - WRTCMP_cen_lon: -118.0 - WRTCMP_cen_lat: 50.0 - WRTCMP_lon_lwr_left: -45.25 - WRTCMP_lat_lwr_left: -28.5 - WRTCMP_lon_upr_rght: 45.25 - WRTCMP_lat_upr_rght: 28.5 - WRTCMP_dlon: 0.116908139 - WRTCMP_dlat: 0.116908139 + QUILTING: + WRTCMP_write_groups: 2 + WRTCMP_write_tasks_per_group: 46 + WRTCMP_output_grid: "rotated_latlon" + WRTCMP_cen_lon: -118.0 + WRTCMP_cen_lat: 50.0 + WRTCMP_lon_lwr_left: -45.25 + WRTCMP_lat_lwr_left: -28.5 + WRTCMP_lon_upr_rght: 45.25 + WRTCMP_lat_upr_rght: 28.5 + WRTCMP_dlon: 0.116908139 + WRTCMP_dlat: 0.116908139 # #----------------------------------------------------------------------- # diff --git a/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 b/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 deleted file mode 100644 index 204777ae06..0000000000 --- a/ush/sample_config_AQM/config.yaml_community_aqmna13km_wcoss2 +++ /dev/null @@ -1,92 +0,0 @@ -metadata: - description: config for Online-CMAQ, AQM_NA_13km, community mode on WCOSS2 -user: - RUN_ENVIR: community - MACHINE: wcoss2 - ACCOUNT: AQM-DEV -workflow: - USE_CRON_TO_RELAUNCH: true - CRON_RELAUNCH_INTVL_MNTS: 3 -# EXPT_BASEDIR: /lfs/h2/emc/lam/noscrub/chan-hoo.jeon/expt_dirs - EXPT_SUBDIR: aqm_community_aqmna13 - PREDEF_GRID_NAME: AQM_NA_13km - CCPP_PHYS_SUITE: FV3_GFS_v16 - DATE_FIRST_CYCL: '2023011700' - DATE_LAST_CYCL: '2023011706' - INCR_CYCL_FREQ: 6 - FCST_LEN_HRS: -1 - FCST_LEN_CYCL: - - 6 - - 72 - PREEXISTING_DIR_METHOD: rename - VERBOSE: true - COMPILER: intel - DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 - FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 -nco: - envir: prod - NET: aqm -workflow_switches: - RUN_TASK_MAKE_GRID: true - RUN_TASK_MAKE_OROG: true - RUN_TASK_MAKE_SFC_CLIMO: true - RUN_TASK_RUN_POST: false -task_get_extrn_ics: - EXTRN_MDL_NAME_ICS: FV3GFS - FV3GFS_FILE_FMT_ICS: netcdf - EXTRN_MDL_ICS_OFFSET_HRS: 0 -task_get_extrn_lbcs: - EXTRN_MDL_NAME_LBCS: FV3GFS - LBC_SPEC_INTVL_HRS: 6 - FV3GFS_FILE_FMT_LBCS: netcdf - EXTRN_MDL_LBCS_OFFSET_HRS: 0 -task_run_fcst: - DT_ATMOS: 180 - LAYOUT_X: 50 - LAYOUT_Y: 34 - BLOCKSIZE: 16 - RESTART_INTERVAL: 6 - WTIME_RUN_FCST: 04:00:00 - QUILTING: true - PRINT_ESMF: false -task_run_post: - POST_OUTPUT_DOMAIN_NAME: 793 -global: - DO_ENSEMBLE: false - NUM_ENS_MEMBERS: 2 - HALO_BLEND: 0 - DO_REAL_TIME: false -cpl_aqm_parm: - CPL_AQM: true - RUN_TASK_AQM_ICS: true - RUN_TASK_AQM_LBCS: true - RUN_TASK_NEXUS_GFS_SFC: true - RUN_TASK_NEXUS_EMISSION: true - RUN_TASK_FIRE_EMISSION: true - RUN_TASK_POINT_SOURCE: true - RUN_TASK_PRE_POST_STAT: true - RUN_TASK_POST_STAT_O3: true - RUN_TASK_POST_STAT_PM25: true - RUN_TASK_BIAS_CORRECTION_O3: true - RUN_TASK_BIAS_CORRECTION_PM25: true - NNODES_NEXUS_EMISSION: 4 - PPN_NEXUS_EMISSION: 40 - DO_AQM_CHEM_LBCS: true - DO_AQM_GEFS_LBCS: true - AQM_GEFS_FILE_PREFIX: geaer - AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf - DO_AQM_DUST: true - AQM_DUST_FILE_PREFIX: FENGSHA_p8_10km_inputs - AQM_DUST_FILE_SUFFIX: .nc - DO_AQM_CANOPY: false - AQM_CANOPY_FILE_PREFIX: gfs.t12z.geo - AQM_CANOPY_FILE_SUFFIX: .canopy_regrid.nc - AQM_FIRE_FILE_PREFIX: Hourly_Emissions_regrid_NA_13km - AQM_FIRE_FILE_SUFFIX: _h72.nc - AQM_RC_FIRE_FREQUENCY: hourly - DO_AQM_PRODUCT: true - AQM_LBCS_FILES: am4_bndy.c793.2019.v1.nc - NEXUS_GRID_FN: grid_spec_793.nc - NUM_SPLIT_NEXUS: 3 -# COLDSTART: false -# WARMSTART_CYCLE_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/restart/RRFS_CONUS_13km/2019080612 From 6d7329f674523bbf1076b68167d13707f759f455 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Sun, 12 Feb 2023 00:28:43 +0000 Subject: [PATCH 114/119] add upp-aqm to parm --- parm/upp-aqm | 1 + scripts/exregional_run_post.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 120000 parm/upp-aqm diff --git a/parm/upp-aqm b/parm/upp-aqm new file mode 120000 index 0000000000..8c472dd19b --- /dev/null +++ b/parm/upp-aqm @@ -0,0 +1 @@ +../sorc/AQM-utils/parm/ \ No newline at end of file diff --git a/scripts/exregional_run_post.sh b/scripts/exregional_run_post.sh index 348c958eff..94d90d3e0f 100755 --- a/scripts/exregional_run_post.sh +++ b/scripts/exregional_run_post.sh @@ -94,7 +94,7 @@ to the temporary work directory (DATA_FHR): ====================================================================" else if [ "${CPL_AQM}" = "TRUE" ]; then - post_config_fp="${HOMEdir}/sorc/AQM-utils/parm/postxconfig-NT-fv3lam_cmaq.txt" + post_config_fp="${PARMdir}/upp-aqm/postxconfig-NT-fv3lam_cmaq.txt" else post_config_fp="${PARMdir}/upp/postxconfig-NT-fv3lam.txt" fi From 73f83f1b6efd1b8188d99dc049f9aba09d2fb5e7 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Sun, 12 Feb 2023 18:59:15 +0000 Subject: [PATCH 115/119] add pdym and flag for airnow data --- scripts/exregional_bias_correction_o3.sh | 32 +++++++++++----------- scripts/exregional_bias_correction_pm25.sh | 26 +++++++++--------- ush/config.aqm.community.yaml | 3 +- ush/config.aqm.nco.realtime.yaml | 1 + ush/config_defaults.yaml | 4 +++ ush/job_preamble.sh | 4 +++ ush/load_modules_run_task.sh | 6 ++-- ush/valid_param_vals.yaml | 1 + 8 files changed, 44 insertions(+), 33 deletions(-) diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index a17723b5c6..2d9840c3a1 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -188,23 +188,23 @@ POST_STEP cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/ozone/${yyyy} +if [ "${DO_SAVE_AIRNOW_HIST}" = "TRUE" ]; then + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} + cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} + + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + cp_vrfy ${COMINairnow}/${yyyy}/${PDY}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/grid/${cyc}z/${PDY} + cp_vrfy ${COMIN}/${NET}.${cycle}.*sfc*.nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/grid/${cyc}z/${PDY} +fi -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} -cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} - -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 -cp_vrfy ${COMINairnow}/${yyyy}/${PDY}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx021 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 - -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/grid/${cyc}z/${PDY} -cp_vrfy ${COMIN}/${NET}.${cycle}.*sfc*.nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/grid/${cyc}z/${PDY} - -#exit #----------------------------------------------------------------------------- # STEP 4: Performing Bias Correction for Ozone #----------------------------------------------------------------------------- diff --git a/scripts/exregional_bias_correction_pm25.sh b/scripts/exregional_bias_correction_pm25.sh index 63015ac346..fe11179ae4 100755 --- a/scripts/exregional_bias_correction_pm25.sh +++ b/scripts/exregional_bias_correction_pm25.sh @@ -188,20 +188,20 @@ POST_STEP cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/pm25/${yyyy} +if [ "${DO_AQM_SAVE_AIRNOW_HIST}" = "TRUE" ]; then + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/pm25/${yyyy} + cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/pm25/${yyyy} + + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 + mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 + cp_vrfy ${COMINairnow}/${yyyy}/${PDY}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 + cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 +fi -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/pm25/${yyyy} -cp_vrfy ${DATA}/out/pm25/${yyyy}/*nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/pm25/${yyyy} - -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 -mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 -cp_vrfy ${COMINairnow}/${yyyy}/${PDY}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/airnow/${yyyy}/${PDY}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m1}/${PDYm1}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m1}/airnow/${yyyy_m1}/${PDYm1}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m2}/${PDYm2}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m2}/airnow/${yyyy_m2}/${PDYm2}/b008 -cp_vrfy ${COMINairnow}/${yyyy_m3}/${PDYm3}/b008/xx031 ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm_m3}/airnow/${yyyy_m3}/${PDYm3}/b008 - -#exit #----------------------------------------------------------------------- # STEP 4: Performing Bias Correction for PM2.5 #----------------------------------------------------------------------- diff --git a/ush/config.aqm.community.yaml b/ush/config.aqm.community.yaml index bcf806eb9c..4e7a7e7ad6 100644 --- a/ush/config.aqm.community.yaml +++ b/ush/config.aqm.community.yaml @@ -7,7 +7,7 @@ user: workflow: USE_CRON_TO_RELAUNCH: true CRON_RELAUNCH_INTVL_MNTS: 3 - EXPT_SUBDIR: aqm_v16_test + EXPT_SUBDIR: aqm_community_aqmna13 PREDEF_GRID_NAME: AQM_NA_13km CCPP_PHYS_SUITE: FV3_GFS_v16 DATE_FIRST_CYCL: '2023011700' @@ -75,6 +75,7 @@ cpl_aqm_parm: DO_AQM_DUST: true DO_AQM_CANOPY: false DO_AQM_PRODUCT: true + DO_AQM_SAVE_AIRNOW_HIST: false AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf AQM_DUST_FILE_PREFIX: FENGSHA_p8_10km_inputs AQM_DUST_FILE_SUFFIX: .nc diff --git a/ush/config.aqm.nco.realtime.yaml b/ush/config.aqm.nco.realtime.yaml index d2c3d6c995..0e90d520d9 100644 --- a/ush/config.aqm.nco.realtime.yaml +++ b/ush/config.aqm.nco.realtime.yaml @@ -89,6 +89,7 @@ cpl_aqm_parm: DO_AQM_DUST: true DO_AQM_CANOPY: false DO_AQM_PRODUCT: true + DO_AQM_SAVE_AIRNOW_HIST: true AQM_BIO_FILE: BEIS_RRFScmaq_C775.ncf AQM_DUST_FILE_PREFIX: FENGSHA_p8_10km_inputs AQM_DUST_FILE_SUFFIX: .nc diff --git a/ush/config_defaults.yaml b/ush/config_defaults.yaml index 2b5ebecc57..d3f0abaf7e 100644 --- a/ush/config_defaults.yaml +++ b/ush/config_defaults.yaml @@ -2652,6 +2652,9 @@ cpl_aqm_parm: # DO_AQM_GEFS_LBCS: # Add GEFS aerosol LBCs to chemical LBCs # + # DO_AQM_SAVE_AIRNOW_HIST: + # Save bias-correction airnow training data + # # AQM_CONFIG_DIR: # Configuration directory for AQM # @@ -2750,6 +2753,7 @@ cpl_aqm_parm: DO_AQM_PRODUCT: true DO_AQM_CHEM_LBCS: true DO_AQM_GEFS_LBCS: false + DO_AQM_SAVE_AIRNOW_HIST: true AQM_CONFIG_DIR: "" AQM_BIO_DIR: "" diff --git a/ush/job_preamble.sh b/ush/job_preamble.sh index 6b7b5605dd..4c0ce2ed60 100644 --- a/ush/job_preamble.sh +++ b/ush/job_preamble.sh @@ -54,6 +54,10 @@ if [ "${RUN_ENVIR}" = "nco" ]; then COMROOT=$COMROOT setpdy.sh . ./PDY fi +else + export PDYm1=$( $DATE_UTIL --date "${PDY} -1 day" "+%Y%m%d" ) + export PDYm2=$( $DATE_UTIL --date "${PDY} -2 day" "+%Y%m%d" ) + export PDYm3=$( $DATE_UTIL --date "${PDY} -3 day" "+%Y%m%d" ) fi export CDATE=${PDY}${cyc} # diff --git a/ush/load_modules_run_task.sh b/ush/load_modules_run_task.sh index 1b213ee57a..ed34c2c822 100755 --- a/ush/load_modules_run_task.sh +++ b/ush/load_modules_run_task.sh @@ -127,9 +127,9 @@ if [ "${CPL_AQM}" = "TRUE" ]; then module load mod_nexus fi else -module use "${HOMEdir}/modulefiles" -module load "${BUILD_MOD_FN}" || print_err_msg_exit "\ -Loading of platform- and compiler-specific module file (BUILD_MOD_FN) + module use "${HOMEdir}/modulefiles" + module load "${BUILD_MOD_FN}" || print_err_msg_exit "\ + Loading of platform- and compiler-specific module file (BUILD_MOD_FN) for the workflow task specified by task_name failed: task_name = \"${task_name}\" BUILD_MOD_FN = \"${BUILD_MOD_FN}\"" diff --git a/ush/valid_param_vals.yaml b/ush/valid_param_vals.yaml index c11bf0e11e..a40b16eb3a 100644 --- a/ush/valid_param_vals.yaml +++ b/ush/valid_param_vals.yaml @@ -103,4 +103,5 @@ valid_vals_DO_AQM_CANOPY: [True, False] valid_vals_DO_AQM_PRODUCT: [True, False] valid_vals_DO_AQM_CHEM_LBCS: [True, False] valid_vals_DO_AQM_GEFS_LBCS: [True, False] +valid_vals_DO_AQM_SAVE_AIRNOW_HIST: [True, False] valid_vals_COLDSTART: [True, False] From 7eb20cd996f31e1a3325a5b7ed23385d34344cef Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Sun, 12 Feb 2023 19:03:36 +0000 Subject: [PATCH 116/119] fix typo --- scripts/exregional_bias_correction_o3.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/exregional_bias_correction_o3.sh b/scripts/exregional_bias_correction_o3.sh index 2d9840c3a1..df33f05036 100755 --- a/scripts/exregional_bias_correction_o3.sh +++ b/scripts/exregional_bias_correction_o3.sh @@ -188,7 +188,7 @@ POST_STEP cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${DATA}/data/bcdata.${yyyymm}/interpolated/ozone/${yyyy} -if [ "${DO_SAVE_AIRNOW_HIST}" = "TRUE" ]; then +if [ "${DO_AQM_SAVE_AIRNOW_HIST}" = "TRUE" ]; then mkdir_vrfy -p ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} cp_vrfy ${DATA}/out/ozone/${yyyy}/*nc ${AQM_AIRNOW_HIST_DIR}/bcdata.${yyyymm}/interpolated/ozone/${yyyy} From c054e826c3e6766f9d50b4e6616a874d92ead510 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Mon, 13 Feb 2023 17:51:11 +0000 Subject: [PATCH 117/119] change path to airnow history data on wcoss2 --- ush/machine/wcoss2.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/machine/wcoss2.yaml b/ush/machine/wcoss2.yaml index ccace81df1..2559a9ece8 100644 --- a/ush/machine/wcoss2.yaml +++ b/ush/machine/wcoss2.yaml @@ -46,7 +46,7 @@ cpl_aqm_parm: AQM_FIRE_DIR: /lfs/h2/emc/physics/noscrub/jianping.huang/data/RRFS_CMAQ/emissions/GSCE/RAVE.in.C793/RAVE_RT AQM_LBCS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/LBCS/AQM_NA13km_AM4_v1 AQM_GEFS_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/GEFS_DATA - AQM_AIRNOW_HIST_DIR: /lfs/h2/emc/physics/noscrub/kai.wang/Bias_correction/aqmv7.0 + AQM_AIRNOW_HIST_DIR: /lfs/h2/emc/physics/noscrub/jianping.huang/Bias_correction/aqmv7.0 NEXUS_INPUT_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus_emissions NEXUS_FIX_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/nexus/fix NEXUS_GFS_SFC_DIR: /lfs/h2/emc/lam/noscrub/RRFS_CMAQ/GFS_DATA From f9457e590e4cb5e50ee1629445c4677d6a37a81a Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Mon, 13 Feb 2023 20:12:31 +0000 Subject: [PATCH 118/119] remove commented out lines --- ush/config.aqm.community.yaml | 13 +++++-------- ush/config.aqm.nco.realtime.yaml | 4 ++-- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/ush/config.aqm.community.yaml b/ush/config.aqm.community.yaml index 4e7a7e7ad6..a406e86729 100644 --- a/ush/config.aqm.community.yaml +++ b/ush/config.aqm.community.yaml @@ -11,21 +11,18 @@ workflow: PREDEF_GRID_NAME: AQM_NA_13km CCPP_PHYS_SUITE: FV3_GFS_v16 DATE_FIRST_CYCL: '2023011700' - DATE_LAST_CYCL: '2023011700' + DATE_LAST_CYCL: '2023011706' INCR_CYCL_FREQ: 6 - FCST_LEN_HRS: 6 -# FCST_LEN_HRS: -1 -# FCST_LEN_CYCL: -# - 6 -# - 12 + FCST_LEN_HRS: -1 + FCST_LEN_CYCL: + - 6 + - 12 PREEXISTING_DIR_METHOD: rename VERBOSE: true COMPILER: intel DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 DO_REAL_TIME: false -# COLDSTART: false -# WARMSTART_CYCLE_DIR: /path/to/restart/dir nco: NET: aqm workflow_switches: diff --git a/ush/config.aqm.nco.realtime.yaml b/ush/config.aqm.nco.realtime.yaml index 0e90d520d9..d04a303026 100644 --- a/ush/config.aqm.nco.realtime.yaml +++ b/ush/config.aqm.nco.realtime.yaml @@ -25,8 +25,8 @@ workflow: DIAG_TABLE_TMPL_FN: diag_table_aqm.FV3_GFS_v16 FIELD_TABLE_TMPL_FN: field_table_aqm.FV3_GFS_v16 DO_REAL_TIME: true -# COLDSTART: false -# WARMSTART_CYCLE_DIR: /path/to/restart/dir + COLDSTART: false + WARMSTART_CYCLE_DIR: /path/to/restart/dir nco: envir: prod NET: aqm From 3466c95c2829fdc8f6e02a4e2215d74c058aacf2 Mon Sep 17 00:00:00 2001 From: "Chan-hoo.Jeon" Date: Mon, 13 Feb 2023 20:14:14 +0000 Subject: [PATCH 119/119] activte opsroot in sample --- ush/config.aqm.nco.realtime.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ush/config.aqm.nco.realtime.yaml b/ush/config.aqm.nco.realtime.yaml index d04a303026..4f842b0bef 100644 --- a/ush/config.aqm.nco.realtime.yaml +++ b/ush/config.aqm.nco.realtime.yaml @@ -32,7 +32,7 @@ nco: NET: aqm model_ver: v7.0 RUN: aqm_nco_aqmna13km -# OPSROOT: /path/to/custom/opsroot + OPSROOT: /path/to/custom/opsroot workflow_switches: RUN_TASK_MAKE_GRID: false RUN_TASK_MAKE_OROG: false