Skip to content
Snippets Groups Projects
eddy_graph_in.sh 1.79 KiB
#!/bin/bash

# Note: no need to sort number_eddies.csv, already sorted by construction.

if (($# != 2))
then
    echo "Usage: eddy_graph.sh N_PROC INPUT_SHP_TRIPLET"
    exit 1
fi

set -e
##set -x
rank=0

while ((rank < $1))
do
    rm -rf SHP_triplet_$rank
    mkdir SHP_triplet_$rank
    ((rank += 1))
done

${mpiexec:-mpiexec} -n $1 @CMAKE_BINARY_DIR@/eddy_graph $2

cat >number_eddies.csv <<EOF
 "date subscript" "number of visible extrema" "number of interpolated eddies" 
 k number_vis_extr n_interp
EOF

rm -f isolated_nodes.txt
rank=0

while ((rank < $1))
do
    cat number_eddies_$rank.csv >>number_eddies.csv
    cat edgelist_cyclo_$rank.csv >>edgelist_cyclo_no_header.csv
    cat edgelist_anti_$rank.csv >>edgelist_anti_no_header.csv
    cat isolated_nodes_$rank.txt >>isolated_nodes.txt
    rm number_eddies_$rank.csv edgelist_@(cyclo|anti)_$rank.csv \
       isolated_nodes_$rank.txt
    ((rank += 1))
done

# Sort for easier comparison between runs:
for orientation in cyclo anti
do
    cat >edgelist_$orientation.csv <<EOF
 "predecessor date subscript" "predecessor eddy subscript" "successor date subscript" "successor eddy subscript"
 k1 i1 k2 i2 weight
$(sort --key=1 --key=2 --numeric-sort edgelist_${orientation}_no_header.csv)
EOF
    rm edgelist_${orientation}_no_header.csv 
done

echo "Created files \"number_eddies.csv\", \"edgelist_cyclo.csv\", " \
     "\"edgelist_anti.csv\" and \"isolated_nodes.txt\"."
rm -rf SHP_triplet
mv SHP_triplet_0 SHP_triplet
rank=1

while ((rank < $1))
do
    for my_base in extremum outermost_contour max_speed_contour
    do
	shpcat SHP_triplet_$rank/$my_base SHP_triplet/$my_base
	dbfcat SHP_triplet_$rank/$my_base SHP_triplet/$my_base
    done

    rm -r SHP_triplet_$rank
    ((rank += 1))
done

cp $2/grid_nml.txt SHP_triplet
echo "Created directory \"SHP_triplet\"."