forked from NOAA-EMC/global-workflow
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexgfs_wave_nawips.sh
More file actions
executable file
·132 lines (115 loc) · 3.66 KB
/
exgfs_wave_nawips.sh
File metadata and controls
executable file
·132 lines (115 loc) · 3.66 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
#! /usr/bin/env bash
###################################################################
# echo "----------------------------------------------------"
# echo "exnawips - convert NCEP GRIB files into GEMPAK Grids"
# echo "----------------------------------------------------"
# echo "History: Mar 2000 - First implementation of this new script."
# echo "Sept 2011 - First implementation of this new script"
# echo " March 2020- Modified for GEFSv12.0"
# March-2020 Roberto.Padilla@noaa.gov
#####################################################################
source "${USHglobal}/wave_domain_grid.sh"
source "${USHglobal}/atparse.bash"
NAGRIB="nagrib2"
fhr3=$(printf "%03d" "${FORECAST_HOUR}")
cpreq "${HOMEglobal}/gempak/fix/g2varswmo2.tbl" "${DATA}/"
grids=${GEMPAK_GRIDS:-${waveinterpGRD:-'aoc_9km gnh_10m gsh_15m'}}
# Create a template for the GEMPAK control file
rm -f "${DATA}/gempak.parm.tmpl"
cat << EOF > "${DATA}/gempak.parm.tmpl"
GBFILE = @[GBFILE]
INDXFL =
GDOUTF = @[GEMGRD]
PROJ =
GRDAREA =
KXKY =
MAXGRD = 4999
CPYFIL = gds
GAREA = dset
OUTPUT = T
GBTBLS = g2varswmo2.tbl
G2TBLS =
GBDIAG =
PDSEXT = no
l
r
EOF
# Loop over the grids
for grid in ${grids}; do
case ${grid} in
aoc_9km)
grdIDout='gfswavearc'
;;
at_10m)
grdIDout='gfswaveat10m'
;;
ep_10m)
grdIDout='gfswaveep10m'
;;
wc_10m)
grdIDout='gfswavewc10m'
;;
glo_30m)
grdIDout='gfswavegl30m'
;;
gnh_10m)
grdIDout='gfswavenh'
;;
gsh_15m)
grdIDout='gfswavesh'
;;
glo_200)
grdIDout='gfswaves200k'
;;
*)
echo "FATAL ERROR: Unspecified grid '${grid}'"
exit 9
;;
esac
process_grdID "${grid}"
com_varname="COMIN_WAVE_GRID_${GRDREGION}_${GRDRES}"
com_dir=${!com_varname}
GRIBIN="${RUN}.${cycle}.${GRDREGION}.${GRDRES}.f${fhr3}.grib2"
cpreq "${com_dir}/${GRIBIN}" "./${GRIBIN}"
nagrib_file="${GRIBIN}"
if [[ "${GRDREGION}.${GRDRES}" = "global.0p25" ]]; then
nagrib_file="${RUN}.${cycle}.global.${gridIDout}.${fhr3}.grib2"
${WGRIB2} -lola 0:720:0.5 -90:361:0.5 "${nagrib_file}" grib "${GRIBIN}"
export err=$?
if [[ ${err} -ne 0 ]]; then
export pgm="${WGRIB2}"
err_exit "wgrib2 failed to interpolate"
fi
fi
GEMGRD="${grdIDout}_${PDY}${cyc}f${fhr3}"
GBFILE="grib_${grid}"
cpreq "${nagrib_file}" "${GBFILE}"
rm -f "gempak.parm.${grid}"
atparse < "${DATA}/gempak.parm.tmpl" >> "${DATA}/gempak.parm.${grid}"
cat "${DATA}/gempak.parm.${grid}"
startmsg
export pgm="${NAGRIB}"
${pgm} < "${DATA}/gempak.parm.${grid}" && true
export err=$?
if [[ ${err} -ne 0 ]]; then
err_exit "${pgm} failed during the generation of ${GEMGRD}"
fi
#####################################################
# GEMPAK DOES NOT ALWAYS HAVE A NON ZERO RETURN CODE
# WHEN IT CAN NOT PRODUCE THE DESIRED GRID. CHECK
# FOR THIS CASE HERE.
#####################################################
if [[ -f "${GEMGRD}" ]]; then
ls -l "${GEMGRD}"
else
export err=1
export pgm="GEMPAK CHECK FILE"
err_exit "Gempak failed to generate the desired grid ${GEMGRD}"
fi
if [[ "${NAGRIB}" == "nagrib2" ]]; then gpend; fi
# Copy output to COMOUT
cpfs "${GEMGRD}" "${COMOUT_WAVE_GEMPAK}/${GEMGRD}"
if [[ "${SENDDBN}" == "YES" ]]; then
"${DBNROOT}/bin/dbn_alert" MODEL "${DBN_ALERT_TYPE}" "${job}" "${COMOUT_WAVE_GEMPAK}/${GEMGRD}"
fi
done