xref: /phasta/AcuStat/create_AcuStatInput.sh (revision 595995161822a203c8467e0e4a253d7bd7d6df32)
1*59599516SKenneth E. Jansen#!/bin/bash
2*59599516SKenneth E. Jansen
3*59599516SKenneth E. Jansennargs=6
4*59599516SKenneth E. Jansen
5*59599516SKenneth E. Jansenfunction die() {
6*59599516SKenneth E. Jansenecho -e "${1}"
7*59599516SKenneth E. Jansenexit 1
8*59599516SKenneth E. Jansen}
9*59599516SKenneth E. Jansen
10*59599516SKenneth E. Jansen# check that user entered proper number of args
11*59599516SKenneth E. Jansenif [[ "${#}" -ne "$nargs" ]]
12*59599516SKenneth E. Jansenthen
13*59599516SKenneth E. Jansendie "\n Check usage: \n  $0\n <Number of cores (for procs_case)>\n <Starting time step for the average> \n Accumulate error field? <0/1>\n Accumulate phase average fields? <0/n_avg_fields> \n Copy vorticity field from the last time step? <0/1>\n Copy dwal field from the last time step? <0/1>"
14*59599516SKenneth E. Jansenfi
15*59599516SKenneth E. Jansen
16*59599516SKenneth E. Jansencores=$1
17*59599516SKenneth E. Jansenstart_ts=$2
18*59599516SKenneth E. Jansenaccu_error=$3
19*59599516SKenneth E. Jansenaccu_phavg=$4
20*59599516SKenneth E. Jansencopy_vort=$5
21*59599516SKenneth E. Jansencopy_dwal=$6
22*59599516SKenneth E. Jansen
23*59599516SKenneth E. Jansenoutputfile='AcuStat_input.dat'
24*59599516SKenneth E. Jansen
25*59599516SKenneth E. Jansen
26*59599516SKenneth E. Jansenls -lrt $cores-procs_case/restart-dat.*.1 | grep -v '^lr'> tmp
27*59599516SKenneth E. Jansencat tmp  | awk -F dat '{print $2}' | sed 's/^\.//g' | sed 's/\.1//g' | sort -n > tmp2
28*59599516SKenneth E. Jansenrm tmp
29*59599516SKenneth E. Jansen
30*59599516SKenneth E. Jansen
31*59599516SKenneth E. Jansenif [ -f tmp3 ] ; then
32*59599516SKenneth E. Jansen	rm tmp3
33*59599516SKenneth E. Jansenfi
34*59599516SKenneth E. Jansen
35*59599516SKenneth E. Janseniline=0
36*59599516SKenneth E. Jansenwhile  read ts; do
37*59599516SKenneth E. Jansen	iline=$((iline+1))
38*59599516SKenneth E. Jansen	if [ "$iline" -gt "1" ] ; then
39*59599516SKenneth E. Jansen		diffts=$((ts-tsold))
40*59599516SKenneth E. Jansen		#echo $iline $ts $tsold $diffts
41*59599516SKenneth E. Jansen                if [ "$ts" -ge "$start_ts" ] ; then
42*59599516SKenneth E. Jansen			echo $ts $diffts >> tmp3
43*59599516SKenneth E. Jansen		fi
44*59599516SKenneth E. Jansen        fi
45*59599516SKenneth E. Jansen        tsold=$ts
46*59599516SKenneth E. Jansendone < tmp2
47*59599516SKenneth E. Jansenrm tmp2
48*59599516SKenneth E. Jansen
49*59599516SKenneth E. Jansennlines=`wc -l tmp3 | awk '{print $1}'`
50*59599516SKenneth E. Jansen
51*59599516SKenneth E. Jansen# Print first the info for the AcuStat executable
52*59599516SKenneth E. Jansennotice='# Number of restart files to read'
53*59599516SKenneth E. Jansenecho "$nlines $notice" > $outputfile
54*59599516SKenneth E. Jansennotice='# Accumulate error field? (0/1)'
55*59599516SKenneth E. Jansenecho "$accu_error $notice" >> $outputfile
56*59599516SKenneth E. Jansennotice='# Accumulate phase_average field? (0/n phase average fields)'
57*59599516SKenneth E. Jansenecho "$accu_phavg $notice" >> $outputfile
58*59599516SKenneth E. Jansennotice='# copy vorticity field? (0/1)'
59*59599516SKenneth E. Jansenecho "$copy_vort $notice" >> $outputfile
60*59599516SKenneth E. Jansennotice='# copy dwal? (0/1)'
61*59599516SKenneth E. Jansenecho "$copy_dwal $notice" >> $outputfile
62*59599516SKenneth E. Jansencat tmp3 >> $outputfile
63*59599516SKenneth E. Jansenrm tmp3
64*59599516SKenneth E. Jansen
65*59599516SKenneth E. Jansen# Print now the usage of the script
66*59599516SKenneth E. Jansenecho ' ' >> $outputfile
67*59599516SKenneth E. Jansenecho '### What follows is a short manual and is not read by AcuStat ###' >> $outputfile
68*59599516SKenneth E. Jansenecho "This Script is primary used to accumulate the statistics from the ybar field and write the solution from the last time step." >> $outputfile
69*59599516SKenneth E. Jansenecho "This script can also handle additional fiels. In summary, it writes the following fields: " >> $outputfile
70*59599516SKenneth E. Jansenecho "        1) solution of the last time step;" >> $outputfile
71*59599516SKenneth E. Jansenecho "        2) accumulated ybar field;" >> $outputfile
72*59599516SKenneth E. Jansenecho "        3) If requested (optional), accumulated error field;" >> $outputfile
73*59599516SKenneth E. Jansenecho "        4) If requested (optional), accumulated phase average fields;" >> $outputfile
74*59599516SKenneth E. Jansenecho "        5) If requested (optional), vorticity field (from the last time step);" >> $outputfile
75*59599516SKenneth E. Jansenecho "        6) If requested (optional), dwal field (from the last time step)." >> $outputfile
76*59599516SKenneth E. Jansenecho "The next lines contain the time steps series for restart files along with the associated number of time steps inside the ybar, error and yphavg fields." >> $outputfile
77*59599516SKenneth E. Jansen
78*59599516SKenneth E. Jansenmv $outputfile $cores-procs_case
79*59599516SKenneth E. Jansen
80*59599516SKenneth E. Jansen
81