forked from SPECFEM/specfem2d
-
Notifications
You must be signed in to change notification settings - Fork 0
/
run_this_example_PLEASE_DO_NOT_REMOVE.sh
executable file
·67 lines (54 loc) · 1.21 KB
/
run_this_example_PLEASE_DO_NOT_REMOVE.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#!/bin/bash
#
# this script runs the mesher and the solver (in serial or in parallel, as needed)
# using this example setup
#
echo "running example: `date`"
currentdir=`pwd`
# sets up directory structure in current example directoy
echo
echo "setting up example..."
echo
mkdir -p OUTPUT_FILES
# cleans output files
rm -rf OUTPUT_FILES/*
cd $currentdir
# links executables
rm -f xmeshfem2D xspecfem2D
ln -s bin/xmeshfem2D
ln -s bin/xspecfem2D
# stores setup
cp DATA/Par_file OUTPUT_FILES/
cp DATA/SOURCE OUTPUT_FILES/
# Get the number of processors
NPROC=`grep ^NPROC DATA/Par_file | cut -d = -f 2 | cut -d \# -f 1 | tr -d ' '`
# runs database generation
echo
echo "running mesher..."
echo
./xmeshfem2D
# checks exit code
if [[ $? -ne 0 ]]; then exit 1; fi
# runs simulation
if [ "$NPROC" -eq 1 ]; then
# This is a serial simulation
echo
echo "running solver..."
echo
./xspecfem2D
else
# This is a MPI simulation
echo
echo "running solver on $NPROC processors..."
echo
mpirun -np $NPROC ./xspecfem2D
fi
# checks exit code
if [[ $? -ne 0 ]]; then exit 1; fi
# stores output
cp DATA/*SOURCE* DATA/*STATIONS* OUTPUT_FILES
echo
echo "see results in directory: OUTPUT_FILES/"
echo
echo "done"
echo `date`