/[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.263 by jahn, Mon Jan 6 16:49:10 2014 UTC revision 1.269 by jmc, Thu Feb 19 20:48:43 2015 UTC
# Line 19  Usage: "$0" [OPTIONS] Line 19  Usage: "$0" [OPTIONS]
19      -help | --help | -h | --h      -help | --help | -h | --h
20            Print this help message and exit.            Print this help message and exit.
21    
22        -oad | --oad
23              Generate a Makefile for an OpenAD built
24    
25        -nocat4ad | -dog4ad | -ncad | -dad
26              do not concatenate (cat) source code sent to TAF
27              resulting in compilation of multiple files
28    
29      -adoptfile NAME | --adoptfile NAME | -adof NAME | --adof NAME      -adoptfile NAME | --adoptfile NAME | -adof NAME | --adof NAME
30        -adoptfile=NAME | --adoptfile=NAME | -adof=NAME | --adof=NAME        -adoptfile=NAME | --adoptfile=NAME | -adof=NAME | --adof=NAME
31            Use "NAME" as the adoptfile.  By default, the file at            Use "NAME" as the adoptfile.  By default, the file at
32              "tools/adjoint_options/adjoint_oad" (for OpenAD built) or
33            "tools/adjoint_options/adjoint_default" will be used.            "tools/adjoint_options/adjoint_default" will be used.
34    
35      -nooptfile | --nooptfile      -nooptfile | --nooptfile
# Line 1079  EOF Line 1087  EOF
1087  }  }
1088    
1089  check_lapack_libs()  {  check_lapack_libs()  {
1090      if test ! "x$SKIP_LAPACK_CHECK" = x ; then      if test "x$CHECK_FOR_LAPACK" = xf ; then return ; fi
         return  
     fi  
1091      echo >> $LOGFILE      echo >> $LOGFILE
1092      echo "running: check_lapack_libs()" >> $LOGFILE      echo "running: check_lapack_libs()" >> $LOGFILE
1093      cat <<EOF > genmake_tla.F      cat <<EOF > genmake_tla.F
# Line 1277  GSL= Line 1283  GSL=
1283  DEVEL=  DEVEL=
1284  HAVE_TEST_L=  HAVE_TEST_L=
1285    
1286  # comment this line out to enable lapack test  # set this to "t" to enable lapack test
1287  SKIP_LAPACK_CHECK=t  CHECK_FOR_LAPACK=f
1288    
1289  # DEFINES checked by test compilation or command-line  # DEFINES checked by test compilation or command-line
1290  HAVE_SYSTEM=  HAVE_SYSTEM=
# Line 1325  FS= Line 1331  FS=
1331  FS90=  FS90=
1332    
1333  AUTODIFF_PKG_USED=f  AUTODIFF_PKG_USED=f
1334    OPENAD=
1335  AD_OPTFILE=  AD_OPTFILE=
1336    CAT_SRC_FOR_TAF=1
1337  TAF=  TAF=
1338  AD_TAF_FLAGS=  AD_TAF_FLAGS=
1339  FTL_TAF_FLAGS=  FTL_TAF_FLAGS=
# Line 1355  gm_s7="TMP THISHOST THISUSER THISDATE TH Line 1363  gm_s7="TMP THISHOST THISUSER THISDATE TH
1363  gm_s8="HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME HAVE_LAPACK HAVE_FLUSH"  gm_s8="HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME HAVE_LAPACK HAVE_FLUSH"
1364    
1365  #  The following are all related to adjoint/tangent-linear stuff  #  The following are all related to adjoint/tangent-linear stuff
1366  gm_s10="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS"  gm_s10="AUTODIFF_PKG_USED AD_OPTFILE OPENAD TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS"
1367  gm_s11="FTL_TAMC_FLAGS FTL_TAF_FLAGS SVD_TAMC_FLAGS SVD_TAF_FLAGS"  gm_s11="FTL_TAMC_FLAGS FTL_TAF_FLAGS SVD_TAMC_FLAGS SVD_TAF_FLAGS"
1368  gm_s12="TAF_EXTRA TAMC_EXTRA DIVA MPIINCLUDEDIR MPI_HEADER_FILES"  gm_s12="TAF_EXTRA TAMC_EXTRA DIVA MPIINCLUDEDIR MPI_HEADER_FILES"
1369    
# Line 1407  for ac_option in "$@" ; do Line 1415  for ac_option in "$@" ; do
1415          -optfile=* | --optfile=* | -of=* | --of=*)          -optfile=* | --optfile=* | -of=* | --of=*)
1416              OPTFILE=$ac_optarg ;;              OPTFILE=$ac_optarg ;;
1417    
1418            -oad | --oad)
1419                OPENAD="true" ; ALWAYS_USE_F90=1 ;;
1420            -nocat4ad | -dog4ad | -ncad | -dad)
1421                CAT_SRC_FOR_TAF=0 ;;
1422          -adoptfile | --adoptfile | -adof | --adof)          -adoptfile | --adoptfile | -adof | --adof)
1423              ac_prev=AD_OPTFILE ;;              ac_prev=AD_OPTFILE ;;
1424          -adoptfile=* | --adoptfile=* | -adof=* | --adof=*)          -adoptfile=* | --adoptfile=* | -adof=* | --adof=*)
# Line 1680  fi Line 1692  fi
1692    
1693  echo "  getting AD_OPTFILE information:"  echo "  getting AD_OPTFILE information:"
1694  if test "x${AD_OPTFILE}" = x ; then  if test "x${AD_OPTFILE}" = x ; then
1695      if test "x$MITGCM_AD_OF" = x ; then      if test "x$MITGCM_AD_OF" != x ; then
1696            AD_OPTFILE=$MITGCM_AD_OF
1697        elif test "x$OPENAD" = x ; then
1698          AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default          AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default
1699      else      else
1700          AD_OPTFILE=$MITGCM_AD_OF          AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_oad
1701      fi      fi
1702  fi  fi
1703  if test "x${AD_OPTFILE}" != xNONE ; then  if test "x${AD_OPTFILE}" != xNONE ; then
# Line 2624  if test "x$OPENAD" != x ; then Line 2638  if test "x$OPENAD" != x ; then
2638      OAD_CB2M_FILES="/dev/null"      OAD_CB2M_FILES="/dev/null"
2639      OADTOOLS="$TOOLSDIR/OAD_support"      OADTOOLS="$TOOLSDIR/OAD_support"
2640      echo "  looking for dontCompile file:  "      echo "  looking for dontCompile file:  "
2641      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2642          if test -r $i"/dontCompile" ; then          if test -r $i"/dontCompile" ; then
2643              OAD_DONT_COMPILE=$i"/dontCompile"              OAD_DONT_COMPILE=$i"/dontCompile"
2644              echo "     found $OAD_DONT_COMPILE"              echo "     found $OAD_DONT_COMPILE"
# Line 2632  if test "x$OPENAD" != x ; then Line 2646  if test "x$OPENAD" != x ; then
2646          fi          fi
2647      done      done
2648      echo "  looking for dontTransform file:  "      echo "  looking for dontTransform file:  "
2649      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2650          if test -r $i"/dontTransform" ; then          if test -r $i"/dontTransform" ; then
2651              OAD_DONT_TRANSFORM=$i"/dontTransform"              OAD_DONT_TRANSFORM=$i"/dontTransform"
2652              echo "     found $OAD_DONT_TRANSFORM"              echo "     found $OAD_DONT_TRANSFORM"
# Line 2640  if test "x$OPENAD" != x ; then Line 2654  if test "x$OPENAD" != x ; then
2654          fi          fi
2655      done      done
2656      echo "  looking for keepOriginal file:  "      echo "  looking for keepOriginal file:  "
2657      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2658          if test -r $i"/keepOriginal" ; then          if test -r $i"/keepOriginal" ; then
2659              OAD_KEEP_ORIGINAL=$i"/keepOriginal"              OAD_KEEP_ORIGINAL=$i"/keepOriginal"
2660              echo "     found $OAD_KEEP_ORIGINAL"              echo "     found $OAD_KEEP_ORIGINAL"
# Line 2648  if test "x$OPENAD" != x ; then Line 2662  if test "x$OPENAD" != x ; then
2662          fi          fi
2663      done      done
2664      echo "  looking for cb2mFiles:  "      echo "  looking for cb2mFiles:  "
2665      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2666          if test -r $i"/cb2mFiles" ; then          if test -r $i"/cb2mFiles" ; then
2667              OAD_CB2M_FILES=$i"/cb2mFiles"              OAD_CB2M_FILES=$i"/cb2mFiles"
2668              echo "     found $OAD_CB2M_FILES"              echo "     found $OAD_CB2M_FILES"
# Line 2964  links: \$(F77_SRC_FILES) \$(C_SRC_FILES) Line 2978  links: \$(F77_SRC_FILES) \$(C_SRC_FILES)
2978    
2979  small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES)  small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES)
2980    
 output.txt: \$(EXECUTABLE)  
         @printf 'running ... '  
         @\$(EXECUTABLE) > \$@  
   
