From 59604d60a787fc758380a1ef513601d6ffa97566 Mon Sep 17 00:00:00 2001 From: Walter Kolczynski - NOAA Date: Fri, 10 Jun 2022 03:29:16 -0400 Subject: [PATCH] Move remaining global post scripts over from UPP (#771) Several scripts currently located under NOAA-EMC/UPP are only used for global, so they have been moved within global-workflow so they can be managed by the global-workflow team. Scripts are just copied from the current tip of UPP develop, other than some changes to standardize style and indentation. Also coming over are four parm files that are used to produce GFS products. As a result, we are no longer linking the entire upp parm directory; instead we are creating individual links for the files we use that still reside in upp. Fixes #630 Fixes #769 --- .gitignore | 53 +- jobs/JGLOBAL_ATMOS_NCEPPOST | 153 ++++ jobs/JGLOBAL_ATMOS_POST_MANAGER | 104 +++ parm/post/global_1x1_paramlist_g2 | 755 ++++++++++++++++++++ parm/post/global_1x1_paramlist_g2.anl | 628 ++++++++++++++++ parm/post/global_1x1_paramlist_g2.f000 | 699 ++++++++++++++++++ parm/post/global_master-catchup_parmlist_g2 | 349 +++++++++ scripts/exgdas_atmos_nceppost.sh | 360 ++++++++++ scripts/exglobal_atmos_pmgr.sh | 74 ++ sorc/link_workflow.sh | 24 +- ush/fv3gfs_dwn_nems.sh | 109 +++ ush/gfs_nceppost.sh | 428 +++++++++++ ush/gfs_transfer.sh | 81 +++ ush/global_nceppost.sh | 492 +++++++++++++ ush/link_crtm_fix.sh | 35 + ush/mod_icec.sh | 23 + ush/trim_rh.sh | 17 + 17 files changed, 4362 insertions(+), 22 deletions(-) create mode 100755 jobs/JGLOBAL_ATMOS_NCEPPOST create mode 100755 jobs/JGLOBAL_ATMOS_POST_MANAGER create mode 100644 parm/post/global_1x1_paramlist_g2 create mode 100644 parm/post/global_1x1_paramlist_g2.anl create mode 100644 parm/post/global_1x1_paramlist_g2.f000 create mode 100644 parm/post/global_master-catchup_parmlist_g2 create mode 100755 scripts/exgdas_atmos_nceppost.sh create mode 100755 scripts/exglobal_atmos_pmgr.sh create mode 100755 ush/fv3gfs_dwn_nems.sh create mode 100755 ush/gfs_nceppost.sh create mode 100755 ush/gfs_transfer.sh create mode 100755 ush/global_nceppost.sh create mode 100755 ush/link_crtm_fix.sh create mode 100755 ush/mod_icec.sh create mode 100755 ush/trim_rh.sh diff --git a/.gitignore b/.gitignore index d920f42121..7cdf8a5ff9 100644 --- a/.gitignore +++ b/.gitignore @@ -24,7 +24,47 @@ fix/wafs parm/config/config.base parm/gldas parm/mon -parm/post +parm/post/AEROSOL_LUTS.datoptics_luts_DUST.dat +parm/post/gtg.config.gfs +parm/post/gtg_imprintings.txt +parm/post/optics_luts_SALT.dat +parm/post/optics_luts_SOOT.dat +parm/post/optics_luts_SUSO.dat +parm/post/optics_luts_WASO.dat +parm/post/params_grib2_tbl_new +parm/post/post_tag_gfs128 +parm/post/post_tag_gfs65 +parm/post/postcntrl_gefs.xml +parm/post/postcntrl_gefs_aerosol.xml +parm/post/postcntrl_gefs_anl.xml +parm/post/postcntrl_gefs_chem.xml +parm/post/postcntrl_gefs_f00.xml +parm/post/postcntrl_gfs.xml +parm/post/postcntrl_gfs_anl.xml +parm/post/postcntrl_gfs_f00.xml +parm/post/postcntrl_gfs_f00_two.xml +parm/post/postcntrl_gfs_flux.xml +parm/post/postcntrl_gfs_flux_f00.xml +parm/post/postcntrl_gfs_goes.xml +parm/post/postcntrl_gfs_goes.xml-new +parm/post/postcntrl_gfs_two.xml +parm/post/postcntrl_gfs_wafs.xml +parm/post/postcntrl_gfs_wafs_anl.xml +parm/post/postxconfig-NT-GEFS-ANL.txt +parm/post/postxconfig-NT-GEFS-F00.txt +parm/post/postxconfig-NT-GEFS.txt +parm/post/postxconfig-NT-GFS-ANL.txt +parm/post/postxconfig-NT-GFS-F00-TWO.txt +parm/post/postxconfig-NT-GFS-F00.txt +parm/post/postxconfig-NT-GFS-FLUX-F00.txt +parm/post/postxconfig-NT-GFS-FLUX.txt +parm/post/postxconfig-NT-GFS-GOES.txt +parm/post/postxconfig-NT-GFS-TWO.txt +parm/post/postxconfig-NT-GFS-WAFS-ANL.txt +parm/post/postxconfig-NT-GFS-WAFS.txt +parm/post/postxconfig-NT-GFS.txt +parm/post/postxconfig-NT-gefs-aerosol.txt +parm/post/postxconfig-NT-gefs-chem.txt parm/wafs # Ignore sorc and logs folders from externals @@ -73,6 +113,7 @@ sorc/radmon_bcoef.fd sorc/radmon_bcor.fd sorc/radmon_time.fd sorc/recentersigp.fd +sorc/upp.fd sorc/wafs_awc_wafavn.fd sorc/wafs_blending.fd sorc/wafs_blending_0p25.fd @@ -107,13 +148,10 @@ jobs/JGFS_ATMOS_WAFS_GRIB2 jobs/JGFS_ATMOS_WAFS_GRIB2_0P25 jobs/JGLOBAL_ATMOS_ANALYSIS jobs/JGLOBAL_ATMOS_ANALYSIS_CALC -jobs/JGLOBAL_ATMOS_NCEPPOST -jobs/JGLOBAL_ATMOS_POST_MANAGER # scripts symlinks scripts/exemcsfc_global_sfc_prep.sh scripts/exgdas_atmos_chgres_forenkf.sh scripts/exgdas_atmos_gldas.sh -scripts/exgdas_atmos_nceppost.sh scripts/exgdas_atmos_verfozn.sh scripts/exgdas_atmos_verfrad.sh scripts/exgdas_atmos_vminmon.sh @@ -132,7 +170,6 @@ scripts/exgfs_atmos_wafs_grib2.sh scripts/exgfs_atmos_wafs_grib2_0p25.sh scripts/exglobal_atmos_analysis.sh scripts/exglobal_atmos_analysis_calc.sh -scripts/exglobal_atmos_pmgr.sh scripts/exglobal_diag.sh # ush symlinks ush/calcanl_gfs.py @@ -142,13 +179,10 @@ ush/emcsfc_ice_blend.sh ush/emcsfc_snow.sh ush/fix_precip.sh ush/fv3gfs_driver_grid.sh -ush/fv3gfs_dwn_nems.sh ush/fv3gfs_filter_topo.sh ush/fv3gfs_make_grid.sh ush/fv3gfs_make_orog.sh ush/getncdimlen -ush/gfs_nceppost.sh -ush/gfs_transfer.sh ush/gldas_archive.sh ush/gldas_forcing.sh ush/gldas_get_data.sh @@ -160,12 +194,10 @@ ush/global_chgres_driver.sh ush/global_cycle.sh ush/global_cycle_driver.sh ush/gsi_utils.py -ush/link_crtm_fix.sh ush/minmon_xtrct_costs.pl ush/minmon_xtrct_gnorms.pl ush/minmon_xtrct_reduct.pl ush/mkwfsgbl.sh -ush/mod_icec.sh ush/ozn_xtrct.sh ush/radmon_ck_stdout.sh ush/radmon_err_rpt.sh @@ -173,7 +205,6 @@ ush/radmon_verf_angle.sh ush/radmon_verf_bcoef.sh ush/radmon_verf_bcor.sh ush/radmon_verf_time.sh -ush/trim_rh.sh ush/wafs_blending.sh ush/wafs_grib2.regrid.sh ush/wafs_intdsk.sh diff --git a/jobs/JGLOBAL_ATMOS_NCEPPOST b/jobs/JGLOBAL_ATMOS_NCEPPOST new file mode 100755 index 0000000000..d4b0983605 --- /dev/null +++ b/jobs/JGLOBAL_ATMOS_NCEPPOST @@ -0,0 +1,153 @@ +#!/bin/ksh +set -x + +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4='$SECONDS + ' +date + + +############################# +# Source relevant config files +############################# +configs="base post" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env post +status=$? +[[ $status -ne 0 ]] && exit $status + + +############################################## +# Obtain unique process id (pid) and make temp directory +############################################## +export pid=${pid:-$$} +export outid=${outid:-"LL$job"} +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir -p $DATA +cd $DATA + + +############################################## +# Run setpdy and initialize PDY variables +############################################## +export cycle="t${cyc}z" +setpdy.sh +. ./PDY + + +############################################## +# Determine Job Output Name on System +############################################## +export pgmout="OUTPUT.${pid}" +export pgmerr=errfile + +#################################### +# Specify version numbers +#################################### +export crtm_ver=${post_crtm_ver:-v2.2.6} +export gfs_ver=${gfs_ver:-v15.0.0} +export hwrf_ver=${hwrf_ver:-v11.0.5} +export g2tmpl_ver=${g2tmpl_ver:-v1.5.0} + +############################################## +# Set variables used in the exglobal script +############################################## +export CDATE=${CDATE:-${PDY}${cyc}} +export CDUMP=${CDUMP:-${RUN:-"gfs"}} +export COMPONENT=${COMPONENT:-atmos} + + +############################################## +# Begin JOB SPECIFIC work +############################################## +export APRUNP=${APRUN:-$APRUN_NP} +export RERUN=${RERUN:-NO} +export HOMECRTM=${HOMECRTM:-${NWROOT}/lib/crtm/${crtm_ver}} +export FIXCRTM=${CRTM_FIX:-${HOMECRTM}/fix} +export PARMpost=${PARMpost:-$HOMEgfs/parm/post} +export INLINE_POST=${WRITE_DOPOST:-".false."} + +export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + +[[ ! -d $COMOUT ]] && mkdir -m 775 -p $COMOUT + +if [ $RUN = gfs ];then + export FHOUT_PGB=${FHOUT_GFS:-3} #Output frequency of gfs pgb file at 1.0 and 0.5 deg. +fi +if [ $RUN = gdas ]; then + export IGEN_GFS="gfs_avn" + export IGEN_ANL="anal_gfs" + export IGEN_FCST="gfs_avn" + export IGEN_GDAS_ANL="anal_gdas" + export FHOUT_PGB=${FHOUT:-1} #Output frequency of gfs pgb file at 1.0 and 0.5 deg. +fi + +if [ $GRIBVERSION = grib2 ]; then + export IGEN_ANL="anal_gfs" + export IGEN_FCST="gfs_avn" + export IGEN_GFS="gfs_avn" +fi + +####################################### +# Specify Restart File Name to Key Off +####################################### +export restart_file=$COMIN/${RUN}.t${cyc}z.logf + +#################################### +# Specify Timeout Behavior of Post +# +# SLEEP_TIME - Amount of time to wait for +# a restart file before exiting +# SLEEP_INT - Amount of time to wait between +# checking for restart files +#################################### +export SLEEP_TIME=900 +export SLEEP_INT=5 + + +############################################################### +# Run relevant exglobal script +env +msg="HAS BEGUN on $(hostname)" +postmsg "$msg" +$LOGSCRIPT + + +$SCRgfs/ex${RUN}_atmos_nceppost.sh +status=$? +[[ $status -ne 0 ]] && exit $status + +############################################## +# End JOB SPECIFIC work +############################################## + +############################################## +# Final processing +############################################## +if [ -e "$pgmout" ]; then + cat $pgmout +fi + +msg="ENDED NORMALLY." +postmsg "$msg" + + +########################################## +# Remove the Temporary working directory +########################################## +cd $DATAROOT +[[ $KEEPDATA = "NO" ]] && rm -rf $DATA + +date +exit 0 diff --git a/jobs/JGLOBAL_ATMOS_POST_MANAGER b/jobs/JGLOBAL_ATMOS_POST_MANAGER new file mode 100755 index 0000000000..94c848627f --- /dev/null +++ b/jobs/JGLOBAL_ATMOS_POST_MANAGER @@ -0,0 +1,104 @@ +#!/bin/sh + +######################################## +# GFS post manager +######################################## + +export RUN_ENVIR=${RUN_ENVIR:-"nco"} +export PS4='$SECONDS + ' +date + +############################# +# Source relevant config files +############################# +set -x +configs="base post" +export EXPDIR=${EXPDIR:-$HOMEgfs/parm/config} +config_path=${EXPDIR:-$NWROOT/gfs.${gfs_ver}/parm/config} +for config in $configs; do + . $config_path/config.$config + status=$? + [[ $status -ne 0 ]] && exit $status +done + + +########################################## +# Source machine runtime environment +########################################## +. $HOMEgfs/env/${machine}.env post +status=$? +[[ $status -ne 0 ]] && exit $status + +set -xue +# #### 07/30/1999 ################### +# SET SHELL PROCESSING VARIABLES +# ################################### +export PS4='$SECONDS + ' +date + +#################################### +# Specify NET and RUN Name and model +#################################### +export NET=${NET:-gfs} +export RUN=${RUN:-gfs} +export COMPONENT=${COMPONENT:-atmos} + +#################################### +# obtain unique process id (pid) and make temp directories +#################################### +export pid=${pid:-$$} +export DATA=${DATA:-${DATAROOT}/${jobid:?}} +mkdir $DATA +cd $DATA + +#################################### +# Determine Job Output Name on System +#################################### +export outid="LL$job" +export jobid="${outid}.o${pid}" +export pgmout="OUTPUT.${pid}" + +#################################### +# Specify version numbers +#################################### +export gfs_ver=${gfs_ver:-v15.0.0} + +#################################### +# Specify Execution Areas +#################################### +export HOMEgfs=${HOMEgfs:-${NWROOT}/gfs.${gfs_ver}} +export EXECgfs=${HOMEgfs:-$HOMEgfs/exec} +export FIXgfs=${HOMEgfs:-$HOMEgfs/fix} +export PARMgfs=${HOMEgfs:-$HOMEgfs/parm} +export USHgfs=${HOMEgfs:-$HOMEgfs/ush} + +########################### +# Set up EXT variable +########################### +export EXT_FCST=NO + +################################### +# Set up the UTILITIES +################################### +# export HOMEutil=${HOMEutil:-/nw${envir}/util.${util_ver}} +# export utilscript=${utilscript:-$HOMEutil/ush} +# export utilexec=${utilexec:-$HOMEutil/exec} + +########################################### +# Run setpdy and initialize PDY variables +########################################### +export cycle=t${cyc}z +setpdy.sh +. ./PDY + +export ROTDIR=${ROTDIR:-${COMROOT:?}/$NET/$envir} +export COMIN=${COMIN:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} +export COMOUT=${COMOUT:-$ROTDIR/$RUN.$PDY/$cyc/$COMPONENT} + + +######################################################## +# Execute the script. +$HOMEgfs/scripts/exglobal_atmos_pmgr.sh +######################################################## + +date diff --git a/parm/post/global_1x1_paramlist_g2 b/parm/post/global_1x1_paramlist_g2 new file mode 100644 index 0000000000..553a42bc62 --- /dev/null +++ b/parm/post/global_1x1_paramlist_g2 @@ -0,0 +1,755 @@ +4LFTX:surface +5WAVH:500 mb +ABSV:1000 mb +ABSV:100 mb +ABSV:10 mb +ABSV:15 mb +ABSV:150 mb +ABSV:20 mb +ABSV:200 mb +ABSV:250 mb +ABSV:300 mb +ABSV:30 mb +ABSV:350 mb +ABSV:40 mb +ABSV:400 mb +ABSV:450 mb +ABSV:500 mb +ABSV:50 mb +ABSV:550 mb +ABSV:600 mb +ABSV:650 mb +ABSV:700 mb +ABSV:70 mb +ABSV:750 mb +ABSV:800 mb +ABSV:850 mb +ABSV:900 mb +ABSV:925 mb +ABSV:950 mb +ABSV:975 mb +ABSV:1 mb +ABSV:2 mb +ABSV:3 mb +ABSV:5 mb +ABSV:7 mb +ABSV:0.1 mb +ABSV:0.2 mb +ABSV:0.4 mb +ABSV:0.7 mb +ABSV:0.01 mb +ABSV:0.02 mb +ABSV:0.04 mb +ABSV:0.07 mb +ACPCP:surface +ALBDO:surface +APCP:surface +APTMP:2 m above ground +var discipline=0 master_table=2 parmcat=0 parm=21:2 m above ground +CAPE:180-0 mb above ground +CAPE:255-0 mb above ground +CAPE:90-0 mb above ground +CAPE:surface +CFRZR:surface +CICEP:surface +CIN:180-0 mb above ground +CIN:255-0 mb above ground +CIN:90-0 mb above ground +CIN:surface +CLMR:50 mb +CLMR:1000 mb +CLMR:100 mb +CLMR:150 mb +CLMR:200 mb +CLMR:250 mb +CLMR:300 mb +CLMR:350 mb +CLMR:400 mb +CLMR:450 mb +CLMR:500 mb +CLMR:550 mb +CLMR:600 mb +CLMR:650 mb +CLMR:700 mb +CLMR:750 mb +CLMR:800 mb +CLMR:850 mb +CLMR:900 mb +CLMR:925 mb +CLMR:950 mb +CLMR:975 mb +CLMR:1 hybrid level +CNWAT:surface +CPOFP:surface +CPRAT:surface +CRAIN:surface +CSNOW:surface +CWAT:entire atmosphere (considered as a single layer) +CWORK:entire atmosphere (considered as a single layer) +DLWRF:surface +DPT:2 m above ground +DSWRF:surface +FLDCP:surface +FRICV:surface +GFLUX:surface +GRLE:50 mb +GRLE:1000 mb +GRLE:100 mb +GRLE:150 mb +GRLE:200 mb +GRLE:250 mb +GRLE:300 mb +GRLE:350 mb +GRLE:400 mb +GRLE:450 mb +GRLE:500 mb +GRLE:550 mb +GRLE:600 mb +GRLE:650 mb +GRLE:700 mb +GRLE:750 mb +GRLE:800 mb +GRLE:850 mb +GRLE:900 mb +GRLE:925 mb +GRLE:950 mb +GRLE:975 mb +GRLE:1 hybrid level +GUST:surface +HCDC:high cloud layer +HGT:0C isotherm +HGT:1000 mb +HGT:100 mb +HGT:10 mb +HGT:150 mb +HGT:15 mb +HGT:200 mb +HGT:20 mb +HGT:250 mb +HGT:300 mb +HGT:30 mb +HGT:350 mb +HGT:400 mb +HGT:450 mb +HGT:40 mb +HGT:500 mb +HGT:50 mb +HGT:550 mb +HGT:600 mb +HGT:650 mb +HGT:700 mb +HGT:70 mb +HGT:750 mb +HGT:800 mb +HGT:850 mb +HGT:900 mb +HGT:925 mb +HGT:950 mb +HGT:975 mb +HGT:1 mb +HGT:2 mb +HGT:3 mb +HGT:5 mb +HGT:7 mb +HGT:0.1 mb +HGT:0.2 mb +HGT:0.4 mb +HGT:0.7 mb +HGT:0.01 mb +HGT:0.02 mb +HGT:0.04 mb +HGT:0.07 mb +HGT:cloud ceiling +HGT:highest tropospheric freezing level +HGT:max wind +HGT:PV=-2e-06 (Km^2/kg/s) surface +HGT:PV=2e-06 (Km^2/kg/s) surface +HGT:surface +HGT:tropopause +HINDEX:surface +HLCY:3000-0 m above ground +HPBL:surface +ICAHT:max wind +ICAHT:tropopause +ICEC:surface +ICETK:surface +ICETMP:surface +ICSEV:100 mb +ICSEV:150 mb +ICSEV:200 mb +ICSEV:250 mb +ICSEV:300 mb +ICSEV:350 mb +ICSEV:400 mb +ICSEV:450 mb +ICSEV:500 mb +ICSEV:550 mb +ICSEV:600 mb +ICSEV:650 mb +ICSEV:700 mb +ICSEV:750 mb +ICSEV:800 mb +ICSEV:850 mb +ICSEV:900 mb +ICSEV:950 mb +ICSEV:1000 mb +ICMR:50 mb +ICMR:1000 mb +ICMR:100 mb +ICMR:150 mb +ICMR:200 mb +ICMR:250 mb +ICMR:300 mb +ICMR:350 mb +ICMR:400 mb +ICMR:450 mb +ICMR:500 mb +ICMR:550 mb +ICMR:600 mb +ICMR:650 mb +ICMR:700 mb +ICMR:750 mb +ICMR:800 mb +ICMR:850 mb +ICMR:900 mb +ICMR:925 mb +ICMR:950 mb +ICMR:975 mb +ICMR:1 hybrid level +LAND:surface +LCDC:low cloud layer +LFTX:surface +LHTFL:surface +MSLET:mean sea level +O3MR:1000 mb +O3MR:100 mb +O3MR:10 mb +O3MR:15 mb +O3MR:150 mb +O3MR:20 mb +O3MR:200 mb +O3MR:250 mb +O3MR:300 mb +O3MR:30 mb +O3MR:350 mb +O3MR:40 mb +O3MR:400 mb +O3MR:450 mb +O3MR:500 mb +O3MR:50 mb +O3MR:550 mb +O3MR:600 mb +O3MR:650 mb +O3MR:700 mb +O3MR:70 mb +O3MR:750 mb +O3MR:800 mb +O3MR:850 mb +O3MR:900 mb +O3MR:925 mb +O3MR:950 mb +O3MR:975 mb +O3MR:1 mb +O3MR:2 mb +O3MR:3 mb +O3MR:5 mb +O3MR:7 mb +O3MR:0.1 mb +O3MR:0.2 mb +O3MR:0.4 mb +O3MR:0.7 mb +O3MR:0.01 mb +O3MR:0.02 mb +O3MR:0.04 mb +O3MR:0.07 mb +MCDC:middle cloud layer +PEVPR:surface +PLPL:255-0 mb above ground +POT:0.995 sigma level +PRATE:surface +PRES:80 m above ground +PRES:convective cloud bottom level +PRES:convective cloud top level +PRES:high cloud bottom level +PRES:high cloud top level +PRES:low cloud bottom level +PRES:low cloud top level +PRES:max wind +PRES:middle cloud bottom level +PRES:middle cloud top level +PRES:PV=-2e-06 (Km^2/kg/s) surface +PRES:PV=2e-06 (Km^2/kg/s) surface +PRES:surface +PRES:tropopause +PRMSL:mean sea level +PWAT:entire atmosphere +REFC:entire atmosphere +REFD:1 hybrid level +REFD:2 hybrid level +REFD:1000 m above ground +REFD:4000 m above ground +RH:0.33-1 sigma layer +RH:0.44-0.72 sigma layer +RH:0.44-1 sigma layer +RH:0.72-0.94 sigma layer +RH:0.995 sigma level +RH:0C isotherm +RH:1000 mb +RH:100 mb +RH:10 mb +RH:15 mb +RH:150 mb +RH:20 mb +RH:200 mb +RH:250 mb +RH:2 m above ground +RH:300 mb +RH:30-0 mb above ground +RH:30 mb +RH:350 mb +RH:40 mb +RH:400 mb +RH:450 mb +RH:500 mb +RH:50 mb +RH:550 mb +RH:600 mb +RH:650 mb +RH:700 mb +RH:70 mb +RH:750 mb +RH:800 mb +RH:850 mb +RH:900 mb +RH:925 mb +RH:950 mb +RH:975 mb +RH:1 mb +RH:2 mb +RH:3 mb +RH:5 mb +RH:7 mb +RH:0.1 mb +RH:0.2 mb +RH:0.4 mb +RH:0.7 mb +RH:0.01 mb +RH:0.02 mb +RH:0.04 mb +RH:0.07 mb +RH:entire atmosphere (considered as a single layer) +RH:highest tropospheric freezing level +RWMR:50 mb +RWMR:1000 mb +RWMR:100 mb +RWMR:150 mb +RWMR:200 mb +RWMR:250 mb +RWMR:300 mb +RWMR:350 mb +RWMR:400 mb +RWMR:450 mb +RWMR:500 mb +RWMR:550 mb +RWMR:600 mb +RWMR:650 mb +RWMR:700 mb +RWMR:750 mb +RWMR:800 mb +RWMR:850 mb +RWMR:900 mb +RWMR:925 mb +RWMR:950 mb +RWMR:975 mb +RWMR:1 hybrid level +SHTFL:surface +SFCR:surface +SOILW:0-0.1 m below ground +SOILW:0.1-0.4 m below ground +SOILW:0.4-1 m below ground +SOILW:1-2 m below ground +SOTYP:surface +SPFH:1000 mb +SPFH:100 mb +SPFH:10 mb +SPFH:15 mb +SPFH:150 mb +SPFH:20 mb +SPFH:200 mb +SPFH:250 mb +SPFH:300 mb +SPFH:30 mb +SPFH:350 mb +SPFH:40 mb +SPFH:400 mb +SPFH:450 mb +SPFH:500 mb +SPFH:50 mb +SPFH:550 mb +SPFH:600 mb +SPFH:650 mb +SPFH:700 mb +SPFH:70 mb +SPFH:750 mb +SPFH:800 mb +SPFH:850 mb +SPFH:900 mb +SPFH:925 mb +SPFH:950 mb +SPFH:975 mb +SPFH:1 mb +SPFH:2 mb +SPFH:3 mb +SPFH:5 mb +SPFH:7 mb +SPFH:0.1 mb +SPFH:0.2 mb +SPFH:0.4 mb +SPFH:0.7 mb +SPFH:0.01 mb +SPFH:0.02 mb +SPFH:0.04 mb +SPFH:0.07 mb +SPFH:2 m above ground +SPFH:30-0 mb above ground +SPFH:80 m above ground +SNMR:50 mb +SNMR:1000 mb +SNMR:100 mb +SNMR:150 mb +SNMR:200 mb +SNMR:250 mb +SNMR:300 mb +SNMR:350 mb +SNMR:400 mb +SNMR:450 mb +SNMR:500 mb +SNMR:550 mb +SNMR:600 mb +SNMR:650 mb +SNMR:700 mb +SNMR:750 mb +SNMR:800 mb +SNMR:850 mb +SNMR:900 mb +SNMR:925 mb +SNMR:950 mb +SNMR:975 mb +SNMR:1 hybrid level +SOILL:0-0.1 m below ground +SOILL:0.1-0.4 m below ground +SOILL:0.4-1 m below ground +SOILL:1-2 m below ground +SUNSD:surface +TCDC:50 mb +TCDC:1000 mb +TCDC:100 mb +TCDC:150 mb +TCDC:200 mb +TCDC:250 mb +TCDC:300 mb +TCDC:350 mb +TCDC:400 mb +TCDC:450 mb +TCDC:500 mb +TCDC:550 mb +TCDC:600 mb +TCDC:650 mb +TCDC:700 mb +TCDC:750 mb +TCDC:800 mb +TCDC:850 mb +TCDC:900 mb +TCDC:925 mb +TCDC:950 mb +TCDC:975 mb +TCDC:boundary layer cloud layer +TCDC:convective cloud layer +TCDC:entire atmosphere +TCDC:high cloud layer +TCDC:low cloud layer +TCDC:middle cloud layer +TMAX:2 m above ground +TMIN:2 m above ground +TSOIL:0-0.1 m below ground +TSOIL:0.1-0.4 m below ground +TSOIL:0.4-1 m below ground +TMP:0.995 sigma level +TMP:1000 mb +TMP:100 m above ground +TMP:100 mb +TMP:10 mb +TMP:15 mb +TSOIL:1-2 m below ground +TMP:150 mb +TMP:1829 m above mean sea level +TMP:200 mb +TMP:20 mb +TMP:250 mb +TMP:2743 m above mean sea level +TMP:2 m above ground +TMP:300 mb +TMP:30-0 mb above ground +TMP:30 mb +TMP:350 mb +TMP:3658 m above mean sea level +TMP:400 mb +TMP:40 mb +TMP:450 mb +TMP:500 mb +TMP:50 mb +TMP:550 mb +TMP:600 mb +TMP:650 mb +TMP:700 mb +TMP:70 mb +TMP:750 mb +TMP:800 mb +TMP:80 m above ground +TMP:850 mb +TMP:900 mb +TMP:925 mb +TMP:950 mb +TMP:975 mb +TMP:1 mb +TMP:2 mb +TMP:3 mb +TMP:5 mb +TMP:7 mb +TMP:0.1 mb +TMP:0.2 mb +TMP:0.4 mb +TMP:0.7 mb +TMP:0.01 mb +TMP:0.02 mb +TMP:0.04 mb +TMP:0.07 mb +TMP:high cloud top level +TMP:low cloud top level +TMP:max wind +TMP:middle cloud top level +TMP:PV=-2e-06 (Km^2/kg/s) surface +TMP:PV=2e-06 (Km^2/kg/s) surface +TMP:surface +TMP:tropopause +TOZNE:entire atmosphere (considered as a single layer) +UFLX:surface +UGRD:0.995 sigma level +UGRD:1000 mb +UGRD:100 m above ground +UGRD:100 mb +UGRD:10 m above ground +UGRD:10 mb +UGRD:15 mb +UGRD:150 mb +UGRD:1829 m above mean sea level +UGRD:200 mb +UGRD:20 mb +UGRD:20 m above ground +UGRD:250 mb +UGRD:2743 m above mean sea level +UGRD:300 mb +UGRD:30 m above ground +UGRD:30-0 mb above ground +UGRD:30 mb +UGRD:350 mb +UGRD:3658 m above mean sea level +UGRD:40 mb +UGRD:400 mb +UGRD:40 m above ground +UGRD:450 mb +UGRD:500 mb +UGRD:50 mb +UGRD:50 m above ground +UGRD:550 mb +UGRD:600 mb +UGRD:650 mb +UGRD:700 mb +UGRD:70 mb +UGRD:750 mb +UGRD:800 mb +UGRD:80 m above ground +UGRD:850 mb +UGRD:900 mb +UGRD:925 mb +UGRD:950 mb +UGRD:975 mb +UGRD:1 mb +UGRD:2 mb +UGRD:3 mb +UGRD:5 mb +UGRD:7 mb +UGRD:0.1 mb +UGRD:0.2 mb +UGRD:0.4 mb +UGRD:0.7 mb +UGRD:0.01 mb +UGRD:0.02 mb +UGRD:0.04 mb +UGRD:0.07 mb +UGRD:max wind +UGRD:planetary boundary layer +UGRD:PV=-2e-06 (Km^2/kg/s) surface +UGRD:PV=2e-06 (Km^2/kg/s) surface +UGRD:tropopause +U-GWD:surface +ULWRF:surface +ULWRF:top of atmosphere +USTM:6000-0 m above ground +USWRF:surface +USWRF:top of atmosphere +VEG:surface +VFLX:surface +VGRD:0.995 sigma level +VGRD:1000 mb +VGRD:100 m above ground +VGRD:100 mb +VGRD:10 m above ground +VGRD:10 mb +VGRD:15 mb +VGRD:150 mb +VGRD:1829 m above mean sea level +VGRD:200 mb +VGRD:20 mb +VGRD:20 m above ground +VGRD:250 mb +VGRD:2743 m above mean sea level +VGRD:300 mb +VGRD:30 m above ground +VGRD:30-0 mb above ground +VGRD:30 mb +VGRD:350 mb +VGRD:3658 m above mean sea level +VGRD:40 mb +VGRD:400 mb +VGRD:40 m above ground +VGRD:450 mb +VGRD:500 mb +VGRD:50 mb +VGRD:50 m above ground +VGRD:550 mb +VGRD:600 mb +VGRD:650 mb +VGRD:700 mb +VGRD:70 mb +VGRD:750 mb +VGRD:800 mb +VGRD:80 m above ground +VGRD:850 mb +VGRD:900 mb +VGRD:925 mb +VGRD:950 mb +VGRD:975 mb +VGRD:1 mb +VGRD:2 mb +VGRD:3 mb +VGRD:5 mb +VGRD:7 mb +VGRD:0.1 mb +VGRD:0.2 mb +VGRD:0.4 mb +VGRD:0.7 mb +VGRD:0.01 mb +VGRD:0.02 mb +VGRD:0.04 mb +VGRD:0.07 mb +VGRD:max wind +VGRD:planetary boundary layer +VGRD:PV=-2e-06 (Km^2/kg/s) surface +VGRD:PV=2e-06 (Km^2/kg/s) surface +VGRD:tropopause +V-GWD:surface +VRATE:planetary boundary layer +VSTM:6000-0 m above ground +DZDT:1000 mb +DZDT:100 mb +DZDT:10 mb +DZDT:15 mb +DZDT:150 mb +DZDT:20 mb +DZDT:200 mb +DZDT:250 mb +DZDT:300 mb +DZDT:30 mb +DZDT:350 mb +DZDT:40 mb +DZDT:400 mb +DZDT:450 mb +DZDT:500 mb +DZDT:50 mb +DZDT:550 mb +DZDT:600 mb +DZDT:650 mb +DZDT:700 mb +DZDT:70 mb +DZDT:750 mb +DZDT:800 mb +DZDT:850 mb +DZDT:900 mb +DZDT:925 mb +DZDT:950 mb +DZDT:975 mb +DZDT:1 mb +DZDT:2 mb +DZDT:3 mb +DZDT:5 mb +DZDT:7 mb +DZDT:0.1 mb +DZDT:0.2 mb +DZDT:0.4 mb +DZDT:0.7 mb +DZDT:0.01 mb +DZDT:0.02 mb +DZDT:0.04 mb +DZDT:0.07 mb +VVEL:0.995 sigma level +VVEL:1000 mb +VVEL:100 mb +VVEL:10 mb +VVEL:15 mb +VVEL:150 mb +VVEL:20 mb +VVEL:200 mb +VVEL:250 mb +VVEL:300 mb +VVEL:30 mb +VVEL:350 mb +VVEL:40 mb +VVEL:400 mb +VVEL:450 mb +VVEL:500 mb +VVEL:50 mb +VVEL:550 mb +VVEL:600 mb +VVEL:650 mb +VVEL:700 mb +VVEL:70 mb +VVEL:750 mb +VVEL:800 mb +VVEL:850 mb +VVEL:900 mb +VVEL:925 mb +VVEL:950 mb +VVEL:975 mb +VVEL:1 mb +VVEL:2 mb +VVEL:3 mb +VVEL:5 mb +VVEL:7 mb +VVEL:0.1 mb +VVEL:0.2 mb +VVEL:0.4 mb +VVEL:0.7 mb +VVEL:0.01 mb +VVEL:0.02 mb +VVEL:0.04 mb +VVEL:0.07 mb +VWSH:PV=-2e-06 (Km^2/kg/s) surface +VWSH:PV=2e-06 (Km^2/kg/s) surface +VWSH:tropopause +WATR:surface +WEASD:surface +WILT:surface +SNOD:surface +VIS:surface +ICEG:10 m above mean sea level diff --git a/parm/post/global_1x1_paramlist_g2.anl b/parm/post/global_1x1_paramlist_g2.anl new file mode 100644 index 0000000000..dd340636d6 --- /dev/null +++ b/parm/post/global_1x1_paramlist_g2.anl @@ -0,0 +1,628 @@ +4LFTX:surface +5WAVH:500 mb +ABSV:1000 mb +ABSV:100 mb +ABSV:10 mb +ABSV:15 mb +ABSV:150 mb +ABSV:20 mb +ABSV:200 mb +ABSV:250 mb +ABSV:300 mb +ABSV:30 mb +ABSV:350 mb +ABSV:40 mb +ABSV:400 mb +ABSV:450 mb +ABSV:500 mb +ABSV:50 mb +ABSV:550 mb +ABSV:600 mb +ABSV:650 mb +ABSV:700 mb +ABSV:70 mb +ABSV:750 mb +ABSV:800 mb +ABSV:850 mb +ABSV:900 mb +ABSV:925 mb +ABSV:950 mb +ABSV:975 mb +ABSV:1 mb +ABSV:2 mb +ABSV:3 mb +ABSV:5 mb +ABSV:7 mb +ABSV:0.1 mb +ABSV:0.2 mb +ABSV:0.4 mb +ABSV:0.7 mb +ABSV:0.01 mb +ABSV:0.02 mb +ABSV:0.04 mb +ABSV:0.07 mb +CAPE:180-0 mb above ground +CAPE:surface +CFRZR:surface +CICEP:surface +CIN:180-0 mb above ground +CIN:surface +CLMR:50 mb +CLMR:1000 mb +CLMR:100 mb +CLMR:150 mb +CLMR:200 mb +CLMR:250 mb +CLMR:300 mb +CLMR:350 mb +CLMR:400 mb +CLMR:450 mb +CLMR:500 mb +CLMR:550 mb +CLMR:600 mb +CLMR:650 mb +CLMR:700 mb +CLMR:750 mb +CLMR:800 mb +CLMR:850 mb +CLMR:900 mb +CLMR:925 mb +CLMR:950 mb +CLMR:975 mb +CLMR:1 hybrid level +CNWAT:surface +CPOFP:surface +CRAIN:surface +CSNOW:surface +CWAT:entire atmosphere (considered as a single layer) +DPT:2 m above ground +GRLE:50 mb +GRLE:1000 mb +GRLE:100 mb +GRLE:150 mb +GRLE:200 mb +GRLE:250 mb +GRLE:300 mb +GRLE:350 mb +GRLE:400 mb +GRLE:450 mb +GRLE:500 mb +GRLE:550 mb +GRLE:600 mb +GRLE:650 mb +GRLE:700 mb +GRLE:750 mb +GRLE:800 mb +GRLE:850 mb +GRLE:900 mb +GRLE:925 mb +GRLE:950 mb +GRLE:975 mb +GRLE:1 hybrid level +FRICV:surface +HGT:0C isotherm +HGT:1000 mb +HGT:100 mb +HGT:10 mb +HGT:150 mb +HGT:15 mb +HGT:200 mb +HGT:20 mb +HGT:250 mb +HGT:300 mb +HGT:30 mb +HGT:350 mb +HGT:400 mb +HGT:40 mb +HGT:450 mb +HGT:500 mb +HGT:50 mb +HGT:550 mb +HGT:600 mb +HGT:650 mb +HGT:700 mb +HGT:70 mb +HGT:750 mb +HGT:800 mb +HGT:850 mb +HGT:900 mb +HGT:925 mb +HGT:950 mb +HGT:975 mb +HGT:1 mb +HGT:2 mb +HGT:3 mb +HGT:5 mb +HGT:7 mb +HGT:0.1 mb +HGT:0.2 mb +HGT:0.4 mb +HGT:0.7 mb +HGT:0.01 mb +HGT:0.02 mb +HGT:0.04 mb +HGT:0.07 mb +HGT:highest tropospheric freezing level +HGT:max wind +HGT:PV=-2e-06 (Km^2/kg/s) surface +HGT:PV=2e-06 (Km^2/kg/s) surface +HGT:surface +HGT:tropopause +HLCY:3000-0 m above ground +ICAHT:max wind +ICAHT:tropopause +ICETK:surface +ICETMP:surface +ICMR:50 mb +ICMR:1000 mb +ICMR:100 mb +ICMR:150 mb +ICMR:200 mb +ICMR:250 mb +ICMR:300 mb +ICMR:350 mb +ICMR:400 mb +ICMR:450 mb +ICMR:500 mb +ICMR:550 mb +ICMR:600 mb +ICMR:650 mb +ICMR:700 mb +ICMR:750 mb +ICMR:800 mb +ICMR:850 mb +ICMR:900 mb +ICMR:925 mb +ICMR:950 mb +ICMR:975 mb +ICMR:1 hybrid level +LFTX:surface +MSLET:mean sea level +O3MR:1000 mb +O3MR:100 mb +O3MR:10 mb +O3MR:15 mb +O3MR:150 mb +O3MR:20 mb +O3MR:200 mb +O3MR:250 mb +O3MR:300 mb +O3MR:30 mb +O3MR:350 mb +O3MR:40 mb +O3MR:400 mb +O3MR:450 mb +O3MR:500 mb +O3MR:50 mb +O3MR:550 mb +O3MR:600 mb +O3MR:650 mb +O3MR:700 mb +O3MR:70 mb +O3MR:750 mb +O3MR:800 mb +O3MR:850 mb +O3MR:900 mb +O3MR:925 mb +O3MR:950 mb +O3MR:975 mb +O3MR:1 mb +O3MR:2 mb +O3MR:3 mb +O3MR:5 mb +O3MR:7 mb +O3MR:0.1 mb +O3MR:0.2 mb +O3MR:0.4 mb +O3MR:0.7 mb +O3MR:0.01 mb +O3MR:0.02 mb +O3MR:0.04 mb +O3MR:0.07 mb +POT:0.995 sigma level +PRATE:surface +PRES:max wind +PRES:PV=-2e-06 (Km^2/kg/s) surface +PRES:PV=2e-06 (Km^2/kg/s) surface +PRES:surface +PRES:tropopause +PRMSL:mean sea level +PWAT:entire atmosphere +RH:0.33-1 sigma layer +RH:0.44-0.72 sigma layer +RH:0.44-1 sigma layer +RH:0.72-0.94 sigma layer +RH:0.995 sigma level +RH:0C isotherm +RH:1000 mb +RH:100 mb +RH:10 mb +RH:15 mb +RH:150 mb +RH:20 mb +RH:200 mb +RH:250 mb +RH:30-0 mb above ground +RH:300 mb +RH:30 mb +RH:350 mb +RH:40 mb +RH:400 mb +RH:450 mb +RH:500 mb +RH:50 mb +RH:550 mb +RH:600 mb +RH:650 mb +RH:700 mb +RH:70 mb +RH:750 mb +RH:800 mb +RH:850 mb +RH:900 mb +RH:925 mb +RH:950 mb +RH:975 mb +RH:1 mb +RH:2 mb +RH:3 mb +RH:5 mb +RH:7 mb +RH:0.1 mb +RH:0.2 mb +RH:0.4 mb +RH:0.7 mb +RH:0.01 mb +RH:0.02 mb +RH:0.04 mb +RH:0.07 mb +RH:entire atmosphere (considered as a single layer) +RH:highest tropospheric freezing level +SFCR:surface +RWMR:50 mb +RWMR:1000 mb +RWMR:100 mb +RWMR:150 mb +RWMR:200 mb +RWMR:250 mb +RWMR:300 mb +RWMR:350 mb +RWMR:400 mb +RWMR:450 mb +RWMR:500 mb +RWMR:550 mb +RWMR:600 mb +RWMR:650 mb +RWMR:700 mb +RWMR:750 mb +RWMR:800 mb +RWMR:850 mb +RWMR:900 mb +RWMR:925 mb +RWMR:950 mb +RWMR:975 mb +RWMR:1 hybrid level +SNMR:50 mb +SNMR:1000 mb +SNMR:100 mb +SNMR:150 mb +SNMR:200 mb +SNMR:250 mb +SNMR:300 mb +SNMR:350 mb +SNMR:400 mb +SNMR:450 mb +SNMR:500 mb +SNMR:550 mb +SNMR:600 mb +SNMR:650 mb +SNMR:700 mb +SNMR:750 mb +SNMR:800 mb +SNMR:850 mb +SNMR:900 mb +SNMR:925 mb +SNMR:950 mb +SNMR:975 mb +SNMR:1 hybrid level +SOILL:0-0.1 m below ground +SOILL:0.1-0.4 m below ground +SOILL:0.4-1 m below ground +SOILL:1-2 m below ground +SOTYP:surface +SPFH:1000 mb +SPFH:100 mb +SPFH:10 mb +SPFH:15 mb +SPFH:150 mb +SPFH:200 mb +SPFH:20 mb +SPFH:250 mb +SPFH:300 mb +SPFH:30 mb +SPFH:350 mb +SPFH:400 mb +SPFH:40 mb +SPFH:450 mb +SPFH:500 mb +SPFH:50 mb +SPFH:550 mb +SPFH:600 mb +SPFH:650 mb +SPFH:700 mb +SPFH:70 mb +SPFH:750 mb +SPFH:800 mb +SPFH:850 mb +SPFH:900 mb +SPFH:925 mb +SPFH:950 mb +SPFH:975 mb +SPFH:1 mb +SPFH:2 mb +SPFH:3 mb +SPFH:5 mb +SPFH:7 mb +SPFH:0.1 mb +SPFH:0.2 mb +SPFH:0.4 mb +SPFH:0.7 mb +SPFH:0.01 mb +SPFH:0.02 mb +SPFH:0.04 mb +SPFH:0.07 mb +SPFH:30-0 mb above ground +TMP:0.995 sigma level +TMP:1000 mb +TMP:100 m above ground +TMP:100 mb +TMP:10 mb +TMP:150 mb +TMP:15 mb +TMP:1829 m above mean sea level +TMP:200 mb +TMP:20 mb +TMP:250 mb +TMP:2743 m above mean sea level +TMP:30-0 mb above ground +TMP:300 mb +TMP:30 mb +TMP:350 mb +TMP:3658 m above mean sea level +TMP:400 mb +TMP:40 mb +TMP:450 mb +TMP:500 mb +TMP:50 mb +TMP:550 mb +TMP:600 mb +TMP:650 mb +TMP:700 mb +TMP:70 mb +TMP:750 mb +TMP:800 mb +TMP:80 m above ground +TMP:850 mb +TMP:900 mb +TMP:925 mb +TMP:950 mb +TMP:975 mb +TMP:1 mb +TMP:2 mb +TMP:3 mb +TMP:5 mb +TMP:7 mb +TMP:0.1 mb +TMP:0.2 mb +TMP:0.4 mb +TMP:0.7 mb +TMP:0.01 mb +TMP:0.02 mb +TMP:0.04 mb +TMP:0.07 mb +TMP:max wind +TMP:PV=-2e-06 (Km^2/kg/s) surface +TMP:PV=2e-06 (Km^2/kg/s) surface +TMP:tropopause +TOZNE:entire atmosphere (considered as a single layer) +UGRD:0.995 sigma level +UGRD:1000 mb +UGRD:100 m above ground +UGRD:100 mb +UGRD:10 mb +UGRD:150 mb +UGRD:15 mb +UGRD:1829 m above mean sea level +UGRD:200 mb +UGRD:20 mb +UGRD:20 m above ground +UGRD:250 mb +UGRD:2743 m above mean sea level +UGRD:30-0 mb above ground +UGRD:300 mb +UGRD:30 mb +UGRD:30 m above ground +UGRD:350 mb +UGRD:3658 m above mean sea level +UGRD:400 mb +UGRD:40 mb +UGRD:40 m above ground +UGRD:450 mb +UGRD:500 mb +UGRD:50 mb +UGRD:50 m above ground +UGRD:550 mb +UGRD:600 mb +UGRD:650 mb +UGRD:700 mb +UGRD:70 mb +UGRD:750 mb +UGRD:800 mb +UGRD:80 m above ground +UGRD:850 mb +UGRD:900 mb +UGRD:925 mb +UGRD:950 mb +UGRD:975 mb +UGRD:1 mb +UGRD:2 mb +UGRD:3 mb +UGRD:5 mb +UGRD:7 mb +UGRD:0.1 mb +UGRD:0.2 mb +UGRD:0.4 mb +UGRD:0.7 mb +UGRD:0.01 mb +UGRD:0.02 mb +UGRD:0.04 mb +UGRD:0.07 mb +UGRD:max wind +UGRD:PV=-2e-06 (Km^2/kg/s) surface +UGRD:PV=2e-06 (Km^2/kg/s) surface +UGRD:tropopause +USTM:6000-0 m above ground +VEG:surface +VGRD:0.995 sigma level +VGRD:1000 mb +VGRD:100 m above ground +VGRD:100 mb +VGRD:10 mb +VGRD:150 mb +VGRD:15 mb +VGRD:1829 m above mean sea level +VGRD:200 mb +VGRD:20 mb +VGRD:20 m above ground +VGRD:250 mb +VGRD:2743 m above mean sea level +VGRD:30-0 mb above ground +VGRD:300 mb +VGRD:30 mb +VGRD:30 m above ground +VGRD:350 mb +VGRD:3658 m above mean sea level +VGRD:400 mb +VGRD:40 mb +VGRD:40 m above ground +VGRD:450 mb +VGRD:500 mb +VGRD:50 mb +VGRD:50 m above ground +VGRD:550 mb +VGRD:600 mb +VGRD:650 mb +VGRD:700 mb +VGRD:70 mb +VGRD:750 mb +VGRD:800 mb +VGRD:80 m above ground +VGRD:850 mb +VGRD:900 mb +VGRD:925 mb +VGRD:950 mb +VGRD:975 mb +VGRD:1 mb +VGRD:2 mb +VGRD:3 mb +VGRD:5 mb +VGRD:7 mb +VGRD:0.1 mb +VGRD:0.2 mb +VGRD:0.4 mb +VGRD:0.7 mb +VGRD:0.01 mb +VGRD:0.02 mb +VGRD:0.04 mb +VGRD:0.07 mb +VGRD:max wind +VGRD:PV=-2e-06 (Km^2/kg/s) surface +VGRD:PV=2e-06 (Km^2/kg/s) surface +VGRD:tropopause +VSTM:6000-0 m above ground +DZDT:1000 mb +DZDT:100 mb +DZDT:10 mb +DZDT:15 mb +DZDT:150 mb +DZDT:20 mb +DZDT:200 mb +DZDT:250 mb +DZDT:300 mb +DZDT:30 mb +DZDT:350 mb +DZDT:40 mb +DZDT:400 mb +DZDT:450 mb +DZDT:500 mb +DZDT:50 mb +DZDT:550 mb +DZDT:600 mb +DZDT:650 mb +DZDT:700 mb +DZDT:70 mb +DZDT:750 mb +DZDT:800 mb +DZDT:850 mb +DZDT:900 mb +DZDT:925 mb +DZDT:950 mb +DZDT:975 mb +DZDT:1 mb +DZDT:2 mb +DZDT:3 mb +DZDT:5 mb +DZDT:7 mb +DZDT:0.1 mb +DZDT:0.2 mb +DZDT:0.4 mb +DZDT:0.7 mb +DZDT:0.01 mb +DZDT:0.02 mb +DZDT:0.04 mb +DZDT:0.07 mb +VVEL:0.995 sigma level +VVEL:1000 mb +VVEL:100 mb +VVEL:10 mb +VVEL:15 mb +VVEL:150 mb +VVEL:20 mb +VVEL:200 mb +VVEL:250 mb +VVEL:300 mb +VVEL:30 mb +VVEL:350 mb +VVEL:40 mb +VVEL:400 mb +VVEL:450 mb +VVEL:500 mb +VVEL:50 mb +VVEL:550 mb +VVEL:600 mb +VVEL:650 mb +VVEL:700 mb +VVEL:70 mb +VVEL:750 mb +VVEL:800 mb +VVEL:850 mb +VVEL:900 mb +VVEL:925 mb +VVEL:950 mb +VVEL:975 mb +VVEL:1 mb +VVEL:2 mb +VVEL:3 mb +VVEL:5 mb +VVEL:7 mb +VVEL:0.1 mb +VVEL:0.2 mb +VVEL:0.4 mb +VVEL:0.7 mb +VVEL:0.01 mb +VVEL:0.02 mb +VVEL:0.04 mb +VVEL:0.07 mb +VWSH:PV=-2e-06 (Km^2/kg/s) surface +VWSH:PV=2e-06 (Km^2/kg/s) surface +VWSH:tropopause diff --git a/parm/post/global_1x1_paramlist_g2.f000 b/parm/post/global_1x1_paramlist_g2.f000 new file mode 100644 index 0000000000..615022063b --- /dev/null +++ b/parm/post/global_1x1_paramlist_g2.f000 @@ -0,0 +1,699 @@ +4LFTX:surface +5WAVH:500 mb +ABSV:1000 mb +ABSV:100 mb +ABSV:10 mb +ABSV:150 mb +ABSV:15 mb +ABSV:200 mb +ABSV:20 mb +ABSV:250 mb +ABSV:300 mb +ABSV:30 mb +ABSV:350 mb +ABSV:400 mb +ABSV:40 mb +ABSV:450 mb +ABSV:500 mb +ABSV:50 mb +ABSV:550 mb +ABSV:600 mb +ABSV:650 mb +ABSV:700 mb +ABSV:70 mb +ABSV:750 mb +ABSV:800 mb +ABSV:850 mb +ABSV:900 mb +ABSV:925 mb +ABSV:950 mb +ABSV:975 mb +ABSV:1 mb +ABSV:2 mb +ABSV:3 mb +ABSV:5 mb +ABSV:7 mb +ABSV:0.1 mb +ABSV:0.2 mb +ABSV:0.4 mb +ABSV:0.7 mb +ABSV:0.01 mb +ABSV:0.02 mb +ABSV:0.04 mb +ABSV:0.07 mb +APTMP:2 m above ground +var discipline=0 master_table=2 parmcat=0 parm=21:2 m above ground +CAPE:180-0 mb above ground +CAPE:255-0 mb above ground +CAPE:90-0 mb above ground +CAPE:surface +CFRZR:surface +CICEP:surface +CIN:180-0 mb above ground +CIN:255-0 mb above ground +CIN:90-0 mb above ground +CIN:surface +CLMR:50 mb +CLMR:1000 mb +CLMR:100 mb +CLMR:150 mb +CLMR:200 mb +CLMR:250 mb +CLMR:300 mb +CLMR:350 mb +CLMR:400 mb +CLMR:450 mb +CLMR:500 mb +CLMR:550 mb +CLMR:600 mb +CLMR:650 mb +CLMR:700 mb +CLMR:750 mb +CLMR:800 mb +CLMR:850 mb +CLMR:900 mb +CLMR:925 mb +CLMR:950 mb +CLMR:975 mb +CLMR:1 hybrid level +CNWAT:surface +CPOFP:surface +CRAIN:surface +CSNOW:surface +CWAT:entire atmosphere (considered as a single layer) +DPT:2 m above ground +FLDCP:surface +FRICV:surface +GRLE:50 mb +GRLE:1000 mb +GRLE:100 mb +GRLE:150 mb +GRLE:200 mb +GRLE:250 mb +GRLE:300 mb +GRLE:350 mb +GRLE:400 mb +GRLE:450 mb +GRLE:500 mb +GRLE:550 mb +GRLE:600 mb +GRLE:650 mb +GRLE:700 mb +GRLE:750 mb +GRLE:800 mb +GRLE:850 mb +GRLE:900 mb +GRLE:925 mb +GRLE:950 mb +GRLE:975 mb +GRLE:1 hybrid level +GUST:surface +HCDC:high cloud layer +HGT:0C isotherm +HGT:1000 mb +HGT:100 mb +HGT:10 mb +HGT:150 mb +HGT:15 mb +HGT:200 mb +HGT:20 mb +HGT:250 mb +HGT:300 mb +HGT:30 mb +HGT:350 mb +HGT:400 mb +HGT:40 mb +HGT:450 mb +HGT:500 mb +HGT:50 mb +HGT:550 mb +HGT:600 mb +HGT:650 mb +HGT:700 mb +HGT:70 mb +HGT:750 mb +HGT:800 mb +HGT:850 mb +HGT:900 mb +HGT:925 mb +HGT:950 mb +HGT:975 mb +HGT:1 mb +HGT:2 mb +HGT:3 mb +HGT:5 mb +HGT:7 mb +HGT:0.1 mb +HGT:0.2 mb +HGT:0.4 mb +HGT:0.7 mb +HGT:0.01 mb +HGT:0.02 mb +HGT:0.04 mb +HGT:0.07 mb +HGT:cloud ceiling +HGT:highest tropospheric freezing level +HGT:max wind +HGT:PV=-2e-06 (Km^2/kg/s) surface +HGT:PV=2e-06 (Km^2/kg/s) surface +HGT:surface +HGT:tropopause +HINDEX:surface +HLCY:3000-0 m above ground +HPBL:surface +ICAHT:max wind +ICAHT:tropopause +ICEC:surface +ICETK:surface +ICETMP:surface +ICMR:50 mb +ICMR:1000 mb +ICMR:100 mb +ICMR:150 mb +ICMR:200 mb +ICMR:250 mb +ICMR:300 mb +ICMR:350 mb +ICMR:400 mb +ICMR:450 mb +ICMR:500 mb +ICMR:550 mb +ICMR:600 mb +ICMR:650 mb +ICMR:700 mb +ICMR:750 mb +ICMR:800 mb +ICMR:850 mb +ICMR:900 mb +ICMR:925 mb +ICMR:950 mb +ICMR:975 mb +ICMR:1 hybrid level +LAND:surface +LCDC:low cloud layer +LFTX:surface +MSLET:mean sea level +O3MR:1000 mb +O3MR:100 mb +O3MR:10 mb +O3MR:150 mb +O3MR:15 mb +O3MR:20 mb +O3MR:200 mb +O3MR:250 mb +O3MR:300 mb +O3MR:30 mb +O3MR:350 mb +O3MR:400 mb +O3MR:40 mb +O3MR:450 mb +O3MR:500 mb +O3MR:50 mb +O3MR:550 mb +O3MR:600 mb +O3MR:650 mb +O3MR:700 mb +O3MR:70 mb +O3MR:750 mb +O3MR:800 mb +O3MR:850 mb +O3MR:900 mb +O3MR:925 mb +O3MR:950 mb +O3MR:975 mb +O3MR:1 mb +O3MR:2 mb +O3MR:3 mb +O3MR:5 mb +O3MR:7 mb +O3MR:0.1 mb +O3MR:0.2 mb +O3MR:0.4 mb +O3MR:0.7 mb +O3MR:0.01 mb +O3MR:0.02 mb +O3MR:0.04 mb +O3MR:0.07 mb +MCDC:middle cloud layer +PLPL:255-0 mb above ground +POT:0.995 sigma level +PRATE:surface +PRES:80 m above ground +PRES:max wind +PRES:PV=-2e-06 (Km^2/kg/s) surface +PRES:PV=2e-06 (Km^2/kg/s) surface +PRES:surface +PRES:tropopause +PRMSL:mean sea level +PWAT:entire atmosphere +REFC:entire atmosphere +REFD:1 hybrid level +REFD:2 hybrid level +REFD:1000 m above ground +REFD:4000 m above ground +RH:0.33-1 sigma layer +RH:0.44-0.72 sigma layer +RH:0.44-1 sigma layer +RH:0.72-0.94 sigma layer +RH:0.995 sigma level +RH:0C isotherm +RH:1000 mb +RH:100 mb +RH:10 mb +RH:150 mb +RH:15 mb +RH:20 mb +RH:200 mb +RH:250 mb +RH:2 m above ground +RH:30-0 mb above ground +RH:300 mb +RH:30 mb +RH:350 mb +RH:400 mb +RH:40 mb +RH:450 mb +RH:500 mb +RH:50 mb +RH:550 mb +RH:600 mb +RH:650 mb +RH:700 mb +RH:70 mb +RH:750 mb +RH:800 mb +RH:850 mb +RH:900 mb +RH:925 mb +RH:950 mb +RH:975 mb +RH:1 mb +RH:2 mb +RH:3 mb +RH:5 mb +RH:7 mb +RH:0.1 mb +RH:0.2 mb +RH:0.4 mb +RH:0.7 mb +RH:0.01 mb +RH:0.02 mb +RH:0.04 mb +RH:0.07 mb +RH:entire atmosphere (considered as a single layer) +RH:highest tropospheric freezing level +RWMR:50 mb +RWMR:1000 mb +RWMR:100 mb +RWMR:150 mb +RWMR:200 mb +RWMR:250 mb +RWMR:300 mb +RWMR:350 mb +RWMR:400 mb +RWMR:450 mb +RWMR:500 mb +RWMR:550 mb +RWMR:600 mb +RWMR:650 mb +RWMR:700 mb +RWMR:750 mb +RWMR:800 mb +RWMR:850 mb +RWMR:900 mb +RWMR:925 mb +RWMR:950 mb +RWMR:975 mb +RWMR:1 hybrid level +SFCR:surface +SNMR:50 mb +SNMR:1000 mb +SNMR:100 mb +SNMR:150 mb +SNMR:200 mb +SNMR:250 mb +SNMR:300 mb +SNMR:350 mb +SNMR:400 mb +SNMR:450 mb +SNMR:500 mb +SNMR:550 mb +SNMR:600 mb +SNMR:650 mb +SNMR:700 mb +SNMR:750 mb +SNMR:800 mb +SNMR:850 mb +SNMR:900 mb +SNMR:925 mb +SNMR:950 mb +SNMR:975 mb +SNMR:1 hybrid level +SOILL:0-0.1 m below ground +SOILL:0.1-0.4 m below ground +SOILL:0.4-1 m below ground +SOILL:1-2 m below ground +SOILW:0-0.1 m below ground +SOILW:0.1-0.4 m below ground +SOILW:0.4-1 m below ground +SOILW:1-2 m below ground +SOTYP:surface +SPFH:1000 mb +SPFH:100 mb +SPFH:10 mb +SPFH:15 mb +SPFH:150 mb +SPFH:200 mb +SPFH:20 mb +SPFH:250 mb +SPFH:300 mb +SPFH:30 mb +SPFH:350 mb +SPFH:400 mb +SPFH:40 mb +SPFH:450 mb +SPFH:500 mb +SPFH:50 mb +SPFH:550 mb +SPFH:600 mb +SPFH:650 mb +SPFH:700 mb +SPFH:70 mb +SPFH:750 mb +SPFH:800 mb +SPFH:850 mb +SPFH:900 mb +SPFH:925 mb +SPFH:950 mb +SPFH:975 mb +SPFH:1 mb +SPFH:2 mb +SPFH:3 mb +SPFH:5 mb +SPFH:7 mb +SPFH:0.1 mb +SPFH:0.2 mb +SPFH:0.4 mb +SPFH:0.7 mb +SPFH:0.01 mb +SPFH:0.02 mb +SPFH:0.04 mb +SPFH:0.07 mb +SPFH:2 m above ground +SPFH:30-0 mb above ground +SPFH:80 m above ground +SUNSD:surface +TCDC:50 mb +TCDC:1000 mb +TCDC:100 mb +TCDC:150 mb +TCDC:200 mb +TCDC:250 mb +TCDC:300 mb +TCDC:350 mb +TCDC:400 mb +TCDC:450 mb +TCDC:500 mb +TCDC:550 mb +TCDC:600 mb +TCDC:650 mb +TCDC:700 mb +TCDC:750 mb +TCDC:800 mb +TCDC:850 mb +TCDC:900 mb +TCDC:925 mb +TCDC:950 mb +TCDC:975 mb +TCDC:entire atmosphere +TCDC:convective cloud layer +TSOIL:0-0.1 m below ground +TSOIL:0.1-0.4 m below ground +TSOIL:0.4-1 m below ground +TMP:0.995 sigma level +TMP:1000 mb +TMP:100 m above ground +TMP:100 mb +TMP:10 mb +TMP:15 mb +TSOIL:1-2 m below ground +TMP:150 mb +TMP:1829 m above mean sea level +TMP:200 mb +TMP:20 mb +TMP:250 mb +TMP:2743 m above mean sea level +TMP:2 m above ground +TMP:30-0 mb above ground +TMP:300 mb +TMP:30 mb +TMP:350 mb +TMP:3658 m above mean sea level +TMP:400 mb +TMP:40 mb +TMP:450 mb +TMP:500 mb +TMP:50 mb +TMP:550 mb +TMP:600 mb +TMP:650 mb +TMP:700 mb +TMP:70 mb +TMP:750 mb +TMP:800 mb +TMP:80 m above ground +TMP:850 mb +TMP:900 mb +TMP:925 mb +TMP:950 mb +TMP:975 mb +TMP:1 mb +TMP:2 mb +TMP:3 mb +TMP:5 mb +TMP:7 mb +TMP:0.1 mb +TMP:0.2 mb +TMP:0.4 mb +TMP:0.7 mb +TMP:0.01 mb +TMP:0.02 mb +TMP:0.04 mb +TMP:0.07 mb +TMP:max wind +TMP:PV=-2e-06 (Km^2/kg/s) surface +TMP:PV=2e-06 (Km^2/kg/s) surface +TMP:surface +TMP:tropopause +TOZNE:entire atmosphere (considered as a single layer) +UGRD:0.995 sigma level +UGRD:1000 mb +UGRD:100 m above ground +UGRD:100 mb +UGRD:10 m above ground +UGRD:10 mb +UGRD:150 mb +UGRD:15 mb +UGRD:1829 m above mean sea level +UGRD:200 mb +UGRD:20 mb +UGRD:20 m above ground +UGRD:250 mb +UGRD:2743 m above mean sea level +UGRD:30-0 mb above ground +UGRD:300 mb +UGRD:30 mb +UGRD:30 m above ground +UGRD:350 mb +UGRD:3658 m above mean sea level +UGRD:400 mb +UGRD:40 mb +UGRD:40 m above ground +UGRD:450 mb +UGRD:500 mb +UGRD:50 mb +UGRD:50 m above ground +UGRD:550 mb +UGRD:600 mb +UGRD:650 mb +UGRD:700 mb +UGRD:70 mb +UGRD:750 mb +UGRD:800 mb +UGRD:80 m above ground +UGRD:850 mb +UGRD:900 mb +UGRD:925 mb +UGRD:950 mb +UGRD:975 mb +UGRD:1 mb +UGRD:2 mb +UGRD:3 mb +UGRD:5 mb +UGRD:7 mb +UGRD:0.1 mb +UGRD:0.2 mb +UGRD:0.4 mb +UGRD:0.7 mb +UGRD:0.01 mb +UGRD:0.02 mb +UGRD:0.04 mb +UGRD:0.07 mb +UGRD:max wind +UGRD:planetary boundary layer +UGRD:PV=-2e-06 (Km^2/kg/s) surface +UGRD:PV=2e-06 (Km^2/kg/s) surface +UGRD:tropopause +USTM:6000-0 m above ground +VEG:surface +VGRD:0.995 sigma level +VGRD:1000 mb +VGRD:100 m above ground +VGRD:100 mb +VGRD:10 m above ground +VGRD:10 mb +VGRD:150 mb +VGRD:15 mb +VGRD:1829 m above mean sea level +VGRD:200 mb +VGRD:20 mb +VGRD:20 m above ground +VGRD:250 mb +VGRD:2743 m above mean sea level +VGRD:30-0 mb above ground +VGRD:300 mb +VGRD:30 mb +VGRD:30 m above ground +VGRD:350 mb +VGRD:3658 m above mean sea level +VGRD:400 mb +VGRD:40 mb +VGRD:40 m above ground +VGRD:450 mb +VGRD:500 mb +VGRD:50 mb +VGRD:50 m above ground +VGRD:550 mb +VGRD:600 mb +VGRD:650 mb +VGRD:700 mb +VGRD:70 mb +VGRD:750 mb +VGRD:800 mb +VGRD:80 m above ground +VGRD:850 mb +VGRD:900 mb +VGRD:925 mb +VGRD:950 mb +VGRD:975 mb +VGRD:1 mb +VGRD:2 mb +VGRD:3 mb +VGRD:5 mb +VGRD:7 mb +VGRD:0.1 mb +VGRD:0.2 mb +VGRD:0.4 mb +VGRD:0.7 mb +VGRD:0.01 mb +VGRD:0.02 mb +VGRD:0.04 mb +VGRD:0.07 mb +VGRD:max wind +VGRD:planetary boundary layer +VGRD:PV=-2e-06 (Km^2/kg/s) surface +VGRD:PV=2e-06 (Km^2/kg/s) surface +VGRD:tropopause +VRATE:planetary boundary layer +VSTM:6000-0 m above ground +DZDT:1000 mb +DZDT:100 mb +DZDT:10 mb +DZDT:15 mb +DZDT:150 mb +DZDT:20 mb +DZDT:200 mb +DZDT:250 mb +DZDT:300 mb +DZDT:30 mb +DZDT:350 mb +DZDT:40 mb +DZDT:400 mb +DZDT:450 mb +DZDT:500 mb +DZDT:50 mb +DZDT:550 mb +DZDT:600 mb +DZDT:650 mb +DZDT:700 mb +DZDT:70 mb +DZDT:750 mb +DZDT:800 mb +DZDT:850 mb +DZDT:900 mb +DZDT:925 mb +DZDT:950 mb +DZDT:975 mb +DZDT:1 mb +DZDT:2 mb +DZDT:3 mb +DZDT:5 mb +DZDT:7 mb +DZDT:0.1 mb +DZDT:0.2 mb +DZDT:0.4 mb +DZDT:0.7 mb +DZDT:0.01 mb +DZDT:0.02 mb +DZDT:0.04 mb +DZDT:0.07 mb +VVEL:0.995 sigma level +VVEL:1000 mb +VVEL:100 mb +VVEL:10 mb +VVEL:15 mb +VVEL:150 mb +VVEL:20 mb +VVEL:200 mb +VVEL:250 mb +VVEL:300 mb +VVEL:30 mb +VVEL:350 mb +VVEL:40 mb +VVEL:400 mb +VVEL:450 mb +VVEL:500 mb +VVEL:50 mb +VVEL:550 mb +VVEL:600 mb +VVEL:650 mb +VVEL:700 mb +VVEL:70 mb +VVEL:750 mb +VVEL:800 mb +VVEL:850 mb +VVEL:900 mb +VVEL:925 mb +VVEL:950 mb +VVEL:975 mb +VVEL:1 mb +VVEL:2 mb +VVEL:3 mb +VVEL:5 mb +VVEL:7 mb +VVEL:0.1 mb +VVEL:0.2 mb +VVEL:0.4 mb +VVEL:0.7 mb +VVEL:0.01 mb +VVEL:0.02 mb +VVEL:0.04 mb +VVEL:0.07 mb +VWSH:PV=-2e-06 (Km^2/kg/s) surface +VWSH:PV=2e-06 (Km^2/kg/s) surface +VWSH:tropopause +WEASD:surface +WILT:surface +SNOD:surface +VIS:surface +ICEG:10 m above mean sea level diff --git a/parm/post/global_master-catchup_parmlist_g2 b/parm/post/global_master-catchup_parmlist_g2 new file mode 100644 index 0000000000..a92a609bfc --- /dev/null +++ b/parm/post/global_master-catchup_parmlist_g2 @@ -0,0 +1,349 @@ +ABSV:125 mb +ABSV:175 mb +ABSV:1 mb +ABSV:225 mb +ABSV:275 mb +ABSV:2 mb +ABSV:325 mb +ABSV:375 mb +ABSV:3 mb +ABSV:425 mb +ABSV:475 mb +ABSV:525 mb +ABSV:575 mb +ABSV:5 mb +ABSV:625 mb +ABSV:675 mb +ABSV:725 mb +ABSV:775 mb +ABSV:7 mb +ABSV:825 mb +ABSV:875 mb +CDUVB:surface +CLMR:70 mb +CLMR:125 mb +CLMR:175 mb +CLMR:225 mb +CLMR:275 mb +CLMR:325 mb +CLMR:375 mb +CLMR:425 mb +CLMR:475 mb +CLMR:525 mb +CLMR:575 mb +CLMR:625 mb +CLMR:675 mb +CLMR:725 mb +CLMR:775 mb +CLMR:825 mb +CLMR:875 mb +CNWAT:surface +DUVB:surface +GRLE:70 mb +GRLE:125 mb +GRLE:175 mb +GRLE:225 mb +GRLE:275 mb +GRLE:325 mb +GRLE:375 mb +GRLE:425 mb +GRLE:475 mb +GRLE:525 mb +GRLE:575 mb +GRLE:625 mb +GRLE:675 mb +GRLE:725 mb +GRLE:775 mb +GRLE:825 mb +GRLE:875 mb +HGT:125 mb +HGT:175 mb +HGT:1 mb +HGT:225 mb +HGT:275 mb +HGT:2 mb +HGT:325 mb +HGT:375 mb +HGT:3 mb +HGT:425 mb +HGT:475 mb +HGT:525 mb +HGT:575 mb +HGT:5 mb +HGT:625 mb +HGT:675 mb +HGT:725 mb +HGT:775 mb +HGT:7 mb +HGT:825 mb +HGT:875 mb +HGT:PV=-1.5e-06 (Km^2/kg/s) surface +HGT:PV=1.5e-06 (Km^2/kg/s) surface +HGT:PV=-1e-06 (Km^2/kg/s) surface +HGT:PV=1e-06 (Km^2/kg/s) surface +HGT:PV=-5e-07 (Km^2/kg/s) surface +HGT:PV=5e-07 (Km^2/kg/s) surface +ICETK:surface +ICMR:70 mb +ICMR:125 mb +ICMR:175 mb +ICMR:225 mb +ICMR:275 mb +ICMR:325 mb +ICMR:375 mb +ICMR:425 mb +ICMR:475 mb +ICMR:525 mb +ICMR:575 mb +ICMR:625 mb +ICMR:675 mb +ICMR:725 mb +ICMR:775 mb +ICMR:825 mb +ICMR:875 mb +O3MR:1 mb +O3MR:2 mb +O3MR:3 mb +O3MR:5 mb +O3MR:7 mb +PRES:PV=-1.5e-06 (Km^2/kg/s) surface +PRES:PV=1.5e-06 (Km^2/kg/s) surface +PRES:PV=-1e-06 (Km^2/kg/s) surface +PRES:PV=1e-06 (Km^2/kg/s) surface +PRES:PV=-5e-07 (Km^2/kg/s) surface +PRES:PV=5e-07 (Km^2/kg/s) surface +RH:120-90 mb above ground +RH:125 mb +RH:150-120 mb above ground +RH:175 mb +RH:180-150 mb above ground +RH:1 mb +RH:225 mb +RH:275 mb +RH:2 mb +RH:325 mb +RH:375 mb +RH:3 mb +RH:425 mb +RH:475 mb +RH:525 mb +RH:575 mb +RH:5 mb +RH:60-30 mb above ground +RH:625 mb +RH:675 mb +RH:725 mb +RH:775 mb +RH:7 mb +RH:825 mb +RH:875 mb +RH:90-60 mb above ground +RWMR:70 mb +RWMR:125 mb +RWMR:175 mb +RWMR:225 mb +RWMR:275 mb +RWMR:325 mb +RWMR:375 mb +RWMR:425 mb +RWMR:475 mb +RWMR:525 mb +RWMR:575 mb +RWMR:625 mb +RWMR:675 mb +RWMR:725 mb +RWMR:775 mb +RWMR:825 mb +RWMR:875 mb +SOILL:0-0.1 m below ground +SOILL:0.1-0.4 m below ground +SOILL:0.4-1 m below ground +SOILL:1-2 m below ground +SPFH:120-90 mb above ground +SPFH:150-120 mb above ground +SPFH:180-150 mb above ground +SPFH:60-30 mb above ground +SPFH:90-60 mb above ground +SNMR:70 mb +SNMR:125 mb +SNMR:175 mb +SNMR:225 mb +SNMR:275 mb +SNMR:325 mb +SNMR:375 mb +SNMR:425 mb +SNMR:475 mb +SNMR:525 mb +SNMR:575 mb +SNMR:625 mb +SNMR:675 mb +SNMR:725 mb +SNMR:775 mb +SNMR:825 mb +SNMR:875 mb +TCDC:70 mb +TCDC:125 mb +TCDC:175 mb +TCDC:225 mb +TCDC:275 mb +TCDC:325 mb +TCDC:375 mb +TCDC:425 mb +TCDC:475 mb +TCDC:525 mb +TCDC:575 mb +TCDC:625 mb +TCDC:675 mb +TCDC:725 mb +TCDC:775 mb +TCDC:825 mb +TCDC:875 mb +TMP:120-90 mb above ground +TMP:125 mb +TMP:150-120 mb above ground +TMP:175 mb +TMP:180-150 mb above ground +TMP:1 mb +TMP:225 mb +TMP:275 mb +TMP:2 mb +TMP:305 m above mean sea level +TMP:325 mb +TMP:375 mb +TMP:3 mb +TMP:425 mb +TMP:4572 m above mean sea level +TMP:457 m above mean sea level +TMP:475 mb +TMP:525 mb +TMP:575 mb +TMP:5 mb +TMP:60-30 mb above ground +TMP:610 m above mean sea level +TMP:625 mb +TMP:675 mb +TMP:725 mb +TMP:775 mb +TMP:7 mb +TMP:825 mb +TMP:875 mb +TMP:90-60 mb above ground +TMP:914 m above mean sea level +TMP:PV=-1.5e-06 (Km^2/kg/s) surface +TMP:PV=1.5e-06 (Km^2/kg/s) surface +TMP:PV=-1e-06 (Km^2/kg/s) surface +TMP:PV=1e-06 (Km^2/kg/s) surface +TMP:PV=-5e-07 (Km^2/kg/s) surface +TMP:PV=5e-07 (Km^2/kg/s) surface +UGRD:120-90 mb above ground +UGRD:125 mb +UGRD:150-120 mb above ground +UGRD:175 mb +UGRD:180-150 mb above ground +UGRD:1 mb +UGRD:225 mb +UGRD:275 mb +UGRD:2 mb +UGRD:305 m above mean sea level +UGRD:325 mb +UGRD:375 mb +UGRD:3 mb +UGRD:425 mb +UGRD:4572 m above mean sea level +UGRD:457 m above mean sea level +UGRD:475 mb +UGRD:525 mb +UGRD:575 mb +UGRD:5 mb +UGRD:60-30 mb above ground +UGRD:610 m above mean sea level +UGRD:625 mb +UGRD:675 mb +UGRD:725 mb +UGRD:775 mb +UGRD:7 mb +UGRD:825 mb +UGRD:875 mb +UGRD:90-60 mb above ground +UGRD:914 m above mean sea level +UGRD:PV=-1.5e-06 (Km^2/kg/s) surface +UGRD:PV=1.5e-06 (Km^2/kg/s) surface +UGRD:PV=-1e-06 (Km^2/kg/s) surface +UGRD:PV=1e-06 (Km^2/kg/s) surface +UGRD:PV=-5e-07 (Km^2/kg/s) surface +UGRD:PV=5e-07 (Km^2/kg/s) surface +VGRD:120-90 mb above ground +VGRD:125 mb +VGRD:150-120 mb above ground +VGRD:175 mb +VGRD:180-150 mb above ground +VGRD:1 mb +VGRD:225 mb +VGRD:275 mb +VGRD:2 mb +VGRD:305 m above mean sea level +VGRD:325 mb +VGRD:375 mb +VGRD:3 mb +VGRD:425 mb +VGRD:4572 m above mean sea level +VGRD:457 m above mean sea level +VGRD:475 mb +VGRD:525 mb +VGRD:575 mb +VGRD:5 mb +VGRD:60-30 mb above ground +VGRD:610 m above mean sea level +VGRD:625 mb +VGRD:675 mb +VGRD:725 mb +VGRD:775 mb +VGRD:7 mb +VGRD:825 mb +VGRD:875 mb +VGRD:90-60 mb above ground +VGRD:914 m above mean sea level +VGRD:PV=-1.5e-06 (Km^2/kg/s) surface +VGRD:PV=1.5e-06 (Km^2/kg/s) surface +VGRD:PV=-1e-06 (Km^2/kg/s) surface +VGRD:PV=1e-06 (Km^2/kg/s) surface +VGRD:PV=-5e-07 (Km^2/kg/s) surface +VGRD:PV=5e-07 (Km^2/kg/s) surface +DZDT:125 mb +DZDT:175 mb +DZDT:225 mb +DZDT:275 mb +DZDT:325 mb +DZDT:375 mb +DZDT:425 mb +DZDT:475 mb +DZDT:525 mb +DZDT:575 mb +DZDT:625 mb +DZDT:675 mb +DZDT:725 mb +DZDT:775 mb +DZDT:825 mb +DZDT:875 mb +VVEL:125 mb +VVEL:175 mb +VVEL:225 mb +VVEL:275 mb +VVEL:325 mb +VVEL:375 mb +VVEL:425 mb +VVEL:475 mb +VVEL:525 mb +VVEL:575 mb +VVEL:625 mb +VVEL:675 mb +VVEL:725 mb +VVEL:775 mb +VVEL:825 mb +VVEL:875 mb +VWSH:PV=-1.5e-06 (Km^2/kg/s) surface +VWSH:PV=1.5e-06 (Km^2/kg/s) surface +VWSH:PV=-1e-06 (Km^2/kg/s) surface +VWSH:PV=1e-06 (Km^2/kg/s) surface +VWSH:PV=-5e-07 (Km^2/kg/s) surface +VWSH:PV=5e-07 (Km^2/kg/s) surface diff --git a/scripts/exgdas_atmos_nceppost.sh b/scripts/exgdas_atmos_nceppost.sh new file mode 100755 index 0000000000..8616b35453 --- /dev/null +++ b/scripts/exgdas_atmos_nceppost.sh @@ -0,0 +1,360 @@ +##################################################################### +echo "-----------------------------------------------------" +echo " exgdas_nceppost.sh" +echo " Sep 07 - Chuang - Modified script to run unified post" +echo " July 14 - Carlis - Changed to 0.25 deg grib2 master file" +echo " Feb 16 - Lin - Modify to use Vertical Structure" +echo " Aug 17 - Meng - Modify to use 3-digit forecast hour naming" +echo " master and flux files" +echo " Dec 17 - Meng - Link sfc data file to flxfile " +echo " since fv3gfs does not output sfc files any more." +echo " Dec 17 - Meng - Add fv3gfs_downstream_nems.sh for pgb processing " +echo " and remove writing data file to /nwges" +echo " Jan 18 - Meng - For EE2 standard, move IDRT POSTGPVARS setting" +echo " from j-job script." +echo " Feb 18 - Meng - Removed legacy setting for generating grib1 data" +echo " and reading sigio model outputs." +echo " Aug 20 - Meng - Remove .ecf extentsion per EE2 review." +echo " Sep 20 - Meng - Update clean up files per EE2 review." +echo " Mar 21 - Meng - Update POSTGRB2TBL default setting." +echo " Oct 21 - Meng - Remove jlogfile for wcoss2 transition." +echo " Feb 22 - Lin - Exception handling if anl input not found." +echo "-----------------------------------------------------" +##################################################################### + +set -x + +cd $DATA + +msg="HAS BEGUN on $(hostname)" +postmsg "$msg" + +export POSTGPSH=${POSTGPSH:-$USHgfs/gfs_nceppost.sh} +export GFSDOWNSH=${GFSDOWNSH:-$USHgfs/fv3gfs_downstream_nems.sh} +export GFSDWNSH=${GFSDWNSH:-$USHgfs/fv3gfs_dwn_nems.sh} +export TRIMRH=${TRIMRH:-$USHgfs/trim_rh.sh} +export MODICEC=${MODICEC:-$USHgfs/mod_icec.sh} +export INLINE_POST=${INLINE_POST:-".false."} + +############################################################ +# Define Variables: +# ----------------- +# fhr is the current forecast hour. +# SLEEP_TIME is the number of seconds to sleep before exiting with error. +# SLEEP_INT is the number of seconds to sleep between restrt file checks. +# restart_file is the name of the file to key off of to kick off post. +############################################################ + +export IO=${LONB:-1440} +export JO=${LATB:-721} +# specify default model output format: 3 for sigio and 4 +# for nemsio +export OUTTYP=${OUTTYP:-4} +export OUTPUT_FILE=${OUTPUT_FILE:-"nemsio"} +export TCYC=${TCYC:-".t${cyc}z."} +export PREFIX=${PREFIX:-${RUN}${TCYC}} +if [ $OUTTYP -eq 4 ] ; then + if [ $OUTPUT_FILE = "netcdf" ]; then + export SUFFIX=".nc" + else + export SUFFIX=".nemsio" + fi +else + export SUFFIX= +fi +export machine=${machine:-WCOSS_C} + +########################### +# Specify Output layers +########################### +export POSTGPVARS="KPO=57,PO=1000.,975.,950.,925.,900.,875.,850.,825.,800.,775.,750.,725.,700.,675.,650.,625.,600.,575.,550.,525.,500.,475.,450.,425.,400.,375.,350.,325.,300.,275.,250.,225.,200.,175.,150.,125.,100.,70.,50.,40.,30.,20.,15.,10.,7.,5.,3.,2.,1.,0.7,0.4,0.2,0.1,0.07,0.04,0.02,0.01," + +########################################################## +# Specify variable to directly output pgrb2 files for GDAS/GFS +########################################################## +export IDRT=${IDRT:-0} # IDRT=0 is setting for outputting grib files on lat/lon grid + +############################################################ +# Post Analysis Files before starting the Forecast Post +############################################################ +# Chuang: modify to process analysis when post_times is 00 +export stime=$(echo $post_times | cut -c1-3) +if [ $OUTTYP -eq 4 ] ; then + export loganl=$COMIN/${PREFIX}atmanl${SUFFIX} +else + export loganl=$COMIN/${PREFIX}sanl +fi + +if [ ${stime} = "anl" ]; then + if [ -f $loganl ]; then + # add new environmental variables for running new ncep post + # Validation date + + export VDATE=${PDY}${cyc} + + # set outtyp to 1 because we need to run chgres in the post before model start running chgres + # otherwise set to 0, then chgres will not be executed in global_nceppost.sh + + export OUTTYP=${OUTTYP:-4} + + # specify output file name from chgres which is input file name to nceppost + # if model already runs gfs io, make sure GFSOUT is linked to the gfsio file + # new imported variable for global_nceppost.sh + + export GFSOUT=${RUN}.${cycle}.gfsioanl + + # specify smaller control file for GDAS because GDAS does not + # produce flux file, the default will be /nwprod/parm/gfs_cntrl.parm + + if [ $GRIBVERSION = 'grib2' ]; then + export POSTGRB2TBL=${POSTGRB2TBL:-${g2tmpl_ROOT}/share/params_grib2_tbl_new} + export PostFlatFile=${PostFlatFile:-$PARMpost/postxconfig-NT-GFS-ANL.txt} + export CTLFILE=$PARMpost/postcntrl_gfs_anl.xml + fi + + [[ -f flxfile ]] && rm flxfile ; [[ -f nemsfile ]] && rm nemsfile + if [ $OUTTYP -eq 4 ] ; then + ln -fs $COMIN/${PREFIX}atmanl${SUFFIX} nemsfile + export NEMSINP=nemsfile + ln -fs $COMIN/${PREFIX}sfcanl${SUFFIX} flxfile + export FLXINP=flxfile + fi + export PGBOUT=pgbfile + export PGIOUT=pgifile + export PGBOUT2=pgbfile.grib2 + export PGIOUT2=pgifile.grib2.idx + export IGEN=$IGEN_ANL + export FILTER=0 + + # specify fhr even for analysis because postgp uses it + # export fhr=00 + + $POSTGPSH + export err=$?; err_chk + + + if [ $GRIBVERSION = 'grib2' ]; then + mv $PGBOUT $PGBOUT2 + + #Proces pgb files + export FH=-1 + export downset=${downset:-1} + $GFSDOWNSH + export err=$?; err_chk + + export fhr3=anl + fi + + if [ $SENDCOM = 'YES' ]; then + export fhr3=anl + if [ $GRIBVERSION = 'grib2' ]; then + MASTERANL=${PREFIX}master.grb2${fhr3} + ##########XXW Accord to Boi, fortran index should use *if${fhr}, wgrib index use .idx + #MASTERANLIDX=${RUN}.${cycle}.master.grb2${fhr3}.idx + MASTERANLIDX=${PREFIX}master.grb2i${fhr3} + cp $PGBOUT2 $COMOUT/${MASTERANL} + $GRB2INDEX $PGBOUT2 $COMOUT/${MASTERANLIDX} + fi + + if [ $SENDDBN = 'YES' ]; then + run=$(echo $RUN | tr '[a-z]' '[A-Z]') + if [ $GRIBVERSION = 'grib2' ]; then + $DBNROOT/bin/dbn_alert MODEL ${run}_MSC_sfcanl $job $COMOUT/${PREFIX}sfc${fhr3}${SUFFIX} + $DBNROOT/bin/dbn_alert MODEL ${run}_SA $job $COMIN/${PREFIX}atm${fhr3}${SUFFIX} + $DBNROOT/bin/dbn_alert MODEL GDAS_PGA_GB2 $job $COMOUT/${PREFIX}pgrb2.1p00.${fhr3} + $DBNROOT/bin/dbn_alert MODEL GDAS_PGA_GB2_WIDX $job $COMOUT/${PREFIX}pgrb2.1p00.${fhr3}.idx + fi + fi + fi + rm pgbfile.grib2 + else + #### atmanl file not found need failing job + echo " *** FATAL ERROR: No model anl file output " + export err=9 + err_chk + fi +else ## not_anl if_stimes + SLEEP_LOOP_MAX=$(expr $SLEEP_TIME / $SLEEP_INT) + + ############################################################ + # Loop Through the Post Forecast Files + ############################################################ + + for fhr in $post_times; do + ############################### + # Start Looping for the + # existence of the restart files + ############################### + set -x + export pgm="postcheck" + ic=1 + while [ $ic -le $SLEEP_LOOP_MAX ]; do + if [ -f ${restart_file}${fhr}.txt ]; then + break + else + ic=$(expr $ic + 1) + sleep $SLEEP_INT + fi + ############################### + # If we reach this point assume + # fcst job never reached restart + # period and error exit + ############################### + if [ $ic -eq $SLEEP_LOOP_MAX ]; then + echo " *** FATAL ERROR: No model output in nemsio for f${fhr} " + export err=9 + err_chk + fi + done + set -x + + msg="Starting post for fhr=$fhr" + postmsg "$msg" + + ############################### + # Put restart files into /nwges + # for backup to start Model Fcst + ############################### + [[ -f flxfile ]] && rm flxfile + [[ -f nemsfile ]] && rm nemsfile + if [ $OUTTYP -eq 4 ] ; then + ln -sf $COMIN/${PREFIX}atmf$fhr${SUFFIX} nemsfile + export NEMSINP=nemsfile + ln -sf $COMIN/${PREFIX}sfcf$fhr${SUFFIX} flxfile + export FLXINP=flxfile + fi + + if [ $fhr -gt 0 ]; then + export IGEN=$IGEN_FCST + else + export IGEN=$IGEN_ANL + fi + + # add new environmental variables for running new ncep post + # Validation date + + export VDATE=$(${NDATE} +${fhr} ${PDY}${cyc}) + + # set to 3 to output lat/lon grid + + export OUTTYP=${OUTTYP:-4} + + if [ $GRIBVERSION = 'grib2' ]; then + export POSTGRB2TBL=${POSTGRB2TBL:-${g2tmpl_ROOT}/share/params_grib2_tbl_new} + export PostFlatFile=$PARMpost/postxconfig-NT-GFS.txt + if [ $RUN = gfs ]; then + export IGEN=$IGEN_GFS + if [ $fhr -gt 0 ]; then export IGEN=$IGEN_FCST ; fi + else + export IGEN=$IGEN_GDAS_ANL + if [ $fhr -gt 0 ]; then export IGEN=$IGEN_FCST ; fi + fi + if [[ $RUN = gfs ]]; then + if [ $fhr -eq 0 ]; then + export PostFlatFile=$PARMpost/postxconfig-NT-GFS-F00.txt + export CTLFILE=$PARMpost/postcntrl_gfs_f00.xml + else + export CTLFILE=${CTLFILEGFS:-$PARMpost/postcntrl_gfs.xml} + fi + else + if [ $fhr -eq 0 ]; then + export PostFlatFile=$PARMpost/postxconfig-NT-GFS-F00.txt + export CTLFILE=${CTLFILEGFS:-$PARMpost/postcntrl_gfs_f00.xml} + else + export CTLFILE=${CTLFILEGFS:-$PARMpost/postcntrl_gfs.xml} + fi + fi + fi + + export FLXIOUT=flxifile + export PGBOUT=pgbfile + export PGIOUT=pgifile + export PGBOUT2=pgbfile.grib2 + export PGIOUT2=pgifile.grib2.idx + export FILTER=0 + export fhr3=$fhr + if [ $GRIBVERSION = 'grib2' ]; then + MASTERFHR=${PREFIX}master.grb2f${fhr} + MASTERFHRIDX=${PREFIX}master.grb2if${fhr} + fi + + if [ $INLINE_POST = ".false." ]; then + $POSTGPSH + else + cp $COMOUT/${MASTERFHR} $PGBOUT + fi + export err=$?; err_chk + + if [ $GRIBVERSION = 'grib2' ]; then + mv $PGBOUT $PGBOUT2 + fi + + #wm Process pgb files + export FH=$(expr $fhr + 0) + export downset=${downset:-1} + $GFSDOWNSH + export err=$?; err_chk + + if [ $SENDDBN = YES ]; then + run=$(echo $RUN | tr '[a-z]' '[A-Z]') + $DBNROOT/bin/dbn_alert MODEL ${run}_PGB2_0P25 $job $COMOUT/${PREFIX}pgrb2.0p25.f${fhr} + $DBNROOT/bin/dbn_alert MODEL ${run}_PGB2_0P25_WIDX $job $COMOUT/${PREFIX}pgrb2.0p25.f${fhr}.idx + $DBNROOT/bin/dbn_alert MODEL ${run}_PGB_GB2 $job $COMOUT/${PREFIX}pgrb2.1p00.f${fhr} + $DBNROOT/bin/dbn_alert MODEL ${run}_PGB_GB2_WIDX $job $COMOUT/${PREFIX}pgrb2.1p00.f${fhr}.idx + fi + + + if [ $SENDCOM = 'YES' ]; then + if [ $GRIBVERSION = 'grib2' ] ; then + if [ $INLINE_POST = ".false." ]; then + cp $PGBOUT2 $COMOUT/${MASTERFHR} + fi + $GRB2INDEX $PGBOUT2 $COMOUT/${MASTERFHRIDX} + fi + + # Model generated flux files will be in nemsio after FY17 upgrade + # use post to generate Grib2 flux files + + if [ $OUTTYP -eq 4 ] ; then + export NEMSINP=$COMIN/${PREFIX}atmf${fhr}${SUFFIX} + export FLXINP=$COMIN/${PREFIX}sfcf${fhr}${SUFFIX} + if [ $fhr -eq 0 ]; then + export PostFlatFile=$PARMpost/postxconfig-NT-GFS-FLUX-F00.txt + export CTLFILE=$PARMpost/postcntrl_gfs_flux_f00.xml + else + export PostFlatFile=$PARMpost/postxconfig-NT-GFS-FLUX.txt + export CTLFILE=$PARMpost/postcntrl_gfs_flux.xml + fi + export PGBOUT=fluxfile + export FILTER=0 + FLUXFL=${PREFIX}sfluxgrbf${fhr}.grib2 + FLUXFLIDX=${PREFIX}sfluxgrbf${fhr}.grib2.idx + + if [ $INLINE_POST = ".false." ]; then + $POSTGPSH + export err=$?; err_chk + mv fluxfile $COMOUT/${FLUXFL} + fi + $WGRIB2 -s $COMOUT/${FLUXFL} > $COMOUT/${FLUXFLIDX} + fi + + if [ "$SENDDBN" = 'YES' -a \( "$RUN" = 'gdas' \) -a $(expr $fhr % 3) -eq 0 ]; then + $DBNROOT/bin/dbn_alert MODEL ${run}_SF $job $COMOUT/${PREFIX}atmf${fhr}${SUFFIX} + $DBNROOT/bin/dbn_alert MODEL ${run}_BF $job $COMOUT/${PREFIX}sfcf${fhr}${SUFFIX} + $DBNROOT/bin/dbn_alert MODEL ${run}_SGB_GB2 $job $COMOUT/${PREFIX}sfluxgrbf${fhr}.grib2 + $DBNROOT/bin/dbn_alert MODEL ${run}_SGB_GB2_WIDX $job $COMOUT/${PREFIX}sfluxgrbf${fhr}.grib2.idx + fi + fi + + [[ -f pgbfile.grib2 ]] && rm pgbfile.grib2 + [[ -f flxfile ]] && rm flxfile + done +fi ## end_if_times + +#cat $pgmout +#msg='ENDED NORMALLY.' +#postmsg "$jlogfile" "$msg" + +exit 0 + +################## END OF SCRIPT ####################### diff --git a/scripts/exglobal_atmos_pmgr.sh b/scripts/exglobal_atmos_pmgr.sh new file mode 100755 index 0000000000..1a00eda1a6 --- /dev/null +++ b/scripts/exglobal_atmos_pmgr.sh @@ -0,0 +1,74 @@ +#! /bin/ksh +# +# Script name: exgfs_pmgr.sh.sms +# +# This script monitors the progress of the gfs_fcst job +# +set -x + +hour=00 +typeset -Z2 hour + +case $RUN in + gfs) + TEND=384 + TCP=385 + ;; + gdas) + TEND=9 + TCP=10 + ;; +esac + +if [ -e posthours ]; then + rm -f posthours +fi + +while [ $hour -lt $TCP ]; do + echo $hour >>posthours + if [ $hour -lt 120 ]; then + if [ $hour -eq 99 ]; then + typeset -Z3 hour + fi + let "hour=hour+1" + else + let "hour=hour+3" + fi +done +postjobs=$(cat posthours) + +# +# Wait for all fcst hours to finish +# +icnt=1 +while [ $icnt -lt 1000 ]; do + for fhr in $postjobs; do + fhr3=$(printf "%03d" $fhr) + if [ -s ${COMIN}/${RUN}.${cycle}.logf${fhr}.txt -o -s ${COMIN}/${RUN}.${cycle}.logf${fhr3}.txt ]; then + if [ $fhr -eq 0 ]; then + #### ecflow_client --event release_${RUN}_postanl + ecflow_client --event release_postanl + fi + #### ecflow_client --event release_${RUN}_post${fhr} + ecflow_client --event release_post${fhr3} + # Remove current fhr from list + postjobs=$(echo $postjobs | sed "s/${fhr}//") + fi + done + + result_check=$(echo $postjobs | wc -w) + if [ $result_check -eq 0 ]; then + break + fi + + sleep 10 + icnt=$((icnt + 1)) + if [ $icnt -ge 1080 ]; then + msg="ABORTING after 3 hours of waiting for ${RUN} FCST hours $postjobs." + err_exit $msg + fi +done + +echo Exiting $0 + +exit diff --git a/sorc/link_workflow.sh b/sorc/link_workflow.sh index 946838c7cd..da750589ae 100755 --- a/sorc/link_workflow.sh +++ b/sorc/link_workflow.sh @@ -85,24 +85,26 @@ fi #--add files from external repositories #--------------------------------------- cd ${pwd}/../jobs ||exit 8 - $LINK ../sorc/upp.fd/jobs/JGLOBAL_ATMOS_POST_MANAGER . - $LINK ../sorc/upp.fd/jobs/JGLOBAL_ATMOS_NCEPPOST . - $LINK ../sorc/gldas.fd/jobs/JGDAS_ATMOS_GLDAS . + $LINK ../sorc/gldas.fd/jobs/JGDAS_ATMOS_GLDAS . cd ${pwd}/../parm ||exit 8 - [[ -d post ]] && rm -rf post - $LINK ../sorc/upp.fd/parm post + # [[ -d post ]] && rm -rf post + # $LINK ../sorc/upp.fd/parm post [[ -d gldas ]] && rm -rf gldas $LINK ../sorc/gldas.fd/parm gldas +cd ${pwd}/../parm/post ||exit 8 + for file in postxconfig-NT-GEFS-ANL.txt postxconfig-NT-GEFS-F00.txt postxconfig-NT-GEFS.txt postxconfig-NT-GFS-ANL.txt \ + postxconfig-NT-GFS-F00-TWO.txt postxconfig-NT-GFS-F00.txt postxconfig-NT-GFS-FLUX-F00.txt postxconfig-NT-GFS-FLUX.txt \ + postxconfig-NT-GFS-GOES.txt postxconfig-NT-GFS-TWO.txt postxconfig-NT-GFS-WAFS-ANL.txt postxconfig-NT-GFS-WAFS.txt \ + postxconfig-NT-GFS.txt postxconfig-NT-gefs-aerosol.txt postxconfig-NT-gefs-chem.txt params_grib2_tbl_new \ + post_tag_gfs128 post_tag_gfs65 gtg.config.gfs gtg_imprintings.txt \ + AEROSOL_LUTS.datoptics_luts_DUST.dat optics_luts_SALT.dat optics_luts_SOOT.dat optics_luts_SUSO.dat optics_luts_WASO.dat \ + ; do + $LINK ../../sorc/upp.fd/parm/$file . + done cd ${pwd}/../scripts ||exit 8 - $LINK ../sorc/upp.fd/scripts/exgdas_atmos_nceppost.sh . - $LINK ../sorc/upp.fd/scripts/exglobal_atmos_pmgr.sh . $LINK ../sorc/ufs_utils.fd/scripts/exemcsfc_global_sfc_prep.sh . $LINK ../sorc/gldas.fd/scripts/exgdas_atmos_gldas.sh . cd ${pwd}/../ush ||exit 8 - for file in fv3gfs_dwn_nems.sh gfs_nceppost.sh \ - gfs_transfer.sh mod_icec.sh link_crtm_fix.sh trim_rh.sh fix_precip.sh; do - $LINK ../sorc/upp.fd/ush/$file . - done for file in emcsfc_ice_blend.sh fv3gfs_driver_grid.sh fv3gfs_make_orog.sh global_cycle_driver.sh \ emcsfc_snow.sh fv3gfs_filter_topo.sh global_cycle.sh fv3gfs_make_grid.sh ; do $LINK ../sorc/ufs_utils.fd/ush/$file . diff --git a/ush/fv3gfs_dwn_nems.sh b/ush/fv3gfs_dwn_nems.sh new file mode 100755 index 0000000000..b49daee45c --- /dev/null +++ b/ush/fv3gfs_dwn_nems.sh @@ -0,0 +1,109 @@ +#!/bin/ksh +set -x + +# this script generates 0.25/0.5/1/2.5 deg pgb files for each small Grib file +# Hui-Ya Chuang 01/2014: First Version +# Fanglin Yang 09/2015: Modified to use WGRIB2 instead of COPYGB2 for interpolation +# Fanglin Yang 02/2016: remove 0.5-deg and 2.5deg output to speed up post +# Fanglin Yang 09/11/2017: add option opt24 to turn on bitmap (from Wen Meng) +# Wen Meng 12/2017: add trim_rh.sh for triming RH values larger than 100. +# Wen Meng 01/2018: add flag PGB1F for turning on/off wgrib1 pgb data at 1.00 deg. generation. +# Wen Meng 02/2018: add flag PGBS for turning on/off pgb data at 1.0 and 0.5 deg. generation. +# Wen Meng 10/2019: Use bilinear interpolation for LAND, It can trancate land-sea mask as 0 or 1. +# Wen Meng 11/2019: Teak sea ice cover via land-sea mask. + +export tmpfile=$1 +export fhr3=$2 +export iproc=$3 +export nset=$4 + +export CNVGRIB=${CNVGRIB:-$${NWPROD:-/nwprod}/util/exec/cnvgrib21} +export COPYGB2=${COPYGB2:-$${NWPROD:-/nwprod}/util/exec/copygb2} +export WGRIB2=${WGRIB2:-${NWPROD:-/nwprod}/util/exec/wgrib2} +export TRIMRH=${TRIMRH:-$USHgfs/trim_rh.sh} +export MODICEC=${MODICEC:-$USHgfs/mod_icec.sh} + +export opt1=' -set_grib_type same -new_grid_winds earth ' +export opt21=' -new_grid_interpolation bilinear -if ' +export opt22=":(CSNOW|CRAIN|CFRZR|CICEP|ICSEV):" +export opt23=' -new_grid_interpolation neighbor -fi ' +export opt24=' -set_bitmap 1 -set_grib_max_bits 16 -if ' +export opt25=":(APCP|ACPCP|PRATE|CPRAT):" +export opt26=' -set_grib_max_bits 25 -fi -if ' +export opt27=":(APCP|ACPCP|PRATE|CPRAT|DZDT):" +export opt28=' -new_grid_interpolation budget -fi ' +if [ $machine = "S4" ]; then + export optncpu=' -ncpu 1 ' +fi +export grid0p25="latlon 0:1440:0.25 90:721:-0.25" +export grid0p5="latlon 0:720:0.5 90:361:-0.5" +export grid1p0="latlon 0:360:1.0 90:181:-1.0" +export grid2p5="latlon 0:144:2.5 90:73:-2.5" + +export PGB1F=${PGB1F:-"NO"} +export PGBS=${PGBS:-"NO"} + +if [ $nset = 1 ]; then + if [ "$PGBS" = "YES" ]; then + $WGRIB2 $optncpu $tmpfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 \ + -new_grid $grid0p25 pgb2file_${fhr3}_${iproc}_0p25 \ + -new_grid $grid1p0 pgb2file_${fhr3}_${iproc}_1p0 \ + -new_grid $grid0p5 pgb2file_${fhr3}_${iproc}_0p5 + export err=$?; err_chk + $TRIMRH pgb2file_${fhr3}_${iproc}_0p25 + $TRIMRH pgb2file_${fhr3}_${iproc}_0p5 + $TRIMRH pgb2file_${fhr3}_${iproc}_1p0 + #tweak sea ice cover + count=$($WGRIB2 $optncpu pgb2file_${fhr3}_${iproc}_0p25 -match "LAND|ICEC" |wc -l) + if [ $count -eq 2 ]; then + $MODICEC pgb2file_${fhr3}_${iproc}_0p25 + $MODICEC pgb2file_${fhr3}_${iproc}_0p5 + $MODICEC pgb2file_${fhr3}_${iproc}_1p0 + fi + #$CNVGRIB -g21 pgb2file_${fhr3}_${iproc}_0p25 pgbfile_${fhr3}_${iproc}_0p25 + if [ "$PGB1F" = 'YES' ]; then + $CNVGRIB -g21 pgb2file_${fhr3}_${iproc}_1p0 pgbfile_${fhr3}_${iproc}_1p0 + export err=$?; err_chk + fi + else + $WGRIB2 $optncpu $tmpfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 \ + -new_grid $grid0p25 pgb2file_${fhr3}_${iproc}_0p25 + export err=$?; err_chk + $TRIMRH pgb2file_${fhr3}_${iproc}_0p25 + #tweak sea ice cover + count=$($WGRIB2 $optncpu pgb2file_${fhr3}_${iproc}_0p25 -match "LAND|ICEC" |wc -l) + if [ $count -eq 2 ]; then + $MODICEC pgb2file_${fhr3}_${iproc}_0p25 + fi + fi +elif [ $nset = 2 ]; then + if [ "$PGBS" = "YES" ]; then + $WGRIB2 $optncpu $tmpfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 \ + -new_grid $grid0p25 pgb2bfile_${fhr3}_${iproc}_0p25 \ + -new_grid $grid1p0 pgb2bfile_${fhr3}_${iproc}_1p0 \ + -new_grid $grid0p5 pgb2bfile_${fhr3}_${iproc}_0p5 + export err=$?; err_chk + $TRIMRH pgb2bfile_${fhr3}_${iproc}_0p25 + $TRIMRH pgb2bfile_${fhr3}_${iproc}_0p5 + $TRIMRH pgb2bfile_${fhr3}_${iproc}_1p0 + else + $WGRIB2 $optncpu $tmpfile $opt1 $opt21 $opt22 $opt23 $opt24 $opt25 $opt26 $opt27 $opt28 \ + -new_grid $grid0p25 pgb2bfile_${fhr3}_${iproc}_0p25 + export err=$?; err_chk + $TRIMRH pgb2bfile_${fhr3}_${iproc}_0p25 + fi +fi + +#---------------------------------------------------------------------------------------------- +#--Hui-Ya Chuang +# export grid1p0="0 6 0 0 0 0 0 0 360 181 0 0 90000000 0 48 -90000000 359000000 1000000 1000000 0" +# $COPYGB2 -g "${grid1p0}" -i0 -x tmpfile_${FH}_${iproc} pgb2file_${FH}_${iproc}_1p0 +# export grid0p5="0 6 0 0 0 0 0 0 720 361 0 0 90000000 0 48 -90000000 359500000 500000 500000 0" +# $COPYGB2 -g "${grid0p5}" -i0 -x tmpfile_${FH}_${iproc} pgb2file_${FH}_${iproc}_0p5 +# export grid2p5="0 6 0 0 0 0 0 0 144 73 0 0 90000000 0 48 -90000000 357500000 2500000 2500000 0" +# $COPYGB2 -g "${grid2p5}" -i0 -x tmpfile_${FH}_${iproc} pgb2file_${FH}_${iproc}_2p5 +# $CNVGRIB -g21 pgb2file_${fhr3}_${iproc}_1p0 pgbfile_${fhr3}_${iproc}_1p0 +# $CNVGRIB -g21 pgb2file_${fhr3}_${iproc}_2p5 pgbfile_${fhr3}_${iproc}_2p5 +#---------------------------------------------------------------------------------------------- + +exit 0 diff --git a/ush/gfs_nceppost.sh b/ush/gfs_nceppost.sh new file mode 100755 index 0000000000..6c75572d10 --- /dev/null +++ b/ush/gfs_nceppost.sh @@ -0,0 +1,428 @@ + +################################################################################ +#### UNIX Script Documentation Block +# . . +# Script name: gfs_nceppost.sh +# Script description: Posts the global pressure GRIB file +# +# Author: Mark Iredell Org: NP23 Date: 1999-05-01 +# +# Abstract: This script reads a single global GFS IO file and (optionally) +# a global flux file and creates a global pressure GRIB file. +# The resolution and generating code of the output GRIB file can also +# be set in the argument list. +# +# Script history log: +# 1999-05-01 Mark Iredell +# 2007-04-04 Huiya Chuang: Modify the script to run unified post +# 2012-06-04 Jun Wang: add grib2 option +# 2015-03-20 Lin Gan: add Perl for Post XML performance upgrade +# 2016-02-08 Lin Gan: Modify to use Vertical Structure +# 2018-02-05 Wen Meng: For EE2 standard, create gfs_nceppost.sh based +# global_nceppost.sh and change EXECglobal to EXECgfs; +# Remove legacy setting for reading non-nemsio model output +# and generating grib1 data +# 2019-06-02 Wen Meng: Remove the links of gfs fix files. +# 2021-06-11 Yali Mao: Instead of err_chk, 'exit $err' for wafsfile +# if POSTGPEXEC fails +# +# Usage: global_postgp.sh SIGINP FLXINP FLXIOUT PGBOUT PGIOUT IGEN +# +# Input script positional parameters: +# 1 Input sigma file +# defaults to $SIGINP +# 2 Input flux file +# defaults to $FLXINP +# 3 Output flux index file +# defaults to $FLXIOUT +# 4 Output pressure GRIB file +# defaults to $PGBOUT +# 5 Output pressure GRIB index file +# defaults to $PGIOUT, then to none +# 8 Model generating code, +# defaults to $IGEN, then to input sigma generating code +# +# Imported Shell Variables: +# SIGINP Input sigma file +# overridden by $1 +# FLXINP Input flux file +# overridden by $2 +# FLXIOUT Output flux index file +# overridden by $3 +# PGBOUT Output pressure GRIB file +# overridden by $4. If not defined, +# post will use the filename specified in +# the control file +# PGIOUT Output pressure GRIB index file +# overridden by $5; defaults to none +# IGEN Model generating code +# overridden by $8; defaults to input sigma generating code +##### Moorthi: Add new imported shell variable for running chgres +# CHGRESSH optional: the script to run chgres +# default to to ${USHglobal}/global_chgres.sh +# SIGLEVEL optional: the coordinate text file +# default to to /nwprod/fix/global_hyblev.l${LEVS}.txt +##### Chuang: Add new imported Shell Variable for ncep post +# OUTTYP Output file type read in by post +# 1: if user has a sigma file and needs post to run chgres to convert to gfs io file +# 2: if user already has a gfs io file +# 3: if user uses post to read sigma file directly +# 0: if user wishes to generate both gfsio and sigma files +# 4: if user uses post to read nemsio file directly +# VDATE Verifying date 10 digits yyyymmddhh +# GFSOUT Optional, output file name from chgres which is input file name to nceppost +# if model already runs gfs io, make sure GFSOUT is linked to the gfsio file +# CTLFILE Optional, Your version of control file if not using operational one +# OVERPARMEXEC Optional, the executable for changing Grib KPDS ID +# default to to ${EXECglobal}/overparm_grib +# CHGRESTHREAD Optional, speed up chgres by using multiple threads +# default to 1 +# FILTER Optional, set to 1 to filter SLP and 500 mb height using copygb +# D3DINP Optional, Inout D3D file, if not defined, post will run +# without processing D3D file +# D3DOUT Optional, output D3D file, if not defined, post will +# use the file name specified in the control file +# IPVOUT Optional, output IPV file, if not defined, post will +# use the file name specified in the control file +# GENPSICHI Optional, set to YES will generate psi and chi and +# append it to the end of PGBOUT. Default to NO +# GENPSICHIEXE Optional, specify where executable is for generating +# psi and chi. +######################################################################## +# EXECUTIL Directory for utility executables +# defaults to /nwprod/util/exec +# USHUTIL Directory for utility scripts +# defaults to /nwprod/util/ush +# EXECglobal Directory for global executables +# defaults to /nwprod/exec +# USHglobal Directory for global scripts +# defaults to /nwprod/ush +# DATA working directory +# (if nonexistent will be made, used and deleted) +# defaults to current working directory +# MP Multi-processing type ("p" or "s") +# defaults to "p", or "s" if LOADL_STEP_TYPE is not PARALLEL +# XC Suffix to add to executables +# defaults to none +# POSTGPEXEC Global post executable +# defaults to ${EXECglobal}/ncep_post +# GRBINDEX GRIB index maker +# defaults to ${EXECUTIL}/grbindex$XC +# POSTGPLIST File containing further namelist inputs +# defaults to /dev/null +# INISCRIPT Preprocessing script +# defaults to none +# LOGSCRIPT Log posting script +# defaults to none +# ERRSCRIPT Error processing script +# defaults to 'eval [[ $err = 0 ]]' +# ENDSCRIPT Postprocessing script +# defaults to none +# POSTGPVARS Other namelist inputs to the global post executable +# such as IDRT,KO,PO,KTT,KT,PT,KZZ,ZZ, +# NCPUS,MXBIT,IDS,POB,POT,MOO,MOOA,MOW,MOWA, +# ICEN,ICEN2,IENST,IENSI +# defaults to none set +# NTHREADS Number of threads +# defaults to 1 +# NTHSTACK Size of stack per thread +# defaults to 64000000 +# VERBOSE Verbose flag (YES or NO) +# defaults to NO +# PGMOUT Executable standard output +# defaults to $pgmout, then to '&1' +# PGMERR Executable standard error +# defaults to $pgmerr, then to '&1' +# pgmout Executable standard output default +# pgmerr Executable standard error default +# REDOUT standard output redirect ('1>' or '1>>') +# defaults to '1>', or to '1>>' to append if $PGMOUT is a file +# REDERR standard error redirect ('2>' or '2>>') +# defaults to '2>', or to '2>>' to append if $PGMERR is a file +# +# Exported Shell Variables: +# PGM Current program name +# pgm +# ERR Last return code +# err +# +# Modules and files referenced: +# scripts : $INISCRIPT +# $LOGSCRIPT +# $ERRSCRIPT +# $ENDSCRIPT +# +# programs : $POSTGPEXEC +# $GRBINDEX +# +# input data : $1 or $SIGINP +# $2 or $SFCINP +# $POSTGPLIST +# +# output data: $3 or $FLXIOUT +# $4 or $PGBOUT +# $5 or $PGIOUT +# $PGMOUT +# $PGMERR +# +# scratch : ${DATA}/postgp.inp.sig +# ${DATA}/postgp.inp.flx +# ${DATA}/postgp.out.pgb +# +# Remarks: +# +# Condition codes +# 0 - no problem encountered +# >0 - some problem encountered +# +# Control variable resolution priority +# 1 Command line argument. +# 2 Environment variable. +# 3 Inline default. +# +# Attributes: +# Language: POSIX shell +# Machine: IBM SP +# +#### +################################################################################ +# Set environment. +export VERBOSE=${VERBOSE:-"NO"} +if [[ "$VERBOSE" = "YES" ]]; then + echo $(date) EXECUTING $0 $* >&2 + set -x +fi +# Command line arguments. +export SIGINP=${1:-${SIGINP}} +export FLXINP=${2:-${FLXINP}} +export FLXIOUT=${3:-${FLXIOUT}} +export PGBOUT=${4:-${PGBOUT}} +#export PGIOUT=${5:-${PGIOUT}} +export PGIOUT=${PGIOUT:-pgb.idx} +export IO=${6:-${IO:-0}} +export JO=${7:-${JO:-0}} +export IGEN=${8:-${IGEN:-0}} +# Directories. +export NWPROD=${NWPROD:-/nwprod} +#export EXECUTIL=${EXECUTIL:-$NWPROD/util/exec} +export USHUTIL=${USHUTIL:-$NWPROD/util/ush} +export EXECgfs=${EXECgfs:-$NWPROD/exec} +export USHgfs=${USHgfs:-$NWPROD/ush} +export DATA=${DATA:-$(pwd)} +# Filenames. +export MP=${MP:-$([[ $LOADL_STEP_TYPE = PARALLEL ]]&&echo "p"||echo "s")} +export XC=${XC} +export POSTGPEXEC=${POSTGPEXEC:-${EXECgfs}/gfs_ncep_post} +export OVERPARMEXEC=${OVERPARMEXEC:-${EXECgfs}/overparm_grib} +export POSTGPLIST=${POSTGPLIST:-/dev/null} +export INISCRIPT=${INISCRIPT} +export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} +export LOGSCRIPT=${LOGSCRIPT} +export ENDSCRIPT=${ENDSCRIPT} +export GFSOUT=${GFSOUT:-gfsout} +export CTLFILE=${CTLFILE:-$NWPROD/parm/gfs_cntrl.parm} +#export MODEL_OUT_FORM=${MODEL_OUT_FORM:-binarynemsiompiio} +export OUTPUT_FILE=${OUTPUT_FILE:-"nemsio"} +export GRIBVERSION=${GRIBVERSION:-'grib1'} +# Other variables. +export POSTGPVARS=${POSTGPVARS} +export NTHREADS=${NTHREADS:-1} +export NTHSTACK=${NTHSTACK:-64000000} +export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} +export PGMERR=${PGMERR:-${pgmerr:-'&2'}} +export CHGRESTHREAD=${CHGRESTHREAD:-1} +export FILTER=${FILTER:-0} +export GENPSICHI=${GENPSICHI:-NO} +export GENPSICHIEXE=${GENPSICHIEXE:-${EXECgfs}/genpsiandchi} +export ens=${ens:-NO} +#export D3DINP=${D3DINP:-/dev/null} +typeset -L1 l=$PGMOUT +[[ $l = '&' ]]&&a=''||a='>' +export REDOUT=${REDOUT:-'1>'$a} +typeset -L1 l=$PGMERR +[[ $l = '&' ]]&&a=''||a='>' +export REDERR=${REDERR:-'2>'$a} +################################################################################ +# Preprocessing +$INISCRIPT + +# Chuang: Run chgres if OUTTYP=1 or 0 + +export APRUN=${APRUNP:-${APRUN:-""}} + +# exit if NEMSINP does not exist +if [ ${OUTTYP} -eq 4 ] ; then + if [ ! -s $NEMSINP -o ! -s $FLXINP ] ; then + echo "model files not found, exitting" + exit 111 + fi +fi + +export SIGHDR=${SIGHDR:-$NWPROD/exec/global_sighdr} +export IDRT=${IDRT:-4} + +# run post to read nemsio file if OUTTYP=4 +if [ ${OUTTYP} -eq 4 ] ; then + if [ ${OUTPUT_FILE} = "netcdf" ]; then + export MODEL_OUT_FORM=${MODEL_OUT_FORM:-netcdfpara} + elif [ ${OUTPUT_FILE} = "nemsio" ]; then + export MODEL_OUT_FORM=${MODEL_OUT_FORM:-binarynemsiompiio} + else + export MODEL_OUT_FORM=${MODEL_OUT_FORM:-binarynemsiompiio} + fi + export GFSOUT=${NEMSINP} +fi + +# allow threads to use threading in Jim's sp lib +# but set default to 1 +export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} + +pwd=$(pwd) +if [[ -d $DATA ]]; then + mkdata=NO +else + mkdir -p $DATA + mkdata=YES +fi +cd $DATA||exit 99 +################################################################################ +# Post GRIB +export PGM=$POSTGPEXEC +export pgm=$PGM +$LOGSCRIPT +cat <<-EOF >postgp.inp.nml$$ + &NAMPGB + $POSTGPVARS +EOF + +cat <<-EOF >>postgp.inp.nml$$ + / +EOF + +if [[ "$VERBOSE" = "YES" ]]; then + cat postgp.inp.nml$$ +fi + +# making the time stamp format for ncep post +export YY=$(echo $VDATE | cut -c1-4) +export MM=$(echo $VDATE | cut -c5-6) +export DD=$(echo $VDATE | cut -c7-8) +export HH=$(echo $VDATE | cut -c9-10) + +cat > itag <<-EOF + &model_inputs + fileName='${GFSOUT}' + IOFORM='${MODEL_OUT_FORM}' + grib='${GRIBVERSION}' + DateStr='${YY}-${MM}-${DD}_${HH}:00:00' + MODELNAME='GFS' + fileNameFlux='${FLXINP}' + / +EOF + +cat postgp.inp.nml$$ >> itag + +cat itag + +rm -f fort.* + +#ln -sf $SIGINP postgp.inp.sig$$ +#ln -sf $FLXINP postgp.inp.flx$$ +#ln -sf $PGBOUT postgp.out.pgb$$ + +# change model generating Grib number +if [ ${GRIBVERSION} = grib2 ]; then + cp ${POSTGRB2TBL} . + cp ${PostFlatFile} ./postxconfig-NT.txt + if [ ${ens} = "YES" ] ; then + sed < ${PostFlatFile} -e "s#negatively_pert_fcst#${ens_pert_type}#" > ./postxconfig-NT.txt + fi + # cp ${CTLFILE} postcntrl.xml +fi +export CTL=$(basename $CTLFILE) + +ln -sf griddef.out fort.110 +cp ${PARMpost}/nam_micro_lookup.dat ./eta_micro_lookup.dat + +echo "gfs_nceppost.sh OMP_NUM_THREADS= $OMP_NUM_THREADS" +${APRUN:-mpirun.lsf} $POSTGPEXEC < itag > outpost_gfs_${VDATE}_${CTL} + +export ERR=$? +export err=$ERR + +if [ $err -ne 0 ] ; then + if [ $PGBOUT = "wafsfile" ] ; then + exit $err + fi +fi +$ERRSCRIPT||exit 2 + +if [ $FILTER = "1" ] ; then + # Filter SLP and 500 mb height using copygb, change GRIB ID, and then + # cat the filtered fields to the pressure GRIB file, from Iredell + + if [ $GRIBVERSION = grib2 ]; then + if [ ${ens} = YES ] ; then + $COPYGB2 -x -i'4,0,80' -k'1 3 0 7*-9999 101 0 0' $PGBOUT tfile + export err=$?; err_chk + else + $COPYGB2 -x -i'4,0,80' -k'0 3 0 7*-9999 101 0 0' $PGBOUT tfile + export err=$?; err_chk + fi + $WGRIB2 tfile -set_byte 4 11 1 -grib prmsl + export err=$?; err_chk + if [ ${ens} = YES ] ; then + $COPYGB2 -x -i'4,1,5' -k'1 3 5 7*-9999 100 0 50000' $PGBOUT tfile + export err=$?; err_chk + else + $COPYGB2 -x -i'4,1,5' -k'0 3 5 7*-9999 100 0 50000' $PGBOUT tfile + export err=$?; err_chk + fi + $WGRIB2 tfile -set_byte 4 11 193 -grib h5wav + export err=$?; err_chk + + #cat $PGBOUT prmsl h5wav >> $PGBOUT + #wm + # cat prmsl h5wav >> $PGBOUT + [[ -f prmsl ]] && rm prmsl + [[ -f h5wav ]] && rm h5wav + [[ -f tfile ]] && rm tfile + fi +fi + +################################################################################ +# Make GRIB index file +if [[ -n $PGIOUT ]]; then + if [ $GRIBVERSION = grib2 ]; then + # JY $GRBINDEX2 $PGBOUT $PGIOUT + $GRB2INDEX $PGBOUT $PGIOUT + fi +fi +if [[ -r $FLXINP && -n $FLXIOUT && $OUTTYP -le 3 ]]; then + $GRBINDEX $FLXINP $FLXIOUT +fi +################################################################################ +# generate psi and chi +echo "GENPSICHI= " $GENPSICHI +if [ $GENPSICHI = YES ] ; then + #echo "PGBOUT PGIOUT=" $PGBOUT $PGIOUT + #echo "YY MM=" $YY $MM + export psichifile=./psichi.grb + $GENPSICHIEXE < postgp.inp.nml$$ + rc=$? + if [[ $rc -ne 0 ]] ; then + echo 'Nonzero return code rc= '$rc + exit 3 + fi + cat ./psichi.grb >> $PGBOUT +fi +################################################################################ +# Postprocessing +cd $pwd +[[ $mkdata = YES ]]&&rmdir $DATA +$ENDSCRIPT +set +x +if [[ "$VERBOSE" = "YES" ]]; then + echo $(date) EXITING $0 with return code $err >&2 +fi +exit $err diff --git a/ush/gfs_transfer.sh b/ush/gfs_transfer.sh new file mode 100755 index 0000000000..f8b00ea623 --- /dev/null +++ b/ush/gfs_transfer.sh @@ -0,0 +1,81 @@ +#!/bin/ksh + +##################################################################### +echo "-----------------------------------------------------" +echo " Script: gfs_transfer.sh" +echo " " +echo " Purpose - Copy GFS Posts to /nwges and /com" +echo " Alert posted files to DBNet" +echo " " +echo " History - " +echo " Cooke - 04/21/05 - Inital version, based off of" +echo " global_transfer.sh" +echo " Meng - 01/04/18 - Remove writing data file to /nwges." +echo " Meng - 09/14/20 - Update model output format to netcdf for GFS V16" +echo "-----------------------------------------------------" +##################################################################### +set -xa + +# export CNVGRIB=/nwprod/util/exec/cnvgrib +# export GRB2INDX=/nwprod/util/exec/grb2index +# export WGRIB2=/nwprod/util/exec/wgrib2 + + +#if test "$SENDCOM" = "YES" +#then + # + # Save Pressure and SFLUX GRIB/GRIB Index files + # +# cp flxifile $COMOUT/${RUN}.${cycle}.sfluxgrbif$fhr + +# Chuang: keeping gfs surface files around because post and dng +# use them now + #if [[ $fhr -gt 84 ]] + #then + # if [[ $fhr -ne 120 && $fhr -ne 168 ]] + # then + # rm $COMOUT/${RUN}.${cycle}.bf$fhr + # fi + #fi +#fi + +############################################ +# Convert the sflux file to grib2 format: +############################################ +#cp $COMIN/${RUN}.${cycle}.sfluxgrbf$fhr sfluxgrbf$fhr +#if [ $(expr $fhr % 3) -eq 0 ]; then +#$CNVGRIB -g12 -p40 $COMIN/${RUN}.${cycle}.sfluxgrbf$fhr sfluxgrbf${fhr}.grib2 +#$WGRIB2 sfluxgrbf${fhr}.grib2 -s> sfluxgrbf${fhr}.grib2.idx + +#if [ $SENDCOM = YES ] +#then +# cp sfluxgrbf${fhr}.grib2 $COMOUT/${RUN}.${cycle}.sfluxgrbf${fhr}.grib2 +# cp sfluxgrbf${fhr}.grib2.idx $COMOUT/${RUN}.${cycle}.sfluxgrbf${fhr}.grib2.idx +#fi + +#fi +# +# DBNet Alerts for gfs suite +# + +if [ "$SENDDBN" = 'YES' -a "$RUN" = 'gfs' ]; then + #if [ $(expr $fhr % 3) -eq 0 ]; then + #echo $DBNROOT/bin/dbn_alert MODEL GFS_SGB $job $COMOUT/${RUN}.${cycle}.sfluxgrbf$fhr + #echo $DBNROOT/bin/dbn_alert MODEL GFS_SGBI $job $COMOUT/${RUN}.${cycle}.sfluxgrbif$fhr + #echo $DBNROOT/bin/dbn_alert MODEL GFS_SGB_GB2 $job $COMOUT/${RUN}.${cycle}.sfluxgrbf${fhr}.grib2 + #echo $DBNROOT/bin/dbn_alert MODEL GFS_SGB_GB2_WIDX $job $COMOUT/${RUN}.${cycle}.sfluxgrbf${fhr}.grib2.idx + #fi + + fhr=$(printf "%03d" $fhr) + $DBNROOT/bin/dbn_alert MODEL GFS_SF $job $COMOUT/${RUN}.t${cyc}z.atmf$fhr.nc + + if [[ $fhr -gt 0 && $fhr -le 84 ]]; then + $DBNROOT/bin/dbn_alert MODEL GFS_BF $job $COMOUT/${RUN}.t${cyc}z.sfcf$fhr.nc + fi + if [[ $fhr -eq 120 ]]; then + $DBNROOT/bin/dbn_alert MODEL GFS_BF $job $COMOUT/${RUN}.t${cyc}z.sfcf$fhr.nc + fi +fi + +exit 0 + diff --git a/ush/global_nceppost.sh b/ush/global_nceppost.sh new file mode 100755 index 0000000000..cbc9ba6ccc --- /dev/null +++ b/ush/global_nceppost.sh @@ -0,0 +1,492 @@ + +################################################################################ +#### UNIX Script Documentation Block +# . . +# Script name: global_nceppost.sh +# Script description: Posts the global pressure GRIB file +# +# Author: Mark Iredell Org: NP23 Date: 1999-05-01 +# +# Abstract: This script reads a single global GFS IO file and (optionally) +# a global flux file and creates a global pressure GRIB file. +# The resolution and generating code of the output GRIB file can also +# be set in the argument list. +# +# Script history log: +# 1999-05-01 Mark Iredell +# 2007-04-04 Huiya Chuang: Modify the script to run unified post +# 2012-06-04 Jun Wang: add grib2 option +# 2015-03-20 Lin Gan: add Perl for Post XML performance upgrade +# 2016-02-08 Lin Gan: Modify to use Vertical Structure +# +# Usage: global_postgp.sh SIGINP FLXINP FLXIOUT PGBOUT PGIOUT IGEN +# +# Input script positional parameters: +# 1 Input sigma file +# defaults to $SIGINP +# 2 Input flux file +# defaults to $FLXINP +# 3 Output flux index file +# defaults to $FLXIOUT +# 4 Output pressure GRIB file +# defaults to $PGBOUT +# 5 Output pressure GRIB index file +# defaults to $PGIOUT, then to none +# 8 Model generating code, +# defaults to $IGEN, then to input sigma generating code +# +# Imported Shell Variables: +# SIGINP Input sigma file +# overridden by $1 +# FLXINP Input flux file +# overridden by $2 +# FLXIOUT Output flux index file +# overridden by $3 +# PGBOUT Output pressure GRIB file +# overridden by $4. If not defined, +# post will use the filename specified in +# the control file +# PGIOUT Output pressure GRIB index file +# overridden by $5; defaults to none +# IGEN Model generating code +# overridden by $8; defaults to input sigma generating code +##### Moorthi: Add new imported shell variable for running chgres +# CHGRESSH optional: the script to run chgres +# default to to ${USHglobal}/global_chgres.sh +# SIGLEVEL optional: the coordinate text file +# default to to /nwprod/fix/global_hyblev.l${LEVS}.txt +##### Chuang: Add new imported Shell Variable for ncep post +# OUTTYP Output file type read in by post +# 1: if user has a sigma file and needs post to run chgres to convert to gfs io file +# 2: if user already has a gfs io file +# 3: if user uses post to read sigma file directly +# 0: if user wishes to generate both gfsio and sigma files +# 4: if user uses post to read nemsio file directly +# VDATE Verifying date 10 digits yyyymmddhh +# GFSOUT Optional, output file name from chgres which is input file name to nceppost +# if model already runs gfs io, make sure GFSOUT is linked to the gfsio file +# CTLFILE Optional, Your version of control file if not using operational one +# OVERPARMEXEC Optional, the executable for changing Grib KPDS ID +# default to to ${EXECglobal}/overparm_grib +# CHGRESTHREAD Optional, speed up chgres by using multiple threads +# default to 1 +# FILTER Optional, set to 1 to filter SLP and 500 mb height using copygb +# D3DINP Optional, Inout D3D file, if not defined, post will run +# without processing D3D file +# D3DOUT Optional, output D3D file, if not defined, post will +# use the file name specified in the control file +# IPVOUT Optional, output IPV file, if not defined, post will +# use the file name specified in the control file +# GENPSICHI Optional, set to YES will generate psi and chi and +# append it to the end of PGBOUT. Default to NO +# GENPSICHIEXE Optional, specify where executable is for generating +# psi and chi. +######################################################################## +# EXECUTIL Directory for utility executables +# defaults to /nwprod/util/exec +# USHUTIL Directory for utility scripts +# defaults to /nwprod/util/ush +# EXECglobal Directory for global executables +# defaults to /nwprod/exec +# USHglobal Directory for global scripts +# defaults to /nwprod/ush +# DATA working directory +# (if nonexistent will be made, used and deleted) +# defaults to current working directory +# MP Multi-processing type ("p" or "s") +# defaults to "p", or "s" if LOADL_STEP_TYPE is not PARALLEL +# XC Suffix to add to executables +# defaults to none +# POSTGPEXEC Global post executable +# defaults to ${EXECglobal}/ncep_post +# GRBINDEX GRIB index maker +# defaults to ${EXECUTIL}/grbindex$XC +# ANOMCATSH Global anomaly GRIB script +# defaults to ${USHglobal/global_anomcat.sh +# POSTGPLIST File containing further namelist inputs +# defaults to /dev/null +# INISCRIPT Preprocessing script +# defaults to none +# LOGSCRIPT Log posting script +# defaults to none +# ERRSCRIPT Error processing script +# defaults to 'eval [[ $err = 0 ]]' +# ENDSCRIPT Postprocessing script +# defaults to none +# POSTGPVARS Other namelist inputs to the global post executable +# such as IDRT,KO,PO,KTT,KT,PT,KZZ,ZZ, +# NCPUS,MXBIT,IDS,POB,POT,MOO,MOOA,MOW,MOWA, +# ICEN,ICEN2,IENST,IENSI +# defaults to none set +# NTHREADS Number of threads +# defaults to 1 +# NTHSTACK Size of stack per thread +# defaults to 64000000 +# VERBOSE Verbose flag (YES or NO) +# defaults to NO +# PGMOUT Executable standard output +# defaults to $pgmout, then to '&1' +# PGMERR Executable standard error +# defaults to $pgmerr, then to '&1' +# pgmout Executable standard output default +# pgmerr Executable standard error default +# REDOUT standard output redirect ('1>' or '1>>') +# defaults to '1>', or to '1>>' to append if $PGMOUT is a file +# REDERR standard error redirect ('2>' or '2>>') +# defaults to '2>', or to '2>>' to append if $PGMERR is a file +# +# Exported Shell Variables: +# PGM Current program name +# pgm +# ERR Last return code +# err +# +# Modules and files referenced: +# scripts : $INISCRIPT +# $LOGSCRIPT +# $ERRSCRIPT +# $ENDSCRIPT +# $ANOMCATSH +# +# programs : $POSTGPEXEC +# $GRBINDEX +# +# input data : $1 or $SIGINP +# $2 or $SFCINP +# $POSTGPLIST +# +# output data: $3 or $FLXIOUT +# $4 or $PGBOUT +# $5 or $PGIOUT +# $PGMOUT +# $PGMERR +# +# scratch : ${DATA}/postgp.inp.sig +# ${DATA}/postgp.inp.flx +# ${DATA}/postgp.out.pgb +# +# Remarks: +# +# Condition codes +# 0 - no problem encountered +# >0 - some problem encountered +# +# Control variable resolution priority +# 1 Command line argument. +# 2 Environment variable. +# 3 Inline default. +# +# Attributes: +# Language: POSIX shell +# Machine: IBM SP +# +#### +################################################################################ +# Set environment. +export VERBOSE=${VERBOSE:-"NO"} +if [[ "$VERBOSE" = "YES" ]]; then + echo $(date) EXECUTING $0 $* >&2 + set -x +fi +# Command line arguments. +export SIGINP=${1:-${SIGINP}} +export FLXINP=${2:-${FLXINP}} +export FLXIOUT=${3:-${FLXIOUT}} +export PGBOUT=${4:-${PGBOUT}} +#export PGIOUT=${5:-${PGIOUT}} +export PGIOUT=${PGIOUT:-pgb.idx} +export IO=${6:-${IO:-0}} +export JO=${7:-${JO:-0}} +export IGEN=${8:-${IGEN:-0}} +# Directories. +export NWPROD=${NWPROD:-/nwprod} +#export EXECUTIL=${EXECUTIL:-$NWPROD/util/exec} +export USHUTIL=${USHUTIL:-$NWPROD/util/ush} +export EXECglobal=${EXECglobal:-$NWPROD/exec} +export USHglobal=${USHglobal:-$NWPROD/ush} +export DATA=${DATA:-$(pwd)} +# Filenames. +export MP=${MP:-$([[ $LOADL_STEP_TYPE = PARALLEL ]]&&echo "p"||echo "s")} +export XC=${XC} +export POSTGPEXEC=${POSTGPEXEC:-${EXECglobal}/ncep_post} +export OVERPARMEXEC=${OVERPARMEXEC:-${EXECglobal}/overparm_grib} +export ANOMCATSH=${ANOMCATSH:-${USHglobal}/global_anomcat.sh} +export CHGRESSH=${CHGRESSH:-${USHglobal}/global_chgres.sh} +export POSTGPLIST=${POSTGPLIST:-/dev/null} +export INISCRIPT=${INISCRIPT} +export ERRSCRIPT=${ERRSCRIPT:-'eval [[ $err = 0 ]]'} +export LOGSCRIPT=${LOGSCRIPT} +export ENDSCRIPT=${ENDSCRIPT} +export GFSOUT=${GFSOUT:-gfsout} +export CTLFILE=${CTLFILE:-$NWPROD/parm/gfs_cntrl.parm} +export MODEL_OUT_FORM=${MODEL_OUT_FORM:-binarynemsiompiio} +export GRIBVERSION=${GRIBVERSION:-'grib1'} +# Other variables. +export POSTGPVARS=${POSTGPVARS} +export NTHREADS=${NTHREADS:-1} +export NTHSTACK=${NTHSTACK:-64000000} +export PGMOUT=${PGMOUT:-${pgmout:-'&1'}} +export PGMERR=${PGMERR:-${pgmerr:-'&2'}} +export CHGRESTHREAD=${CHGRESTHREAD:-1} +export FILTER=${FILTER:-1} +export GENPSICHI=${GENPSICHI:-NO} +export GENPSICHIEXE=${GENPSICHIEXE:-${EXECglobal}/genpsiandchi} +export ens=${ens:-NO} +#export D3DINP=${D3DINP:-/dev/null} +typeset -L1 l=$PGMOUT +[[ $l = '&' ]]&&a=''||a='>' +export REDOUT=${REDOUT:-'1>'$a} +typeset -L1 l=$PGMERR +[[ $l = '&' ]]&&a=''||a='>' +export REDERR=${REDERR:-'2>'$a} +################################################################################ +# Preprocessing +$INISCRIPT + +# Chuang: Run chgres if OUTTYP=1 or 0 + +export APRUN=${APRUNP:-${APRUN:-""}} + +# exit if SIGINP does not exist +if [ ${OUTTYP} -le 3 ] ; then + if [ ! -s $SIGINP ] ; then + echo "sigma file not found, exitting" + exit 111 + fi +fi + +export SIGHDR=${SIGHDR:-$NWPROD/exec/global_sighdr} +export IDRT=${IDRT:-4} + +if [ ${OUTTYP} -le 1 ] ; then + export JCAP=${JCAP:-$(echo jcap|$SIGHDR ${SIGINP})} + export LEVS=${LEVS:-$(echo levs|$SIGHDR ${SIGINP})} + export IDVC=${IDVC:-$(echo idvc|$SIGHDR ${SIGINP})} + export IDVM=${IDVM:-$(echo idvm|$SIGHDR ${SIGINP})} + export NVCOORD=${NVCOORD:-$(echo nvcoord|$SIGHDR ${SIGINP})} + export IVSSIG=${IVSSIG:-$(echo ivs|$SIGHDR ${SIGINP})} + export LATCH=${LATCH:-8} + if [ ${OUTTYP} -eq 1 ] ; then + export CHGRESVARS="IDVC=$IDVC,IDVM=$IDVM,NVCOORD=$NVCOORD,IVSSIG=$IVSSIG,LATCH=$LATCH," + elif [ ${OUTTYP} -eq 0 ] ; then + export CHGRESVARS="LATCH=$LATCH,$CHGRESVARS" + fi + #export SIGLEVEL=${SIGLEVEL:-""} + export SIGLEVEL=${SIGLEVEL:-"$NWPROD/fix/global_hyblev.l${LEVS}.txt"} + # specify threads for running chgres + export OMP_NUM_THREADS=$CHGRESTHREAD + export NTHREADS=$OMP_NUM_THREADS + if [ ${JCAP} -eq 574 -a ${IDRT} -eq 4 ]; then + export NTHSTACK=1024000000 + fi + export XLSMPOPTS="parthds=$NTHREADS:stack=$NTHSTACK" + + $CHGRESSH + + export ERR=$? + export err=$ERR + $ERRSCRIPT||exit 1 + +# run post to read sigma file directly if OUTTYP=3 +elif [ ${OUTTYP} -eq 3 ] ; then + export LONB=${LONB:-$(echo lonb|$SIGHDR ${SIGINP})} + export LATB=${LATB:-$(echo latb|$SIGHDR ${SIGINP})} + export MODEL_OUT_FORM=sigio + export GFSOUT=${SIGINP} + +# run post to read nemsio file if OUTTYP=4 +elif [ ${OUTTYP} -eq 4 ] ; then + export nemsioget=${nemsioget:-$EXECglobal/nemsio_get} + export LONB=${LONB:-$($nemsioget $NEMSINP dimx | awk '{print $2}')} + export LATB=${LATB:-$($nemsioget $NEMSINP dimy | awk '{print $2}')} + export JCAP=${JCAP:-$(expr $LATB - 2)} + # export LONB=${LONB:-$($nemsioget $NEMSINP lonf |grep -i "lonf" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} + # export LATB=${LATB:-$($nemsioget $NEMSINP latg |grep -i "latg" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} + # export JCAP=${JCAP:-$($nemsioget $NEMSINP jcap |grep -i "jcap" |awk -F"= " '{print $2}' |awk -F" " '{print $1}')} + + export MODEL_OUT_FORM=${MODEL_OUT_FORM:-binarynemsiompiio} + export GFSOUT=${NEMSINP} + ln -sf $FIXglobal/fix_am/global_lonsperlat.t${JCAP}.${LONB}.${LATB}.txt ./lonsperlat.dat + ln -sf $FIXglobal/fix_am/global_hyblev.l${LEVS}.txt ./global_hyblev.txt +fi + +# allow threads to use threading in Jim's sp lib +# but set default to 1 +export OMP_NUM_THREADS=${OMP_NUM_THREADS:-1} + +pwd=$(pwd) +if [[ -d $DATA ]]; then + mkdata=NO +else + mkdir -p $DATA + mkdata=YES +fi +cd $DATA||exit 99 +################################################################################ +# Post GRIB +export PGM=$POSTGPEXEC +export pgm=$PGM +$LOGSCRIPT +cat <<-EOF >postgp.inp.nml$$ + &NAMPGB + $POSTGPVARS +EOF + +cat <<-EOF >>postgp.inp.nml$$ + / +EOF + +if [[ "$VERBOSE" = "YES" ]]; then + cat postgp.inp.nml$$ +fi + +# making the time stamp format for ncep post +export YY=$(echo $VDATE | cut -c1-4) +export MM=$(echo $VDATE | cut -c5-6) +export DD=$(echo $VDATE | cut -c7-8) +export HH=$(echo $VDATE | cut -c9-10) + +cat > itag <<-EOF + $GFSOUT + ${MODEL_OUT_FORM} + ${GRIBVERSION} + ${YY}-${MM}-${DD}_${HH}:00:00 + GFS + $FLXINP + $D3DINP +EOF + +cat postgp.inp.nml$$ >> itag + +cat itag + +rm -f fort.* + +#ln -sf $SIGINP postgp.inp.sig$$ +#ln -sf $FLXINP postgp.inp.flx$$ +#ln -sf $PGBOUT postgp.out.pgb$$ + +# change model generating Grib number +if [ ${GRIBVERSION} = grib1 ]; then + if [ ${IGEN} -le 9 ] ; then + cat ${CTLFILE}|sed s:00082:0000${IGEN}:>./gfs_cntrl.parm + elif [ ${IGEN} -le 99 ] ; then + cat ${CTLFILE}|sed s:00082:000${IGEN}:>./gfs_cntrl.parm + elif [ ${IGEN} -le 999 ] ; then + cat ${CTLFILE}|sed s:00082:00${IGEN}:>./gfs_cntrl.parm + else + ln -sf ${CTLFILE} ./gfs_cntrl.parm + fi + ln -sf ./gfs_cntrl.parm fort.14 +elif [ ${GRIBVERSION} = grib2 ]; then + cp ${POSTGRB2TBL} . + cp ${PostFlatFile} ./postxconfig-NT.txt + if [ ${ens} = "YES" ] ; then + sed < ${PostFlatFile} -e "s#negatively_pert_fcst#${ens_pert_type}#" > ./postxconfig-NT.txt + fi + # cp ${CTLFILE} postcntrl.xml +fi +export CTL=$(basename $CTLFILE) + +ln -sf griddef.out fort.110 +cp ${PARMglobal}/nam_micro_lookup.dat ./eta_micro_lookup.dat + +${APRUN:-mpirun.lsf} $POSTGPEXEC < itag > outpost_gfs_${VDATE}_${CTL} + +export ERR=$? +export err=$ERR +$ERRSCRIPT||exit 2 + +if [ $FILTER = "1" ] ; then + # Filter SLP and 500 mb height using copygb, change GRIB ID, and then + # cat the filtered fields to the pressure GRIB file, from Iredell + + if [ $GRIBVERSION = grib1 ]; then + $COPYGB -x -i'4,0,80' -k'4*-1,1,102' $PGBOUT tfile + ln -s -f tfile fort.11 + ln -s -f prmsl fort.51 + echo 0 2|$OVERPARMEXEC + $COPYGB -x -i'4,1,5' -k'4*-1,7,100,500' $PGBOUT tfile + ln -s -f tfile fort.11 + ln -s -f h5wav fort.51 + echo 0 222|$OVERPARMEXEC + + #cat $PGBOUT prmsl h5wav >> $PGBOUT + cat prmsl h5wav >> $PGBOUT + elif [ $GRIBVERSION = grib2 ]; then + if [ ${ens} = YES ] ; then + $COPYGB2 -x -i'4,0,80' -k'1 3 0 7*-9999 101 0 0' $PGBOUT tfile + else + $COPYGB2 -x -i'4,0,80' -k'0 3 0 7*-9999 101 0 0' $PGBOUT tfile + fi + $WGRIB2 tfile -set_byte 4 11 1 -grib prmsl + if [ ${ens} = YES ] ; then + $COPYGB2 -x -i'4,1,5' -k'1 3 5 7*-9999 100 0 50000' $PGBOUT tfile + else + $COPYGB2 -x -i'4,1,5' -k'0 3 5 7*-9999 100 0 50000' $PGBOUT tfile + fi + $WGRIB2 tfile -set_byte 4 11 193 -grib h5wav + + #cat $PGBOUT prmsl h5wav >> $PGBOUT + + cat prmsl h5wav >> $PGBOUT + fi +fi + +################################################################################ +# Anomaly concatenation +# for now just do anomaly concentration for grib1 +if [ $GRIBVERSION = grib1 ]; then + if [[ -x $ANOMCATSH ]]; then + if [[ -n $PGIOUT ]]; then + $GRBINDEX $PGBOUT $PGIOUT + fi + export PGM=$ANOMCATSH + export pgm=$PGM + $LOGSCRIPT + + eval $ANOMCATSH $PGBOUT $PGIOUT + + export ERR=$? + export err=$ERR + $ERRSCRIPT||exit 3 + fi +fi +################################################################################ +# Make GRIB index file +if [[ -n $PGIOUT ]]; then + if [ $GRIBVERSION = grib2 ]; then + # JY $GRBINDEX2 $PGBOUT $PGIOUT + $GRB2INDEX $PGBOUT $PGIOUT + else + $GRBINDEX $PGBOUT $PGIOUT + fi +fi +if [[ -r $FLXINP && -n $FLXIOUT && $OUTTYP -le 3 ]]; then + $GRBINDEX $FLXINP $FLXIOUT +fi +################################################################################ +# generate psi and chi +echo "GENPSICHI= " $GENPSICHI +if [ $GENPSICHI = YES ] ; then + #echo "PGBOUT PGIOUT=" $PGBOUT $PGIOUT + #echo "YY MM=" $YY $MM + export psichifile=./psichi.grb + $GENPSICHIEXE < postgp.inp.nml$$ + rc=$? + if [[ $rc -ne 0 ]] ; then + echo 'Nonzero return code rc= '$rc + exit 3 + fi + cat ./psichi.grb >> $PGBOUT +fi +################################################################################ +# Postprocessing +cd $pwd +[[ $mkdata = YES ]]&&rmdir $DATA +$ENDSCRIPT +set +x +if [[ "$VERBOSE" = "YES" ]]; then + echo $(date) EXITING $0 with return code $err >&2 +fi +exit $err diff --git a/ush/link_crtm_fix.sh b/ush/link_crtm_fix.sh new file mode 100755 index 0000000000..3307b5f6dd --- /dev/null +++ b/ush/link_crtm_fix.sh @@ -0,0 +1,35 @@ +#! /bin/sh + +# Get CRTM fix directory from (in this order): +# 1. First argument to script, or +# 2. $FIXCRTM environment variable, or +# 3. Nowhere. Give up. Whine. +FIXCRTM="${1:-${FIXCRTM:-MISSING}}" + +if [[ "$FIXCRTM" == "MISSING" ]] ; then + echo "Please specify CRTM fix location. Giving up." 1>&2 + exit 19 +fi +if [[ ! -d "$FIXCRTM" ]] ; then + echo "$FIXCRTM: \$FIXCRTM is not a directory. Giving up." 1>&2 + exit 38 +fi + +for what in "amsre_aqua" "imgr_g11" "imgr_g12" "imgr_g13" \ + "imgr_g15" "imgr_mt1r" "imgr_mt2" "seviri_m10" \ + "ssmi_f13" "ssmi_f14" "ssmi_f15" "ssmis_f16" \ + "ssmis_f17" "ssmis_f18" "ssmis_f19" "ssmis_f20" \ + "tmi_trmm" "v.seviri_m10" "imgr_insat3d" "abi_gr" "ahi_himawari8" ; do + ln -s "$FIXCRTM/$what.TauCoeff.bin" . + ln -s "$FIXCRTM/$what.SpcCoeff.bin" . +done + +for what in 'Aerosol' 'Cloud' ; do + ln -s "$FIXCRTM/${what}Coeff.bin" . +done + +for what in $FIXCRTM/*Emis* ; do + ln -s $what . +done + +exit 0 diff --git a/ush/mod_icec.sh b/ush/mod_icec.sh new file mode 100755 index 0000000000..bb8c22182f --- /dev/null +++ b/ush/mod_icec.sh @@ -0,0 +1,23 @@ +#!/bin/sh +set -x +#This script is used for modifing icee via land-sea mask +#Wen Meng 11/2019: First Version + +f=$1 + +export WGRIB2=${WGRIB2:-${NWPROD:-/nwprod}/util/exec/wgrib2} + +$WGRIB2 $optncpu $f \ + -if 'LAND' -rpn 'sto_1' -fi \ + -if 'ICEC' -rpn 'rcl_1:0:==:*' -fi \ + -set_grib_type same \ + -set_scaling same same \ + -grib_out $f.new +export err=$?; err_chk +mv $f.new $f + +exit 0 + +#-if 'ICEC' -rpn 'rcl_1:-1:*:1:+:*' -fi \ + + diff --git a/ush/trim_rh.sh b/ush/trim_rh.sh new file mode 100755 index 0000000000..9140e97124 --- /dev/null +++ b/ush/trim_rh.sh @@ -0,0 +1,17 @@ +#!/bin/ksh +set -x + +#This is scripts is used to trim RH vaule larger than 100. +# Wen Meng 12/2017: First Version + +f=$1 + +export WGRIB2=${WGRIB2:-${NWPROD:-/nwprod}/util/exec/wgrib2} + +$WGRIB2 $optncpu $f -not_if ':RH:' -grib $f.new \ + -if ':RH:' -rpn "10:*:0.5:+:floor:1000:min:10:/" -set_grib_type same \ + -set_scaling -1 0 -grib_out $f.new +export err=$?; err_chk +mv $f.new $f + +exit 0