/[MITgcm]/MITgcm_contrib/heimbach/OpenAD/OAD_support/cb2mUseModules.bash
ViewVC logotype

Contents of /MITgcm_contrib/heimbach/OpenAD/OAD_support/cb2mUseModules.bash

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.2 - (show annotations) (download)
Thu Dec 19 16:04:50 2013 UTC (12 years, 8 months ago) by utke
Branch: MAIN
CVS Tags: HEAD
Changes since 1.1: +0 -0 lines
FILE REMOVED
obsolete duplicates

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

  ViewVC Help
Powered by ViewVC 1.1.22