#!/bin/sh
#
# use 4 cpus to compress to best of complex
#
# #NCO is for U/V in same grib message

set -x 
f=$1

#NCO p0=/tmp/pipe0.$$

p1=/tmp/pipe1.$$
p2=/tmp/pipe2.$$
p3=/tmp/pipe3.$$
p7=/tmp/pipe7.$$

p1b=/tmp/pipe1b.$$
p2b=/tmp/pipe2b.$$
p3b=/tmp/pipe3b.$$
p7b=/tmp/pipe7b.$$

p1c=/tmp/pipe1c.$$
p2c=/tmp/pipe2c.$$
p3c=/tmp/pipe3c.$$
p7c=/tmp/pipe7c.$$

p1d=/tmp/pipe1d.$$
p2d=/tmp/pipe2d.$$
p3d=/tmp/pipe3d.$$
p7d=/tmp/pipe7d.$$

#NCO mkfifo $p0

mkfifo $p1 $p2 $p3 $p7
mkfifo $p1b $p2b $p3b $p7b
mkfifo $p1c $p2c $p3c $p7c
mkfifo $p1d $p2d $p3d $p7d


wgrib2 $f -g2clib 0 -inv /dev/null -for_n "1::4" > /dev/null \
  -set_grib_type c1 -grib_out $p1 \
  -set_grib_type c2 -grib_out $p2 \
  -set_grib_type c3 -grib_out $p3 &

wgrib2 $f -g2clib 0 -inv /dev/null -for_n "2::4" > /dev/null \
  -set_grib_type c1 -grib_out $p1b \
  -set_grib_type c2 -grib_out $p2b \
  -set_grib_type c3 -grib_out $p3b &

wgrib2 $f -g2clib 0 -inv /dev/null -for_n "3::4" > /dev/null \
  -set_grib_type c1 -grib_out $p1c \
  -set_grib_type c2 -grib_out $p2c \
  -set_grib_type c3 -grib_out $p3c &

wgrib2 $f -g2clib 0 -inv /dev/null -for_n "4::4" > /dev/null \
  -set_grib_type c1 -grib_out $p1d \
  -set_grib_type c2 -grib_out $p2d \
  -set_grib_type c3 -grib_out $p3d &


smallest_grib2 $p7 $p1 $p2 $p3  >/dev/null  &
smallest_grib2 $p7b $p1b $p2b $p3b > /dev/null &
smallest_grib2 $p7c $p1c $p2c $p3c >/dev/null &
smallest_grib2 $p7d $p1d $p2d $p3d >/dev/null &

# if not NCO
gmerge $f.c0 $p7 $p7b $p7c $p7d

#NCO gmerge $p0 $p7 $p7b $p7c $p7d &
#NCO wgrib2 $p0 -ncep_uv $f.c0 >/dev/null
#NCO rm $p0

rm $p1 $p2 $p3 $p7
rm $p1b $p2b $p3b $p7b
rm $p1c $p2c $p3c $p7c
rm $p1d $p2d $p3d $p7d
