#!/bin/csh -f ##setenv GFORTRAN_UNBUFFERED_ALL y ## *** プロジェクト名 *** set PROJECT="hcpCo" ## *** 実行ファイル *** set EXEC="~/kkr/cpa2002v009c/specx" ## *** 標準入力から値を読み取る *** ## 格子体積 set OMEGA=$1 ## c/a set COA=$2 ## RMT set RMTOMEGA=$3 ## ファイル名 set INFILE="in/${PROJECT}_go_${OMEGA}_${COA}.in" set OUTFILE="out/${PROJECT}_go_${OMEGA}_${COA}.out" set POTFILE="data/${PROJECT}_${OMEGA}_${COA}" set POTBACK="data/${PROJECT}_${OMEGA}" ## 格子定数 a の計算 set ABOHR=`echo "scale=7; e((1/3)*l(2*${OMEGA}/(sqrt(3)*${COA})))" | bc -l | sed -e 's/^\./0./g'` ## マフィンティン半径の計算 set RMTA=`echo "scale=7; ${RMTOMEGA}*e((1/3)*l(${OMEGA}))/${ABOHR}" | bc -l | sed -e 's/^\./0./g'` ## テンプレートから入力ファイルを作成 sed 's/'OMEGA'/'${OMEGA}'/g' template/${PROJECT}_go_Template.in | sed 's/'ABOHR'/'${ABOHR}'/g' | sed 's/'COA'/'${COA}'/g' | sed 's/'RMTA'/'${RMTA}'/g' > ${INFILE} ## ポテンシャルファイルのコピー if ( ! -e ${POTFILE} ) then if ( -e ${POTBACK} ) then cp ${POTBACK} ${POTFILE} endif endif ## 計算回数の初期化 set num=0 ## 最大計算回数 set nummax=20 ## 第一原理計算 ${EXEC} < ${INFILE} > ${OUTFILE} while ( ( ! { grep -q "err= -6." ${OUTFILE} } ) && ( $num < $nummax ) ) ${EXEC} < ${INFILE} > ${OUTFILE} @ num++ end ## ポテンシャルのバックアップ cp ${POTFILE} ${POTBACK} set ENE=`grep "total energy" ${OUTFILE} | sed -e s/total//g -e s/energy=//g` echo ${ENE}