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
|
#!/bin/ksh
set -eu
set -A files \
reduced_latlon_surface.grib1 \
reduced_gaussian_pressure_level.grib1 \
regular_gaussian_pressure_level.grib1 \
reduced_gaussian_model_level.grib1 \
regular_gaussian_model_level.grib1 \
reduced_gaussian_surface.grib1 \
regular_gaussian_surface.grib1 \
regular_latlon_surface.grib1 \
spherical_pressure_level.grib1 \
spherical_model_level.grib1
set -A rets \
"ret,stream=wave,levtype=sfc,param=swh," \
"ret,stream=oper,level=1000,gaussian=reduced,grid=32,param=t," \
"ret,level=1000,gaussian=regular,grid=32,param=t," \
"ret,levtype=ml,level=1,gaussian=reduced,grid=32,param=t," \
"ret,levtype=ml,level=1,gaussian=regular,grid=32,param=t," \
"ret,levtype=sfc,param=2t,gaussian=reduced,grid=32," \
"ret,levtype=sfc,param=2t,gaussian=regular,grid=32," \
"ret,levtype=sfc,param=2t,grid=2/2,area=60/0/0/30," \
"ret,class=od,type=an,stream=da,expver=0001,levtype=pl,levelist=1000,param=130,time=1200,step=00,domain=g,resol=63,param=t," \
"ret,class=od,type=an,stream=da,expver=0001,levtype=ml,levelist=1,param=130,time=1200,step=00,domain=g,resol=63,param=t,"
set -A precision 2 2 2 2 2 2 2 -1 -1 -1
[[ ${#files[@]} -eq ${#rets[@]} ]] && [[ ${#rets[@]} -eq ${#precision[@]} ]]
for (( i=0; i< ${#files[@]}; i++ ))
do
mars << EOF
${rets[i]}
tar="full_${files[i]}"
EOF
if [[ ${precision[i]} -gt 0 ]]
then
grib_set -r -s bitsPerValue=0,decimalScaleFactor=${precision[i]} full_${files[i]} ${files[i]}
rm -f full_${files[i]}
else
mv full_${files[i]} ${files[i]}
fi
grib_dump ${files[i]} > /dev/null
grib2=`basename ${files[i]} .grib1`.grib2
grib_set -s editionNumber=2 ${files[i]} $grib2
grib_dump ${grib2} > /dev/null
done
|