Statistiques
| Branche: | Tag: | Révision :

dockonsurf / modules / launch_script+diss.sh @ f43a1b4c

Historique | Voir | Annoter | Télécharger (1,54 ko)

1 86112fec Marti Aliod Carles
#!/bin/bash
2 86112fec Marti Aliod Carles
3 86112fec Marti Aliod Carles
nom_de_la_molecule=$1
4 86112fec Marti Aliod Carles
5 86112fec Marti Aliod Carles
mol_dir=${MolOnSurf_results_path}/${nom_de_la_molecule}
6 86112fec Marti Aliod Carles
7 86112fec Marti Aliod Carles
list_errors=()
8 86112fec Marti Aliod Carles
9 86112fec Marti Aliod Carles
if [ -e ${mol_dir}/errors ]
10 86112fec Marti Aliod Carles
then
11 86112fec Marti Aliod Carles
	nb_lines="$(cat ${mol_dir}/errors | wc -l)"
12 86112fec Marti Aliod Carles
	for ((line=1; line<=$nb_lines; line++ )) ; do
13 86112fec Marti Aliod Carles
		err_dir="$(awk -v var="$line" 'NR == var' ${mol_dir}/errors | awk '{print $2}')"
14 86112fec Marti Aliod Carles
		list_errors+=(${err_dir})
15 86112fec Marti Aliod Carles
	done
16 86112fec Marti Aliod Carles
fi
17 86112fec Marti Aliod Carles
18 86112fec Marti Aliod Carles
lg_liste=${#list_errors[@]}
19 86112fec Marti Aliod Carles
20 86112fec Marti Aliod Carles
sed "s/XXXX/surf_${nom_de_la_molecule}/g" ${CP2K_sub} > ${mol_dir}/${nom_de_la_molecule}_1/cp2k_gamma.j
21 86112fec Marti Aliod Carles
sed "s/molecule/${nom_de_la_molecule}/g" ${CP2K_input_MolOnSurf} > ${mol_dir}/${nom_de_la_molecule}_1/surf_${nom_de_la_molecule}.inp
22 86112fec Marti Aliod Carles
23 86112fec Marti Aliod Carles
for dir in ${mol_dir}/${nom_de_la_molecule}* ; do
24 86112fec Marti Aliod Carles
	i_error=0
25 86112fec Marti Aliod Carles
	if [ -e ${mol_dir}/errors ]
26 86112fec Marti Aliod Carles
	then 
27 86112fec Marti Aliod Carles
		for ((j=0; j<$lg_liste; j++)) ; do
28 86112fec Marti Aliod Carles
			if [[ "$dir" == *"${list_errors[$j]}" ]]
29 86112fec Marti Aliod Carles
			then 
30 86112fec Marti Aliod Carles
				i_error=1 
31 86112fec Marti Aliod Carles
				echo "error"
32 86112fec Marti Aliod Carles
			fi
33 86112fec Marti Aliod Carles
		done
34 86112fec Marti Aliod Carles
	fi
35 86112fec Marti Aliod Carles
	if [ "$i_error" -eq "0" ]
36 86112fec Marti Aliod Carles
	then 
37 86112fec Marti Aliod Carles
		cd $dir
38 86112fec Marti Aliod Carles
		if [ "${dir}" != "${mol_dir}/${nom_de_la_molecule}_1"  ]
39 86112fec Marti Aliod Carles
		then 
40 86112fec Marti Aliod Carles
			ln ${mol_dir}/${nom_de_la_molecule}_1/cp2k_gamma.j .
41 86112fec Marti Aliod Carles
			ln ${mol_dir}/${nom_de_la_molecule}_1/surf_${nom_de_la_molecule}.inp .
42 86112fec Marti Aliod Carles
		fi
43 f43a1b4c Marti Aliod Carles
		new_job_id=$(qsub cp2k_gamma.j | awk '{print $3}')
44 f43a1b4c Marti Aliod Carles
    echo "Submitted job $new_job_id"
45 f43a1b4c Marti Aliod Carles
    jobs_owned+=($new_job_id)
46 86112fec Marti Aliod Carles
	fi
47 86112fec Marti Aliod Carles
done
48 86112fec Marti Aliod Carles
49 f43a1b4c Marti Aliod Carles
### Attente jusqu'à ce que tous les calculs aient fini
50 f43a1b4c Marti Aliod Carles
go_on=true
51 f43a1b4c Marti Aliod Carles
while [ $go_on == true ]; do
52 f43a1b4c Marti Aliod Carles
  all_jobs=`qstat | tail -n+3 | awk '{print $1}'`
53 f43a1b4c Marti Aliod Carles
  for j1 in ${jobs_owned[@]} ; do
54 f43a1b4c Marti Aliod Carles
    for j2 in ${all_jobs[@]}; do
55 f43a1b4c Marti Aliod Carles
      if [ $j1 == $j2 ]; then
56 f43a1b4c Marti Aliod Carles
        sleep 30
57 f43a1b4c Marti Aliod Carles
        continue 3
58 f43a1b4c Marti Aliod Carles
      fi
59 f43a1b4c Marti Aliod Carles
    done
60 f43a1b4c Marti Aliod Carles
  done
61 f43a1b4c Marti Aliod Carles
  echo "loop finished"
62 f43a1b4c Marti Aliod Carles
  go_on=false
63 f43a1b4c Marti Aliod Carles
done