2981  # remove most of the files that "make" generates  # remove most of the files that "make" generates
2982  clean:  clean:
2983          -rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template          -rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template
# Line 3119  done Line 3129  done
3129  echo >> $MAKEFILE  echo >> $MAKEFILE
3130  rm -f $TMP.adSrcFiles  rm -f $TMP.adSrcFiles
3131    
3132    if test $CAT_SRC_FOR_TAF = 0 ; then
3133    cat >>$MAKEFILE <<EOF
3134    
3135    # ... Utilities ...
3136    remove_comments:
3137            sed -i.bak -f \$(TOOLSDIR)/remove_comments_sed \$(AD_FILES)
3138            @-rm -f \$(AD_FILES:.$FS=.$FS.bak)
3139    adj_sed:
3140            sed -i.bak -f \$(TOOLSDIR)/adjoint_sed \$(AD_FILES:.$FS=_ad.$FS)
3141            @-rm -f \$(AD_FILES:.$FS=_ad.$FS.bak)
3142    ftl_sed:
3143            sed -i.bak -f \$(TOOLSDIR)/adjoint_sed \$(AD_FILES:.$FS=_tl.$FS)
3144            @-rm -f \$(AD_FILES:.$FS=_tl.$FS.bak)
3145    adobjfiles: \$(AD_FILES:.$FS=_ad.o)
3146    ftlobjfiles: \$(AD_FILES:.$FS=_tl.o)
3147    EOF
3148    fi
3149    
3150  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
3151    
3152  # ... AD ...  # ... AD ...
# Line 3141  ad_input_code.$FS: \$(AD_FILES) \$(AD_FL Line 3169  ad_input_code.$FS: \$(AD_FILES) \$(AD_FL
3169          @\$(MAKE) -f \$(MAKEFILE) \$(FLOWFILES)          @\$(MAKE) -f \$(MAKEFILE) \$(FLOWFILES)
3170          cat \$(FLOWFILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ad_input_code.$FS          cat \$(FLOWFILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ad_input_code.$FS
3171    
3172  ad_taf_output.$FS: ad_input_code.$FS  adtafonly:
         @-rm -f ad_input_code_ad.$FS ; echo ''  
3173          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
3174          ls -l ad_input_code_ad.$FS          ls -l ad_input_code_ad.$FS
3175          cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS          cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS
3176    
3177  adtafonly:  EOF
3178    
3179    if test $CAT_SRC_FOR_TAF = 1 ; then
3180    cat >>$MAKEFILE <<EOF
3181    # ... send 1 file to TAF ...
3182    ad_taf_output.$FS: ad_input_code.$FS
3183            @-rm -f ad_input_code_ad.$FS ; echo ''
3184          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS          \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.$FS
3185          ls -l ad_input_code_ad.$FS          ls -l ad_input_code_ad.$FS
3186          cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS          cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_taf_output.$FS
# Line 3155  adtafonly: Line 3188  adtafonly:
3188  \$(EXE_AD): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)  \$(EXE_AD): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)
3189          \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)          \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)
3190    
3191  ad_tamc_output.$FS: ad_input_code.$FS  adobj: ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o)
         \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS  
         cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_tamc_output.$FS  
