/[MITgcm]/MITgcm/tools/genmake2
ViewVC logotype

Diff of /MITgcm/tools/genmake2

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

revision 1.13.2.2 by edhill, Mon Oct 20 18:53:33 2003 UTC revision 1.13.2.5 by edhill, Tue Oct 21 03:02:04 2003 UTC
# Line 1048  if test -f ./ad_files ; then Line 1048  if test -f ./ad_files ; then
1048      rm -f ./ad_files      rm -f ./ad_files
1049  fi  fi
1050  echo "  Creating the list of files for the adjoint compiler."  echo "  Creating the list of files for the adjoint compiler."
1051  for i in $SOURCEDIRS . ; do  for i in $SOURCEDIRS ; do
1052      list_files=`( cd $i && ls -1 *.list 2>/dev/null )`      list_files=`( cd $i && ls -1 *.list 2>/dev/null )`
1053      for j in $list_files ; do      for j in $list_files ; do
1054          cat $i/$j >> ad_files          cat $i/$j >> ad_files
1055      done      done
1056  done  done
 cat <<EOF > adjoint_sed  
1057    
1058   sed 's/call adopen(/call adopen ( mythid,\  cat <<EOF > adjoint_sed
1059    s/call adopen(/call adopen ( mythid,\\
1060       \&           /g       \&           /g
1061       s/call adclose(/call adclose( mythid,\  s/call adclose(/call adclose( mythid,\\
1062       \&           /g       \&           /g
1063       s/call adread(/call adread ( mythid,\  s/call adread(/call adread ( mythid,\\
1064         \&           /g
1065    s/call adwrite(/call adwrite( mythid,\\
1066       \&           /g       \&           /g
      s/call adwrite(/call adwrite( mythid,\  
      \&           /g' < ad_code_ad.f  
1067    
1068  EOF  EOF
 chmod +x adjoint_sed  
   
1069    
1070  echo  echo
1071  echo "===  Creating the Makefile  ==="  echo "===  Creating the Makefile  ==="
# Line 1089  echo -n 'SRCFILES = '    > srclist.inc Line 1087  echo -n 'SRCFILES = '    > srclist.inc
1087  echo -n 'CSRCFILES = '   > csrclist.inc  echo -n 'CSRCFILES = '   > csrclist.inc
1088  echo -n 'F90SRCFILES = ' > f90srclist.inc  echo -n 'F90SRCFILES = ' > f90srclist.inc
1089  echo -n 'HEADERFILES = ' > hlist.inc  echo -n 'HEADERFILES = ' > hlist.inc
1090    echo -n 'AD_FLOW_FILES = ' > ad_flow_files.inc
1091  alldirs="$SOURCEDIRS $INCLUDEDIRS ."  alldirs="$SOURCEDIRS $INCLUDEDIRS ."
1092  for d in $alldirs ; do  for d in $alldirs ; do
1093      deplist=      deplist=
1094      sfiles=`( cd $d; echo *.[h,c,F] )`      sfiles=`( cd $d; echo *.[h,c,F] *.flow )`
1095      sfiles=`( echo $sfiles; cd $d; echo *.F90 )`      sfiles=`( echo $sfiles; cd $d; echo *.F90 )`
1096      for sf in $sfiles ; do      for sf in $sfiles ; do
1097          if test ! -r ".links.tmp/$sf" ; then          if test ! -r ".links.tmp/$sf" ; then
# Line 1117  for d in $alldirs ; do Line 1116  for d in $alldirs ; do
1116                          echo    " \\"  >> hlist.inc                          echo    " \\"  >> hlist.inc
1117                          echo -n " $sf" >> hlist.inc                          echo -n " $sf" >> hlist.inc
1118                          ;;                          ;;
1119                        flow)
1120                            echo    " \\"  >> ad_flow_files.inc
1121                            echo -n " $sf" >> ad_flow_files.inc
1122                            ;;
1123                  esac                  esac
1124              fi              fi
1125          fi          fi
# Line 1133  echo "" >> srclist.inc Line 1136  echo "" >> srclist.inc
1136  echo "" >> csrclist.inc  echo "" >> csrclist.inc
1137  echo "" >> f90srclist.inc  echo "" >> f90srclist.inc
1138  echo "" >> hlist.inc  echo "" >> hlist.inc
1139    echo "" >> ad_flow_files.inc
1140    
1141  if test -e $MAKEFILE ; then  if test -e $MAKEFILE ; then
1142      mv -f $MAKEFILE "$MAKEFILE.bak"      mv -f $MAKEFILE "$MAKEFILE.bak"
# Line 1222  MAKEFILE=${MAKEFILE} Line 1226  MAKEFILE=${MAKEFILE}
1226    
1227  EOF  EOF
1228    
1229  cat srclist.inc    >> $MAKEFILE  cat srclist.inc       >> $MAKEFILE
1230  cat csrclist.inc   >> $MAKEFILE  cat csrclist.inc      >> $MAKEFILE
1231  cat f90srclist.inc >> $MAKEFILE  cat f90srclist.inc    >> $MAKEFILE
1232  cat hlist.inc      >> $MAKEFILE  cat hlist.inc         >> $MAKEFILE
1233    cat ad_flow_files.inc >> $MAKEFILE
1234  echo               >> $MAKEFILE  echo               >> $MAKEFILE
1235  echo 'F77FILES =  $(SRCFILES:.F=.f)'                                           >> $MAKEFILE  echo 'F77FILES =  $(SRCFILES:.F=.f)'                                           >> $MAKEFILE
1236  echo 'F90FILES =  $(F90SRCFILES:.F90=.f90)'                                    >> $MAKEFILE  echo 'F90FILES =  $(F90SRCFILES:.F90=.f90)'                                    >> $MAKEFILE
1237  echo 'OBJFILES =  $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o) $(F90SRCFILES:.F90=.o)' >> $MAKEFILE  echo 'OBJFILES =  $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o) $(F90SRCFILES:.F90=.o)' >> $MAKEFILE
1238    
1239  rm -f srclist.inc csrclist.inc hlist.inc flist.tmp clist.tmp f90srclist.inc  rm -f srclist.inc csrclist.inc hlist.inc flist.tmp clist.tmp f90srclist.inc
1240    rm -f ad_flow_files.inc
1241    
1242  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
1243    
# Line 1321  echo >> $MAKEFILE Line 1327  echo >> $MAKEFILE
1327    
1328  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
1329    
 # AD_FILES_SMALLF = \$(AD_FILES:.F=.f)  
1330    
1331  EXE_AD_TAMC    = ${EXECUTABLE}_ad_tamc  ad_input_code.f: \$(F77FILES)
1332  \$(EXE_AD_TAMC): \$(OBJFILES)          @make \$(AD_FLOW_FILES)
1333            cat \$(AD_FLOW_FILES) \$(AD_FILES) > ad_input_code.f
1334    
1335    
1336  EXE_AD_TAF     = ${EXECUTABLE}  ad_taf_output.f: ad_input_code.f
 ad_taf: \$(OBJFILES)  
         cat \$(AD_FILES) >! ad_input_code.f  
1337          \$(TAF) \$(AD_TAF_FLAGS) ad_input_code.f          \$(TAF) \$(AD_TAF_FLAGS) ad_input_code.f
1338          ./adjoint_sed >! ad_output_code.f          cat ad_input_code_ad.f | sed -f adjoint_sed > ad_taf_output.f
1339          @make ad_output_code.o  
1340          \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_output_code.o \$(LIBS)  ad_taf: ad_taf_output.o \$(OBJFILES)
1341            \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS)
1342    
1343    
1344    ad_tamc_output.f: ad_input_code.f
1345            \$(TAMC) \$(AD_TAMC_FLAGS) ad_input_code.f
1346            cat ad_input_code_ad.f | sed -f adjoint_sed > ad_taf_output.f
1347    
1348    ad_tamc: ad_tamc_output.o \$(OBJFILES)
1349            \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)
1350    
1351    
1352    flt_taf_output.f: ad_input_code.f
1353            \$(TAF) \$(FTL_TAF_FLAGS) ad_input_code.f
1354            cat ad_input_code_ad.f | sed -f adjoint_sed > flt_taf_output.f
1355    
1356    flt_taf: flt_taf_output.o \$(OBJFILES)
1357            \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) flt_taf_output.o \$(LIBS)
1358    
 EXE_FTL_TAMC   = ${EXECUTABLE}_ftl_tamc  
 EXE_FTL_TAF    = ${EXECUTABLE}_ftl_taf  
1359    
 EXE_SVD_TAF    = ${EXECUTABLE}_ftl_taf  
 EXE_BOTH_TAF   = ${EXECUTABLE}_ftl_taf  
1360    
1361  #=========================================  #=========================================
1362    

Legend:
Removed from v.1.13.2.2  
changed lines
  Added in v.1.13.2.5

  ViewVC Help
Powered by ViewVC 1.1.22