PageRenderTime 40ms CodeModel.GetById 14ms RepoModel.GetById 0ms app.codeStats 0ms

/GabeditSrc240/utils/QChem/submitQChem

#
Korn Shell | 109 lines | 99 code | 4 blank | 6 comment | 2 complexity | d8bc3f975d87d199384bfcf395347e66 MD5 | raw file
  1. #!/bin/ksh
  2. ###################################################################
  3. # #
  4. # Script ksh pour lancer un calcul Q-Chem en batch #
  5. # #
  6. ###################################################################
  7. nodename=$1 ; [ 0 = $# ] || shift
  8. filename=$1 ; [ 0 = $# ] || shift
  9. nodeslist="node0 node1 node2 node4 node5 node6 node7"
  10. jobtime=800:0:0
  11. if [ -z "$filename" ] || [ -z "$jobtime" ]
  12. then
  13. clear
  14. echo " "
  15. echo "==========================================="
  16. echo " submitQChem "
  17. echo " Pour toutes questions contacter : "
  18. echo " A.R. Allouche allouche@lasim.univ-lyon1.fr"
  19. echo "==========================================="
  20. echo "vous devez fournir :"
  21. echo " - le nom du noeud ($nodeslist)"
  22. echo " - le nom du fichier(y compris l'extension .in)"
  23. echo "-------------------------------------------"
  24. echo "Exemple:"
  25. echo " submitQChem node7 h2.in "
  26. echo " fichier de donnees : h2.in"
  27. echo "==========================================="
  28. echo " "
  29. exit 1
  30. fi
  31. ok="false"
  32. for item in $nodeslist ; do
  33. if [ $nodename = $item ]
  34. then
  35. ok="true"
  36. break
  37. fi
  38. done
  39. if [ $ok = "false" ]
  40. then
  41. echo "================================================================"
  42. echo "Sorry $ndoename is not a supported node"
  43. echo "Here is the list of supported nodes : $nodeslist"
  44. echo "================================================================"
  45. exit 1
  46. fi
  47. filecom=$filename
  48. filename=${filecom%.in}
  49. [ "$filename" = "$filecom" ] && filename=${filecom%.inp}
  50. fileout=$filename.out
  51. DEFAULTDIR=`pwd`
  52. TEMPDIR=/tmp
  53. nameUser=$LOGNAME
  54. if test ! -s "$filecom"
  55. then
  56. echo " "
  57. echo "============================================"
  58. echo "le fichier $filecom est introuvable(ou vide)"
  59. echo "============================================"
  60. echo " "
  61. exit 2
  62. fi
  63. endof=EOF
  64. cat > $filename.pbs <<EOF
  65. #!/bin/sh
  66. #PBS -l nodes=$nodename
  67. #PBS -j oe
  68. #PBS -N $filename
  69. #PBS -l walltime=$jobtime
  70. #PBS -o $filename.pbsout
  71. export QC=/home/theochem/rabillou/QChem;
  72. if [ -e \$QC/bin/qchem.setup.sh ] ; then
  73. . \$QC/bin/qchem.setup.sh
  74. fi
  75. export QCAUX=\$QC/aux;
  76. #export ONEEXE="-DONEEXE";
  77. #export QCLOCALSCR= $PBSTMPDIR;
  78. mkdir /tmp/$USER
  79. rm -fr /tmp/$USER/$filename
  80. mkdir /tmp/$USER/$filename
  81. export QCSCRATCH=/tmp/$USER/$filename
  82. cd $DEFAULTDIR
  83. \$QC/bin/qchem $filecom $fileout
  84. EOF
  85. qsub $filename.pbs
  86. echo " "
  87. echo "==================================================================="
  88. echo " "
  89. echo "Un fichier $filename.pbs a ete cree pour lancer le calcul"
  90. echo "Ne pas effacer ce fichier avant la fin du calcul"
  91. echo " "
  92. echo "-------------------------------------------------------------------"
  93. echo " "
  94. echo "pour avoir des informations sur vos job taper : qstat "
  95. echo " "
  96. echo "pour detruire un job taper : qdel num.master0.alin"
  97. echo " num.master0.alin est le Job Id fourni par qstat"
  98. echo " "
  99. echo "==================================================================="
  100. echo " "