| 1 |
utke |
1.1 |
#!/bin/bash |
| 2 |
|
|
file=$1 |
| 3 |
|
|
wantMPI=$2 |
| 4 |
|
|
needMpi=false |
| 5 |
|
|
cp ${file} ${file}.tmp |
| 6 |
|
|
for includeFile in `egrep "\# *include *\"" ${file} | sed 's/# *include *\"\(.*\)\"/\1/' | sort | uniq` |
| 7 |
|
|
do |
| 8 |
|
|
modFileName=${includeFile%.h}_mod.h |
| 9 |
|
|
if [ -f ${modFileName} ] |
| 10 |
|
|
then |
| 11 |
|
|
echo "s/\# *include *\(\"${includeFile}\"\)/\#include \"${modFileName}\"/" > temp.sed |
| 12 |
|
|
# add in the mpi include here since we filtered it from the module |
| 13 |
|
|
if [ "$modFileName" == "EESUPPORT_mod.h" ] |
| 14 |
|
|
then |
| 15 |
|
|
needMpi=true |
| 16 |
|
|
fi |
| 17 |
|
|
cat ${file}.tmp | sed -f temp.sed | sed 's/IMPLICIT NONE//' | sed 's/implicit none//' > ${file}.tmp.1 |
| 18 |
|
|
mv ${file}.tmp.1 ${file}.tmp |
| 19 |
|
|
fi |
| 20 |
|
|
done |
| 21 |
|
|
if [ "$needMpi" == "true" -a -n "$wantMPI" ] |
| 22 |
|
|
then |
| 23 |
|
|
cat > cb2mUseMPI.awk <<EOF |
| 24 |
|
|
BEGIN { useSeq = 0; inSR=0} |
| 25 |
|
|
/^ *SUBROUTINE/ { inSR=1 } |
| 26 |
|
|
/^#include / { if (inSR == 1) { useSeq = 1 ; print } } |
| 27 |
|
|
/^#ifdef/ || /^#endif/ { if (useSeq == 1) print } |
| 28 |
|
|
!/^#include / && !/^#ifdef/ && !/^#endif/ { if (useSeq == 1) { printf("#include \"mpif.h\"\n"); useSeq=0; inSR=0 } } |
| 29 |
|
|
{if (useSeq == 0) print } |
| 30 |
|
|
END {} |
| 31 |
|
|
EOF |
| 32 |
|
|
awk -f cb2mUseMPI.awk ${file}.tmp > ${file}.tmp.1 |
| 33 |
|
|
mv ${file}.tmp.1 ${file}.tmp |
| 34 |
|
|
fi |
| 35 |
|
|
mv ${file}.tmp ${file%.F}_cb2m.FF90 |