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 |