diff options
Diffstat (limited to 'mass_profile/coolfunc_calc.sh')
-rwxr-xr-x | mass_profile/coolfunc_calc.sh | 102 |
1 files changed, 43 insertions, 59 deletions
diff --git a/mass_profile/coolfunc_calc.sh b/mass_profile/coolfunc_calc.sh index 9a01648..c4935b7 100755 --- a/mass_profile/coolfunc_calc.sh +++ b/mass_profile/coolfunc_calc.sh @@ -1,32 +1,39 @@ #!/bin/sh -## -## Calculate the 'cooling function' profile with respect to the -## given 'temperature profile' and the average abundance, redshift, -## and column density nH, using the XSPEC model 'wabs*apec'. -## -## Weitian LI -## Created: 2012-08-17 -## Updated: 2016-06-08 -## +# +# unalias -a +# +########################################################### +## Task: ## +## Calc `cooling function' data according to ## +## given `temperature profile' ## +## ## +## NOTE: ## +## given `tprofile': <radius> <temperature> ## +## calc `cooling function' by invoking `XSPEC' ## +## using model `wabs*apec' ## +## ## +## LIweitiaNux <liweitianux@gmail.com> ## +## August 17, 2012 ## +########################################################### ## cmdline arguments {{{ -if [ $# -eq 5 ]; then - : -elif [ $# -eq 6 ]; then - COOLFUNC_BOLO="$6" - [ -e "${COOLFUNC_BOLO}" ] && rm -f ${COOLFUNC_BOLO} -else +if [ $# -ne 5 ]; then printf "usage:\n" - printf " `basename $0` <tprofile> <avg_abund> <nH> <redshift> <coolfunc_outfile> [coolfunc_bolo]\n" + printf " `basename $0` <tprofile> <avg_abund> <nH> <redshift> <coolfunc_outfile>\n" exit 1 fi +base_path=`dirname $0` TPROFILE=$1 ABUND_VAL=$2 N_H=$3 REDSHIFT=$4 -NORM=`cosmo_calc ${REDSHIFT} | grep 'norm.*cooling_function' | awk -F':' '{ print $2 }'` +NORM=`$base_path/calc_distance $REDSHIFT|grep norm|awk '{print $2}'` + +echo $NORM + + COOLFUNC_DAT=$5 -COOLFUNC_DAT_RATIO="flux_cnt_ratio.txt" +COOLFUNC_DAT_RATIO=flux_cnt_ratio.txt if [ ! -r "${TPROFILE}" ]; then printf "ERROR: given tprofile '${TPROFILE}' NOT accessiable\n" @@ -44,14 +51,15 @@ XSPEC_CF_XCM="_coolfunc_calc.xcm" ## generate xspec script {{{ cat >> ${XSPEC_CF_XCM} << _EOF_ ## XSPEC Tcl script -## Calculate the cooling function profile w.r.t the temperature profile +## calc cooling function data ## -## Generated by: `basename $0` -## Date: `date` +## generated by: `basename $0` +## date: `date` set xs_return_results 1 set xs_echo_script 0 # set tcl_precision 12 +dummyrsp .01 100 4096 ## set basic data {{{ set nh ${N_H} set redshift ${REDSHIFT} @@ -65,18 +73,19 @@ chatter 0 # debug }}} query yes abund grsa -dummyrsp 0.01 100.0 4096 linear +dummyrsp 0.3 11.0 1024 # load model 'wabs*apec' to calc cooling function model wabs*apec & \${nh} & 1.0 & \${abund_val} & \${redshift} & \${norm} & /* ## xspec }}} -## set input and output filename & open files +## set input and output filename set tpro_fn "${TPROFILE}" set cf_fn "${COOLFUNC_DAT}" set cff_fn "${COOLFUNC_DAT_RATIO}" if { [ file exists \${cf_fn} ] } { exec rm -fv \${cf_fn} } + if { [ file exists \${cff_fn} ] } { exec rm -fv \${cff_fn} } @@ -86,21 +95,6 @@ set tpro_fd [ open \${tpro_fn} r ] set cf_fd [ open \${cf_fn} w ] set cff_fd [ open \${cff_fn} w ] -_EOF_ - -if [ ! -z "${COOLFUNC_BOLO}" ]; then - cat >> ${XSPEC_CF_XCM} << _EOF_ -# coolfunc bolometric -set cfbolo_fn "${COOLFUNC_BOLO}" -if { [ file exists \${cfbolo_fn} ] } { - exec rm -fv \${cfbolo_fn} -} -set cfbolo_fd [ open \${cfbolo_fn} w ] - -_EOF_ -fi - -cat >> ${XSPEC_CF_XCM} << _EOF_ ## read data from tprofile line by line while { [ gets \${tpro_fd} tpro_line ] != -1 } { # gets one line @@ -118,37 +112,27 @@ while { [ gets \${tpro_fd} tpro_line ] != -1 } { tclout flux 1 scan \${xspec_tclout} "%f %f %f %f" cff_data holder holder holder puts \${cff_fd} "\${radius} [expr \${cff_data}/\${cf_data}]" -_EOF_ -if [ ! -z "${COOLFUNC_BOLO}" ]; then - cat >> ${XSPEC_CF_XCM} << _EOF_ - # coolfunc bolometric - set cfbolo_data \$cff_data - #puts "cfbolo_data: \${cfbolo_data}" - puts \${cfbolo_fd} "\${radius} \${cfbolo_data}" -_EOF_ -fi -cat >> ${XSPEC_CF_XCM} << _EOF_ } ## close opened files close \${tpro_fd} close \${cf_fd} -_EOF_ - -if [ ! -z "${COOLFUNC_BOLO}" ]; then - cat >> ${XSPEC_CF_XCM} << _EOF_ -# coolfunc bolometric -close \${cfbolo_fd} - -_EOF_ -fi -cat >> ${XSPEC_CF_XCM} << _EOF_ ## exit tclexit _EOF_ -## generate xcm }}} + +## extract xcm }}} ## invoke xspec to calc printf "invoking XSPEC to calculate cooling function data ...\n" +# xspec - ${XSPEC_CF_XCM} xspec - ${XSPEC_CF_XCM} > /dev/null + +## clean +# if [ -e "${XSPEC_CF_XCM}" ]; then +# rm -f ${XSPEC_CF_XCM} +# fi + +exit 0 + |