3 |
# $Header$ |
# $Header$ |
4 |
# $Name$ |
# $Name$ |
5 |
|
|
|
run_mpi() |
|
|
{ |
|
|
# run_mpi output_file |
|
|
echo "execute: '$RUNMPI'" |
|
|
$RUNMPI |
|
|
if test $# = 1 |
|
|
then mv STDOUT.0000 $1 |
|
|
echo 'mv STDOUT.0000' $1 |
|
|
fi |
|
|
} |
|
|
|
|
6 |
rnp_loc() |
rnp_loc() |
7 |
{ |
{ |
8 |
# rnp_loc arg_1 arg_2 |
# rnp_loc arg_1 arg_2 |
37 |
action=1 |
action=1 |
38 |
cmdMV='mv -f' |
cmdMV='mv -f' |
39 |
tmpDir='temp_tst' |
tmpDir='temp_tst' |
40 |
|
wait2run=0 # if needs sometime for file system syncro on all nodes |
41 |
|
|
42 |
#- default executable, command-line , using MPI: |
#- default executable, command-line , using MPI: |
43 |
gcmEXE=./mitgcmuv |
gcmEXE=./mitgcmuv |
84 |
#-- set the run-command : |
#-- set the run-command : |
85 |
if test "x$cmdEXE" = x |
if test "x$cmdEXE" = x |
86 |
then |
then |
87 |
RUNMPI="mpirun -machinefile ../../mf -v -np 2 $gcmEXE" |
if [ $mpi -ge 1 ] ; then |
88 |
|
cmdEXE="mpirun -machinefile ../../mf -v -np 2 $gcmEXE" |
89 |
|
else |
90 |
cmdEXE=$gcmEXE |
cmdEXE=$gcmEXE |
91 |
else |
fi |
|
RUNMPI="$cmdEXE" |
|
92 |
fi |
fi |
93 |
if [ $mpi -ge 1 ] ; then cmdEXE=run_mpi ; fi |
#if [ $mpi -ge 1 ] ; then cmdEXE=run_mpi ; fi |
94 |
echo "cmdEXE='$cmdEXE' ; RUNMPI='$RUNMPI'" |
#echo "cmdEXE='$cmdEXE' ; RUNMPI='$RUNMPI'" |
95 |
|
echo "cmdEXE='$cmdEXE'" |
96 |
#========================= |
#========================= |
97 |
|
|
98 |
if test $flag = '0' -o $flag = 'All' ; then |
if test $flag = '0' -o $flag = 'All' ; then |
184 |
mkdir $tmpDir |
mkdir $tmpDir |
185 |
mv -f *.data $tmpDir |
mv -f *.data $tmpDir |
186 |
mv -f *.meta $tmpDir |
mv -f *.meta $tmpDir |
187 |
mv -f *.txt $tmpDir |
mv -f *.txt $tmpDir 2> /dev/null |
188 |
mv -f STD???.0[0-9][0-9][0-9] $tmpDir |
mv -f STD???.0[0-9][0-9][0-9] $tmpDir |
189 |
listS=`ls $tmpDir/pickup*.${sufx}* 2> /dev/null | head -1` |
listS=`ls $tmpDir/pickup*.${sufx}* 2> /dev/null | head -1` |
190 |
if test "x$listS" != x ; then mv $tmpDir/pickup*.${sufx}* . ; fi |
if test "x$listS" != x ; then mv $tmpDir/pickup*.${sufx}* . ; fi |
265 |
cp -p data.tst data |
cp -p data.tst data |
266 |
echo '==> START RUN 2 x' $Nit 'it' |
echo '==> START RUN 2 x' $Nit 'it' |
267 |
if [ $mpi -ge 1 ] |
if [ $mpi -ge 1 ] |
268 |
then $cmdEXE std_outp.2it > TTT.out.2it 2>&1 |
then |
269 |
|
sleep $wait2run |
270 |
|
$cmdEXE > TTT.out.2it 2>&1 |
271 |
|
mv STDOUT.0000 std_outp.2it |
272 |
|
cat TTT.out.2it |
273 |
else $cmdEXE > std_outp.2it |
else $cmdEXE > std_outp.2it |
274 |
fi |
fi |
275 |
mv STDERR.0000 std__err.2it |
mv STDERR.0000 std__err.2it |
286 |
rnp_loc $xx.ckptA $xx.$num2c |
rnp_loc $xx.ckptA $xx.$num2c |
287 |
done |
done |
288 |
mv *.0??.0??.* $dir1 |
mv *.0??.0??.* $dir1 |
289 |
txtF=`ls -1 *.txt 2> /dev/null` |
txtF=`ls -1 *.txt STD???.00?? 2> /dev/null` |
290 |
mv R?.data R?.meta DR?.data DR?.meta $txtF $dir1 |
mv R?.data R?.meta DR?.data DR?.meta PHref{C,F}.??ta $txtF $dir1 |
291 |
listS=`ls $dir1/pickup*.${num0c}* 2> /dev/null | head -1` |
listS=`ls $dir1/pickup*.${num0c}* 2> /dev/null | head -1` |
292 |
if test "x$listS" != x ; then mv $dir1/pickup*.${num0c}* . ; fi |
if test "x$listS" != x ; then mv $dir1/pickup*.${num0c}* . ; fi |
293 |
#--- 2nd run ( Nit iter , restart from same Iter = num0 as 1rst run ) |
#--- 2nd run ( Nit iter , restart from same Iter = num0 as 1rst run ) |
294 |
sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" data.tst > data |
sed "s/^ nTimeSteps=$Dbl/ nTimeSteps=$Nit/g" data.tst > data.tmp |
295 |
|
mv -f data.tmp data |
296 |
echo '==> START RUN 1iA' |
echo '==> START RUN 1iA' |
297 |
if [ $mpi -ge 1 ] |
if [ $mpi -ge 1 ] |
298 |
then $cmdEXE std_outp.1iA > TTT.out.1iA 2>&1 |
then |
299 |
|
sleep $wait2run |
300 |
|
$cmdEXE > TTT.out.1iA 2>&1 |
301 |
|
mv STDOUT.0000 std_outp.1iA |
302 |
|
cat TTT.out.1iA |
303 |
else $cmdEXE > std_outp.1iA |
else $cmdEXE > std_outp.1iA |
304 |
fi |
fi |
305 |
mv STDERR.0000 std__err.1iA |
mv STDERR.0000 std__err.1iA |
314 |
rnp_loc $xx.ckptA $xx.$num1c |
rnp_loc $xx.ckptA $xx.$num1c |
315 |
done |
done |
316 |
mv *.0??.0??.* $dir2 |
mv *.0??.0??.* $dir2 |
317 |
txtF=`ls -1 *.txt 2> /dev/null` |
txtF=`ls -1 *.txt STD???.00?? 2> /dev/null` |
318 |
mv R?.data R?.meta DR?.data DR?.meta $txtF $dir2 |
mv R?.data R?.meta DR?.data DR?.meta $txtF $dir2 |
319 |
listS=`ls $dir2/pickup*.${num0c}* 2> /dev/null | head -1` |
listS=`ls $dir2/pickup*.${num0c}* 2> /dev/null | head -1` |
320 |
if test "x$listS" != x ; then mv $dir2/pickup*.${num0c}* . ; fi |
if test "x$listS" != x ; then mv $dir2/pickup*.${num0c}* . ; fi |
324 |
mv -f data.tmp data |
mv -f data.tmp data |
325 |
echo '==> START RUN 1iB' |
echo '==> START RUN 1iB' |
326 |
if [ $mpi -ge 1 ] |
if [ $mpi -ge 1 ] |
327 |
then $cmdEXE std_outp.1iB > TTT.out.1iB 2>&1 |
then |
328 |
|
sleep $wait2run |
329 |
|
$cmdEXE > TTT.out.1iB 2>&1 |
330 |
|
mv STDOUT.0000 std_outp.1iB |
331 |
|
cat TTT.out.1iB |
332 |
else $cmdEXE > std_outp.1iB |
else $cmdEXE > std_outp.1iB |
333 |
fi |
fi |
334 |
mv STDERR.0000 std__err.1iB |
mv STDERR.0000 std__err.1iB |
343 |
rnp_loc $xx.ckptA $xx.$num2c |
rnp_loc $xx.ckptA $xx.$num2c |
344 |
done |
done |
345 |
mv *.0??.0??.* $dir3 |
mv *.0??.0??.* $dir3 |
346 |
txtF=`ls -1 *.txt 2> /dev/null` |
txtF=`ls -1 *.txt STD???.00?? 2> /dev/null` |
347 |
mv R?.data R?.meta DR?.data DR?.meta $txtF $dir3 |
mv R?.data R?.meta DR?.data DR?.meta $txtF $dir3 |
348 |
listS=`ls $dir3/pickup*.${num0c}* 2> /dev/null | head -1` |
listS=`ls $dir3/pickup*.${num0c}* 2> /dev/null | head -1` |
349 |
if test "x$listS" != x ; then mv $dir3/pickup*.${num0c}* . ; fi |
if test "x$listS" != x ; then mv $dir3/pickup*.${num0c}* . ; fi |
410 |
rm -rf $dir1 $dir2 $dir3 |
rm -rf $dir1 $dir2 $dir3 |
411 |
echo ' rm -f' std_????.?i? |
echo ' rm -f' std_????.?i? |
412 |
rm -f std_????.?i? |
rm -f std_????.?i? |
413 |
|
rm -f TTT.out.?i? 2> /dev/null |
414 |
echo ' rm -f' data.pkg data.tst |
echo ' rm -f' data.pkg data.tst |
415 |
rm -f data.pkg data.tst |
rm -f data.pkg data.tst |
416 |
#- move back files from temp_tst dir: |
#- move back files from temp_tst dir: |