#!/usr/bin/env bash # set input/working/output folders in=/Users/daniela/Desktop/runs2014/case008/case008_data work=/Users/daniela/Desktop/runs2014/case008/sc8work out=/Users/daniela/Desktop/runs2014/case008/case008-mappe-ab-beam scen='008' uideq='267QBX' uidprf='265AZT' tt='10' # launching mirrors mirror=( "USM" "LSM" ) r0=( 699.871 705.392 ) z0=( 441.441 417.821 ) w0=( 2.9 2.1) d0=( 213.4 162.0) # steering range amin=20 amax=70 da=1 bmin=15 bmax=25 db=1 # check if working folder exists, otherwise create it if [[ ! -e $work ]]; then mkdir $work else if [[ ! -d $work ]]; then echo $work is not a folder. exit 1 fi fi # move to working folder cd $work if [[ $? != 0 ]]; then echo Cannot move to $work exit 1 fi # check if output folder exists, otherwise create it if [[ ! -e $out ]]; then mkdir $out else if [[ ! -d $out ]]; then echo $out is not a folder. exit 1 fi fi tplus=`echo "${tt}+10000" | bc` eqfile=$in/F4E_Equil_${tplus}_case${scen}_${uideq}.eqdsk prfile=$in/F4E_Equil_${tplus}_case${scen}_${uidprf}.prf echo $eqfile $prfile # look for time value in equil file baseq=`basename $eqfile .eqdsk` basep=`basename $prfile .prf` tstr=`echo $baseq | grep "[[:digit:]]\{5\}" -o` t=`echo "$tstr-10000" | bc` # copy input files in working folder cp $eqfile ${baseq}.eqdsk cp $prfile ${basep}.prf #loop on USM/LSM mirrors for i in 0 1; do # set output file names id="${mirror[i]}_Scen${scen}_t$t" f7file=$out/ECCD_vs_ba_${id}.txt f48file=$out/f48_${id}.txt rm -f $out/log_${id}.txt # add header in output file echo "# =============================" > $f7file echo "# `date`" >> $f7file echo "# ${mirror[i]}: R0=${r0[i]} z0=${z0[i]}" >> $f7file echo "# Case ${scen} time=$t" >> $f7file echo "# =============================" >> $f7file cp $f7file $f48file appendheader=0 #loop on beta for (( beta=$bmin; beta<=$bmax ; beta=beta+db )); do #loop on alpha for (( alpha=$amin; alpha<=$amax ; alpha=alpha+da )); do # replace dummy values in template for gray.data sed "s/-alfa-/$alpha/g; \ s/-beta-/$beta/g; \ s/-x0-/${r0[i]}/g; \ s/-z0-/${z0[i]}/g; \ s/-w0-/${w0[i]}/g; \ s/-d0-/${d0[i]}/g; \ s/-equil-/$baseq/g; \ s/-prf-/$basep/g" $in/gray0_beam.data > gray.data # run gray gray >> $out/log_${id}.txt if (( $appendheader==0 )); then # append parameters to header if first run of the loop cat headers.txt >> $f7file cat headers.txt >> $f48file echo "#beta alpha`head -n 1 fort.7 | sed 's/#//'`" >> $f7file echo "#beta alpha`head -n 1 fort.48 | sed 's/#//'`" >> $f48file echo "#beta alpha`head -n 1 fort.9 | sed 's/#//'`" > test9.txt appendheader=1 fi # add time and alpha values in first two columns awk 'NR>1 {print '$beta','$alpha',$0}' fort.7 >> $f7file awk 'NR>1 {print '$beta','$alpha',$0}' fort.48 >> $f48file awk 'NR>1 {if (NF>1) print '$beta','$alpha',$0; else print $0}' fort.9 >> test9.txt echo "" >> $f48file echo "" >> test9.txt done #end of alpha loop echo " " >> $f7file echo "" >> $f48file echo "" >> test9.txt done #end of beta loop done #end of mirrors loop # remove files from working folder rm ${baseq}.eqdsk ${basep}.prf fort.* #EOF