3192    
3193  ad_tamc: ad_tamc_output.o \$(OBJFILES)  EOF
         \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)  
3194    
3195    else
3196    cat >>$MAKEFILE <<EOF
3197    # ... send multiple files to TAF ...
3198    ad_taf_output.$FS: \$(AD_FLOW_FILES) \$(AD_FILES)
3199            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template
3200            cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3201            @-rm -f ad_config.template
3202            @\$(MAKE) -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)
3203            @\$(MAKE) -f \$(MAKEFILE) \$(FLOWFILES)
3204            @-rm -f \$(AD_FILES:.$FS=_ad.$FS) \$(AD_FILES:.$FS=_ad.o); echo ''
3205            \$(MAKE) -f \$(MAKEFILE) remove_comments
3206            \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) \$(FLOWFILES) \$(AD_FILES)
3207            \$(MAKE) -f \$(MAKEFILE) adj_sed
3208            \$(MAKE) -f \$(MAKEFILE) adobjfiles
3209            cat \$(AD_FILES:.$FS=_ad.$FS) > ad_taf_output.$FS
3210    
3211    \$(EXE_AD): \$(SPECIAL_FILES) \$(H_SRC_FILES) ad_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)
3212            \$(LINK) -o \${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(AD_FILES:.$FS=_ad.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)
3213    
3214    adobj: \$(AD_FILES:.$FS=_ad.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o)
3215    
3216    EOF
3217    fi
3218    
3219    cat >>$MAKEFILE <<EOF
3220  adonlyfwd:  adonlyfwd:
3221          patch < \$(TOOLSDIR)/ad_taf_output.f.onlyfwd.diff          patch < \$(TOOLSDIR)/ad_taf_output.f.onlyfwd.diff
3222    
3223  adtrick:  adtrick:
3224          patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff          patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff
3225    
3226  adobj: ad_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o)  ad_tamc_output.$FS: ad_input_code.$FS
3227            \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.$FS
3228            cat ad_input_code_ad.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ad_tamc_output.$FS
3229    
3230    ad_tamc: ad_tamc_output.o \$(OBJFILES)
3231            \$(LINK) -o ${EXE_AD} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ad_tamc_output.o \$(LIBS)
3232    
3233  # ... FTL ...  # ... FTL ...
3234  ftlall: ftl_exe_target  ftlall: ftl_exe_target
# Line 3190  ftl_input_code.$FS: \$(AD_FILES) Line 3250  ftl_input_code.$FS: \$(AD_FILES)
3250          @\$(MAKE) -f \$(MAKEFILE) \$(AD_FLOW_FILES)          @\$(MAKE) -f \$(MAKEFILE) \$(AD_FLOW_FILES)
3251          cat \$(AD_FLOW_FILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ftl_input_code.$FS          cat \$(AD_FLOW_FILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ftl_input_code.$FS
3252    
3253  ftl_taf_output.$FS: ftl_input_code.$FS  ftltafonly:
         @-rm -f ftl_input_code_tl.$FS ; echo ''  
3254          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
3255          ls -l ftl_input_code_tl.$FS          ls -l ftl_input_code_tl.$FS
3256          cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS          cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS
3257    
3258  ftltafonly:  EOF
3259    
3260    if test $CAT_SRC_FOR_TAF = 1 ; then
3261    cat >>$MAKEFILE <<EOF
3262    # ... send 1 file to TAF ...
3263    ftl_taf_output.$FS: ftl_input_code.$FS
3264            @-rm -f ftl_input_code_tl.$FS ; echo ''
3265          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS          \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS
3266          ls -l ftl_input_code_tl.$FS          ls -l ftl_input_code_tl.$FS
3267          cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS          cat ftl_input_code_tl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS
# Line 3204  ftltafonly: Line 3269  ftltafonly:
3269  \$(EXE_FTL): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)  \$(EXE_FTL): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)
3270          \$(LINK) -o \${EXE_FTL} \$(FFLAGS) \$(FOPTIM) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)          \$(LINK) -o \${EXE_FTL} \$(FFLAGS) \$(FOPTIM) ftl_taf_output.o \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)
3271    
3272    EOF
3273    
3274    else
3275    cat >>$MAKEFILE <<EOF
3276    # ... send multiple files to TAF ...
3277    ftl_taf_output.$FS: \$(AD_FLOW_FILES) \$(AD_FILES)
3278            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "TangLin version" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ad_config.template
3279            cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3280            @-rm -f ad_config.template
3281            @\$(MAKE) -f \$(MAKEFILE) \$(F77_PP_SRC_FILES)
3282            @\$(MAKE) -f \$(MAKEFILE) \$(AD_FLOW_FILES)
3283            @-rm -f \$(AD_FILES:.$FS=_tl.$FS) \$(AD_FILES:.$FS=_tl.o); echo ''
3284            \$(MAKE) -f \$(MAKEFILE) remove_comments
3285            \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) \$(AD_FLOW_FILES) \$(AD_FILES)
3286            \$(MAKE) -f \$(MAKEFILE) ftl_sed
3287            \$(MAKE) -f \$(MAKEFILE) ftlobjfiles
3288            cat \$(AD_FILES:.$FS=_tl.$FS) > ftl_taf_output.$FS
3289    
3290    \$(EXE_FTL): \$(SPECIAL_FILES) \$(H_SRC_FILES) ftl_taf_output.$FS \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(EMBEDDED_FILES)
3291            \$(LINK) -o \${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(AD_FILES:.$FS=_tl.o) \$(NON_AD_F77_SRC_FILES:.F=.o) \$(F90_SRC_FILES:.F90=.o) \$(C_SRC_FILES:.c=.o) \$(LIBS)
3292    
3293    EOF
3294    fi
3295    
3296    cat >>$MAKEFILE <<EOF
3297  ftl_tamc_output.$FS: ftl_input_code.$FS  ftl_tamc_output.$FS: ftl_input_code.$FS
3298          \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS          \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS
3299          cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_tamc_output.$FS          cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_tamc_output.$FS
# Line 3246  if test "x$OPENAD" != x ; then Line 3336  if test "x$OPENAD" != x ; then
3336  # ============ begin OpenAD specific section ==============  # ============ begin OpenAD specific section ==============
3337    
3338  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
3339    # ... OpenAD ...
3340    
3341  # all the source files linked from the various locations:  # all the source files linked from the various locations:
3342  ALL_LINKED_FILES= \  ALL_LINKED_FILES= \
# Line 3299  rm -f $TMP.adSrcFiles Line 3390  rm -f $TMP.adSrcFiles
3390    
3391  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
3392    
3393  adAll: \$(EXE_AD)  adAll: ad_exe_target
3394  .PHONY: adAll  .PHONY: adAll
3395    
3396    ad_exe_target:
3397            @echo Update AD_CONFIG.h and make \$(EXE_AD)
3398            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template
3399            @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3400            @-rm -f ad_config.template
3401            \$(MAKE) -f \$(MAKEFILE) \$(EXE_AD)
3402    
3403  CB2M_F90_PP_SRC_FILES=\$(addsuffix _mod.f$FS90, \$(CB2M_F90_SRC_NAMES))  CB2M_F90_PP_SRC_FILES=\$(addsuffix _mod.f$FS90, \$(CB2M_F90_SRC_NAMES))
3404    
3405  .PRECIOUS: \$(CB2M_F90_PP_SRC_FILES) \$(NON_AD_F77_SRC_FILES:.F=_cb2m.f$FS90)  .PRECIOUS: \$(CB2M_F90_PP_SRC_FILES) \$(NON_AD_F77_SRC_FILES:.F=_cb2m.f$FS90)
# Line 3359  AD_OBJ_FILES_S2=\$(AD_OBJ_FILES_S1) \$(N Line 3457  AD_OBJ_FILES_S2=\$(AD_OBJ_FILES_S1) \$(N
3457  small_f: \$(CB2M_F90_PP_SRC_FILES)  small_f: \$(CB2M_F90_PP_SRC_FILES)
3458  .PHONY: small_f  .PHONY: small_f
3459    
 ad_output.txt: \$(EXE_AD)  
         @printf 'linking data files ... '  
         \$(LN) -f ../input_ad/data* ../input_ad/eedata .  
         \$(LN) -f ../../global_ocean.90x40x15/input/*.bin .  
         @printf 'running ... '  
         @./\$(EXE_AD) > \$@  
   
3460  ad_input_code.f$FS90:  \$(CB2M_AD_FILES)  ad_input_code.f$FS90:  \$(CB2M_AD_FILES)
3461          cat \$^ > \$@          cat \$^ > \$@
3462    

Legend:
Removed from v.1.263  
changed lines
  Added in v.1.269

  ViewVC Help
Powered by ViewVC 1.1.22