#!/bin/bash

## Just run code in recipes, use it carefully
## example: use cdo to make cache file. Since cdo is quicker than ncl.
#;DIAG_NORCPM; RUNTHESECODES: echo '    no codes run here.'

dir=/nird/projects/NS9039K/_BETZY/norcpm_ana_hindcast/archive/norcpm2a_tro10Atl5m_ng2l1dA
outfile=OUTFILE
var=sst

memdirs=$(ls -d ${dir}/*mem?? | sort)
i=0
for d in $memdirs; do
    i=$(($i+1))
    o1=${var}_$(printf "%2.2d" $i).nc
    test -f "$o1" && continue
    t0=$(date +%s)
    echo "making ${o1}..."
    ifiles=$(ls ${d}/ocn/hist/*.blom.hm.{1980..2020}-??.nc 2> /dev/null || true)
    if [ -z "$ifiles" ] ;then
        continue
    fi
    iifiles=''
    ## unpacking, can be parallelize but maybe later
    mkdir -p extract
    for ifile in $ifiles ; do
        ofn="extract/${var}_$(basename $ifile)"
        iifiles="$iifiles $ofn"
        test -f "$ofn" && continue
        ncpdq -O -U -v${var} $ifile -o $ofn
    done
    ## NorESM (BLOM/MICOM)
    ncrcat -O -h -v ${var} ${iifiles} ${o1}_tmp1.nc
    ncatted  \
        -a coordinates,${var},d,, \
        -a valid_range,${var},d,, \
        ${o1}_tmp1.nc ${o1} && rm ${o1}_tmp1.nc
done
rm -rf extract/


