Mod:Hunt Research Group/statis2xmgr
Appearance
#!/bin/sh
if test $1
then
if test -e ./STATIS
then
tmpfile=stat2dl
columns=$(echo $*)
/usr/bin/awk -v columns=$columns 'BEGIN{\
split(columns, col, ",");\
getline;\
getline\
}\
{\
###########################################################################\
# Write the number of the column you want ($1 -> steps, $2 -> time (ps) )\
t=$2;\
###########################################################################\
nelem=$3;\
nelem_r=int(nelem/5+0.999);\
n=0;\
for (i=1;i<=nelem_r;i++) {\
getline;\
if($0 ~ /[A-DF-Za-df-z]/) { print "Warning: There is something wrong in the file STATIS" ; print$0}\
for(j=1;j<=NF;j++) {\
n=n+1;\
data[n]=$j;\
}\
}\
printf(" "t);\
for (i in col) {\
printf("\t"data[col[i]])\
}\
printf("\n");\
}' ./STATIS > $tmpfile
xmgrace -nxy $tmpfile
cp $tmpfile ./
# rm -f $tmpfile
exit
else
echo "ERROR: STATIS file does not exits"
exit
fi
else
echo "Usage: statis2xmgr [column_list]"
echo "This program extracts the specified column numbers from the"
echo "dl_poly file STATIS and plots them against time in xmgr."
echo "The column_list must be a list of integers separated by a comma."
echo
echo "Column correspondence:"
echo " 1) eng_tot 2) temp 3) eng_cfg 4) eng_vdw 5) eng_coulomb "
echo " 6) eng_bond 7) eng_angl 8) eng_dih 9) eng_teth 10) enthalpy "
echo "11) temp_rot 12) virial 13) vir_vdw 14) vir_cou 15) vir_bnd"
echo "16) vir_ang 17) vir_con 18) vir_tet 19) volume 20) temp_shl"
echo "21) eng_shl 22) vir_shl 23) alpha 24) beta 25) gamma "
echo "26) vir_pmf 27) press"
echo "next ntpatm entries: mean sq. displ. of each atom type"
echo "next ntpmls entries: mean sq. displ. of each molecule type (dcubero)"
echo "next 9 entries: all the components of stress tensor"
echo "next 9 entries: (only with NPT sim.) components of the cell vectors"
exit
fi