mirror of https://github.com/ecmwf/eccodes.git
72 lines
2.2 KiB
Bash
Executable File
72 lines
2.2 KiB
Bash
Executable File
#!/bin/sh
|
|
# Copyright 2005-2015 ECMWF.
|
|
#
|
|
# This software is licensed under the terms of the Apache Licence Version 2.0
|
|
# which can be obtained at http://www.apache.org/licenses/LICENSE-2.0.
|
|
#
|
|
# In applying this licence, ECMWF does not waive the privileges and immunities granted to it by
|
|
# virtue of its status as an intergovernmental organisation nor does it submit to any jurisdiction.
|
|
|
|
. ./include.sh
|
|
#set -x
|
|
|
|
# First decide if we have NetCDF enabled from configure.
|
|
# Temporarily turn off the '-e' flag for set so we dont exit on error
|
|
set +e
|
|
tmp_out=tmp_msg.out
|
|
skip_test=0
|
|
rm -f $tmp_out | true
|
|
# Invoke the grib_to_netcdf command with no options. If NetCDF was enabled
|
|
# we get a usage message otherwise we get a specific message. Note: In both cases
|
|
# the command fails.
|
|
${tools_dir}grib_to_netcdf > $tmp_out
|
|
grep 'GRIB API was not compiled with NETCDF enabled' $tmp_out > /dev/null
|
|
if [ $? -eq 0 ]; then
|
|
# Message was found
|
|
skip_test=1
|
|
fi
|
|
# Restore the set -e so any error causes us to exit
|
|
set -e
|
|
rm -f $tmp_out | true
|
|
if [ $skip_test -eq 1 ]; then
|
|
echo "NetCDF was not enabled. Skipping this test."
|
|
exit 0
|
|
fi
|
|
echo "NetCDF was enabled."
|
|
|
|
grib_files="\
|
|
regular_latlon_surface.grib2 \
|
|
regular_latlon_surface.grib1 \
|
|
regular_gaussian_model_level.grib1 \
|
|
regular_gaussian_pressure_level.grib2 \
|
|
regular_gaussian_surface.grib1 \
|
|
missing.grib2"
|
|
|
|
ncf_types="NC_SHORT NC_INT NC_FLOAT NC_DOUBLE"
|
|
|
|
tmp_netcdf=tmp.ncf
|
|
|
|
# Go thru all the specified GRIB files and convert them to NetCDF
|
|
for dt in $ncf_types
|
|
do
|
|
for f in $grib_files
|
|
do
|
|
rm -f $tmp_netcdf | true
|
|
if [ -f "${data_dir}/$f" ]; then
|
|
${tools_dir}grib_to_netcdf -D $dt -o $tmp_netcdf ${data_dir}/$f >/dev/null
|
|
${tools_dir}grib_to_netcdf -T -o $tmp_netcdf ${data_dir}/$f >/dev/null
|
|
fi
|
|
done
|
|
done
|
|
|
|
# Try creating different kinds; netcdf3 classic and large
|
|
# TODO: enable tests for netcdf4 formats too
|
|
input=${data_dir}/regular_latlon_surface.grib2
|
|
${tools_dir}grib_to_netcdf -k 1 -o $tmp_netcdf $input >/dev/null
|
|
${tools_dir}grib_to_netcdf -k 2 -o $tmp_netcdf $input >/dev/null
|
|
#${tools_dir}grib_to_netcdf -k 3 -o $tmp_netcdf $input >/dev/null
|
|
#${tools_dir}grib_to_netcdf -k 4 -o $tmp_netcdf $input >/dev/null
|
|
|
|
rm -f $tmp_netcdf | true
|
|
|