#!/bin/csh -f setenv GFORTRAN_UNBUFFERED_ALL y ## *** プロジェクト名 *** set PROJECT="bccFeX" ## *** 実行ファイル *** #set EXEC="~/kkr/20170222/cpa2002v009c/specx" set EXEC="~/kkr/cpa2002v009c/specx" ## *** 不純物 *** set ATOM_LIST=( K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr ) set NIMP_LIST=( 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 ) #set ATOM_LIST=( K ) #set NIMP_LIST=( 19 ) ## *** 計算結果の出力先 *** if ( -e analysis/${PROJECT}.txt ) then cat analysis/${PROJECT}.txt >> analysis/${PROJECT}.txt.back endif echo "ATOM NUM MOMFE MONIMP" > analysis/${PROJECT}.txt ## *** 繰り返し計算 *** set iIMP=1 while ( ${iIMP} <= ${#NIMP_LIST} ) ## 変数のセット set ATOM=${ATOM_LIST[${iIMP}]} set NIMP=${NIMP_LIST[${iIMP}]} ## ファイル名 set INFILE="in/${PROJECT}_${ATOM}.in" set OUTFILE="out/${PROJECT}_${ATOM}.out" set POTFILE="data/${PROJECT}_${ATOM}" ## テンプレートから入力ファイルを作成 sed 's/'ATOM'/'${ATOM}'/g' template/${PROJECT}_Template.in | sed 's/'NIMP'/'${NIMP}'/g' > ${INFILE} ## *** 第一原理計算 *** ## 計算回数の初期化 set num=0 ## 最大計算回数 set nummax=20 ## 第一原理計算 ${EXEC} < ${INFILE} > ${OUTFILE} while ( ( ! { grep -q "err= -6." ${OUTFILE} } ) && ( $num < $nummax ) ) ${EXEC} < ${INFILE} > ${OUTFILE} @ num++ end ## 磁気モーメントの読み出し set MMOMFE=`grep "spin moment" ${OUTFILE} | sed -n 1p | awk '{print $3}'` set MMOMIMP=`grep "spin moment" ${OUTFILE} | sed -n 2p | awk '{print $3}'` ## 結果の出力 echo ${ATOM} ${NIMP} ${MMOMFE} ${MMOMIMP} >> analysis/${PROJECT}.txt ## カウントの増加 @ iIMP++ end