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