# cycle.xnd... JFB 11-6-91 # batch pour forcer l'affinement # avec possibilite de recyclage force set essai = 0 set total = 0 set recycle = 1 set maxi = 1 if ( .$2 != . ) set maxi = $2 # echo 'Usage : cycle.xnd nom (recycle_max)' echo ' '$1.com si il existe sera execute apres chaque cycle if ( .$1 == . ) exit (100) echo fichiers = $1.k, $1... recyclage = $maxi echo # while ( $recycle <= $maxi ) @ essai +=1 @ total +=1 echo xnd $1.k , essai $essai, recycle $recycle (maxi $maxi), total $total xnd $1.k set retcod = $status if ( $retcod >= 6 ) then echo ' #'$essai : STOP sur erreur exit ($retcod) endif if ( $retcod == 0 || $retcod == 1 || $retcod == 3 || $retcod == 4) then # Rwp est meilleur : actualisation des fichiers if (-e $1.lst) then if (-e $1_x.lst) rm $1_x.lst cp $1.lst $1_x.lst echo ' ' fichier $1_x.lst actualise endif if (-e $1.plg) then if (-e $1_x.plg) rm $1_x.plg cp $1.plg $1_x.plg echo ' ' fichier $1_x.plg actualise endif if (-e $1.hkl) then if (-e $1_x.hkl) rm $1_x.hkl cp $1.hkl $1_x.hkl echo ' ' fichier $1_x.hkl actualise endif if (-e $1.k) then if (-e $1_x.k) rm $1_x.k cp $1.k $1_x.k echo ' ' fichier $1_x.k actualise endif cp $1.new $1.k if (-e $1.com) then echo lancement procedure $1.com $1.com endif endif # Les cas ou il faut forcer le recyclage if ( $retcod == 0 || $retcod == 2 || $retcod == 5) then if ( $retcod == 0 ) echo ' #'$essai : STOP fin de deplacement if ( $retcod == 2 || $retcod == 5) echo ' #'$essai : STOP convergence echo creation de $1.k.$recycle et de $1.lst.$recycle cp $1.k $1.k.$recycle cp $1.lst $1.lst.$recycle if ( $recycle < $maxi ) then cp $1.new $1.k echo copy de $1.new en $1.k if (-e $1.com) then echo lancement procedure $1.com $1.com endif endif @ recycle += 1 echo ' ' echo cycle.xnd recycle forcee set essai = 0 endif end # on sort du while recycle echo cycle.xnd STOP : $maxi recyclage exit ($retcod)