--- MITgcm/tools/genmake2 2003/10/20 18:53:33 1.13.2.2 +++ MITgcm/tools/genmake2 2003/10/21 03:02:04 1.13.2.5 @@ -1,6 +1,6 @@ #!/bin/bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/genmake2,v 1.13.2.2 2003/10/20 18:53:33 edhill Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/genmake2,v 1.13.2.5 2003/10/21 03:02:04 edhill Exp $ # # Makefile generator for MITgcm UV codes # created by cnh 03/98 @@ -1048,26 +1048,24 @@ rm -f ./ad_files fi echo " Creating the list of files for the adjoint compiler." -for i in $SOURCEDIRS . ; do +for i in $SOURCEDIRS ; do list_files=`( cd $i && ls -1 *.list 2>/dev/null )` for j in $list_files ; do cat $i/$j >> ad_files done done -cat < adjoint_sed - sed 's/call adopen(/call adopen ( mythid,\ +cat < adjoint_sed +s/call adopen(/call adopen ( mythid,\\ \& /g - s/call adclose(/call adclose( mythid,\ +s/call adclose(/call adclose( mythid,\\ \& /g - s/call adread(/call adread ( mythid,\ +s/call adread(/call adread ( mythid,\\ + \& /g +s/call adwrite(/call adwrite( mythid,\\ \& /g - s/call adwrite(/call adwrite( mythid,\ - \& /g' < ad_code_ad.f EOF -chmod +x adjoint_sed - echo echo "=== Creating the Makefile ===" @@ -1089,10 +1087,11 @@ echo -n 'CSRCFILES = ' > csrclist.inc echo -n 'F90SRCFILES = ' > f90srclist.inc echo -n 'HEADERFILES = ' > hlist.inc +echo -n 'AD_FLOW_FILES = ' > ad_flow_files.inc alldirs="$SOURCEDIRS $INCLUDEDIRS ." for d in $alldirs ; do deplist= - sfiles=`( cd $d; echo *.[h,c,F] )` + sfiles=`( cd $d; echo *.[h,c,F] *.flow )` sfiles=`( echo $sfiles; cd $d; echo *.F90 )` for sf in $sfiles ; do if test ! -r ".links.tmp/$sf" ; then @@ -1117,6 +1116,10 @@ echo " \\" >> hlist.inc echo -n " $sf" >> hlist.inc ;; + flow) + echo " \\" >> ad_flow_files.inc + echo -n " $sf" >> ad_flow_files.inc + ;; esac fi fi @@ -1133,6 +1136,7 @@ echo "" >> csrclist.inc echo "" >> f90srclist.inc echo "" >> hlist.inc +echo "" >> ad_flow_files.inc if test -e $MAKEFILE ; then mv -f $MAKEFILE "$MAKEFILE.bak" @@ -1222,16 +1226,18 @@ EOF -cat srclist.inc >> $MAKEFILE -cat csrclist.inc >> $MAKEFILE -cat f90srclist.inc >> $MAKEFILE -cat hlist.inc >> $MAKEFILE +cat srclist.inc >> $MAKEFILE +cat csrclist.inc >> $MAKEFILE +cat f90srclist.inc >> $MAKEFILE +cat hlist.inc >> $MAKEFILE +cat ad_flow_files.inc >> $MAKEFILE echo >> $MAKEFILE echo 'F77FILES = $(SRCFILES:.F=.f)' >> $MAKEFILE echo 'F90FILES = $(F90SRCFILES:.F90=.f90)' >> $MAKEFILE echo 'OBJFILES = $(SRCFILES:.F=.o) $(CSRCFILES:.c=.o) $(F90SRCFILES:.F90=.o)' >> $MAKEFILE rm -f srclist.inc csrclist.inc hlist.inc flist.tmp clist.tmp f90srclist.inc +rm -f ad_flow_files.inc cat >>$MAKEFILE <>$MAKEFILE < ad_input_code.f + -EXE_AD_TAF = ${EXECUTABLE} -ad_taf: \$(OBJFILES) - cat \$(AD_FILES) >! ad_input_code.f +ad_taf_output.f: ad_input_code.f \$(TAF) \$(AD_TAF_FLAGS) ad_input_code.f - ./adjoint_sed >! ad_output_code.f - @make ad_output_code.o - \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_output_code.o \$(LIBS) + cat ad_input_code_ad.f | sed -f adjoint_sed > ad_taf_output.f + +ad_taf: ad_taf_output.o \$(OBJFILES) + \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_taf_output.o \$(LIBS) + + +ad_tamc_output.f: ad_input_code.f + \$(TAMC) \$(AD_TAMC_FLAGS) ad_input_code.f + cat ad_input_code_ad.f | sed -f adjoint_sed > ad_taf_output.f + +ad_tamc: ad_tamc_output.o \$(OBJFILES) + \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS) + + +flt_taf_output.f: ad_input_code.f + \$(TAF) \$(FTL_TAF_FLAGS) ad_input_code.f + cat ad_input_code_ad.f | sed -f adjoint_sed > flt_taf_output.f + +flt_taf: flt_taf_output.o \$(OBJFILES) + \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) flt_taf_output.o \$(LIBS) -EXE_FTL_TAMC = ${EXECUTABLE}_ftl_tamc -EXE_FTL_TAF = ${EXECUTABLE}_ftl_taf -EXE_SVD_TAF = ${EXECUTABLE}_ftl_taf -EXE_BOTH_TAF = ${EXECUTABLE}_ftl_taf #=========================================