/[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.268 by jmc, Sun Aug 10 16:46:04 2014 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      -adoptfile NAME | --adoptfile NAME | -adof NAME | --adof NAME      -adoptfile NAME | --adoptfile NAME | -adof NAME | --adof NAME
26        -adoptfile=NAME | --adoptfile=NAME | -adof=NAME | --adof=NAME        -adoptfile=NAME | --adoptfile=NAME | -adof=NAME | --adof=NAME
27            Use "NAME" as the adoptfile.  By default, the file at            Use "NAME" as the adoptfile.  By default, the file at
28              "tools/adjoint_options/adjoint_oad" (for OpenAD built) or
29            "tools/adjoint_options/adjoint_default" will be used.            "tools/adjoint_options/adjoint_default" will be used.
30    
31      -nooptfile | --nooptfile      -nooptfile | --nooptfile
# Line 1079  EOF Line 1083  EOF
1083  }  }
1084    
1085  check_lapack_libs()  {  check_lapack_libs()  {
1086      if test ! "x$SKIP_LAPACK_CHECK" = x ; then      if test "x$CHECK_FOR_LAPACK" = xf ; then return ; fi
         return  
     fi  
1087      echo >> $LOGFILE      echo >> $LOGFILE
1088      echo "running: check_lapack_libs()" >> $LOGFILE      echo "running: check_lapack_libs()" >> $LOGFILE
1089      cat <<EOF > genmake_tla.F      cat <<EOF > genmake_tla.F
# Line 1277  GSL= Line 1279  GSL=
1279  DEVEL=  DEVEL=
1280  HAVE_TEST_L=  HAVE_TEST_L=
1281    
1282  # comment this line out to enable lapack test  # set this to "t" to enable lapack test
1283  SKIP_LAPACK_CHECK=t  CHECK_FOR_LAPACK=f
1284    
1285  # DEFINES checked by test compilation or command-line  # DEFINES checked by test compilation or command-line
1286  HAVE_SYSTEM=  HAVE_SYSTEM=
# Line 1325  FS= Line 1327  FS=
1327  FS90=  FS90=
1328    
1329  AUTODIFF_PKG_USED=f  AUTODIFF_PKG_USED=f
1330    OPENAD=
1331  AD_OPTFILE=  AD_OPTFILE=
1332  TAF=  TAF=
1333  AD_TAF_FLAGS=  AD_TAF_FLAGS=
# Line 1355  gm_s7="TMP THISHOST THISUSER THISDATE TH Line 1358  gm_s7="TMP THISHOST THISUSER THISDATE TH
1358  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"
1359    
1360  #  The following are all related to adjoint/tangent-linear stuff  #  The following are all related to adjoint/tangent-linear stuff
1361  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"
1362  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"
1363  gm_s12="TAF_EXTRA TAMC_EXTRA DIVA MPIINCLUDEDIR MPI_HEADER_FILES"  gm_s12="TAF_EXTRA TAMC_EXTRA DIVA MPIINCLUDEDIR MPI_HEADER_FILES"
1364    
# Line 1407  for ac_option in "$@" ; do Line 1410  for ac_option in "$@" ; do
1410          -optfile=* | --optfile=* | -of=* | --of=*)          -optfile=* | --optfile=* | -of=* | --of=*)
1411              OPTFILE=$ac_optarg ;;              OPTFILE=$ac_optarg ;;
1412    
1413            -oad | --oad)
1414                OPENAD="true" ; ALWAYS_USE_F90=1 ;;
1415          -adoptfile | --adoptfile | -adof | --adof)          -adoptfile | --adoptfile | -adof | --adof)
1416              ac_prev=AD_OPTFILE ;;              ac_prev=AD_OPTFILE ;;
1417          -adoptfile=* | --adoptfile=* | -adof=* | --adof=*)          -adoptfile=* | --adoptfile=* | -adof=* | --adof=*)
# Line 1680  fi Line 1685  fi
1685    
1686  echo "  getting AD_OPTFILE information:"  echo "  getting AD_OPTFILE information:"
1687  if test "x${AD_OPTFILE}" = x ; then  if test "x${AD_OPTFILE}" = x ; then
1688      if test "x$MITGCM_AD_OF" = x ; then      if test "x$MITGCM_AD_OF" != x ; then
1689            AD_OPTFILE=$MITGCM_AD_OF
1690        elif test "x$OPENAD" = x ; then
1691          AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default          AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default
1692      else      else
1693          AD_OPTFILE=$MITGCM_AD_OF          AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_oad
1694      fi      fi
1695  fi  fi
1696  if test "x${AD_OPTFILE}" != xNONE ; then  if test "x${AD_OPTFILE}" != xNONE ; then
# Line 2624  if test "x$OPENAD" != x ; then Line 2631  if test "x$OPENAD" != x ; then
2631      OAD_CB2M_FILES="/dev/null"      OAD_CB2M_FILES="/dev/null"
2632      OADTOOLS="$TOOLSDIR/OAD_support"      OADTOOLS="$TOOLSDIR/OAD_support"
2633      echo "  looking for dontCompile file:  "      echo "  looking for dontCompile file:  "
2634      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2635          if test -r $i"/dontCompile" ; then          if test -r $i"/dontCompile" ; then
2636              OAD_DONT_COMPILE=$i"/dontCompile"              OAD_DONT_COMPILE=$i"/dontCompile"
2637              echo "     found $OAD_DONT_COMPILE"              echo "     found $OAD_DONT_COMPILE"
# Line 2632  if test "x$OPENAD" != x ; then Line 2639  if test "x$OPENAD" != x ; then
2639          fi          fi
2640      done      done
2641      echo "  looking for dontTransform file:  "      echo "  looking for dontTransform file:  "
2642      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2643          if test -r $i"/dontTransform" ; then          if test -r $i"/dontTransform" ; then
2644              OAD_DONT_TRANSFORM=$i"/dontTransform"              OAD_DONT_TRANSFORM=$i"/dontTransform"
2645              echo "     found $OAD_DONT_TRANSFORM"              echo "     found $OAD_DONT_TRANSFORM"
# Line 2640  if test "x$OPENAD" != x ; then Line 2647  if test "x$OPENAD" != x ; then
2647          fi          fi
2648      done      done
2649      echo "  looking for keepOriginal file:  "      echo "  looking for keepOriginal file:  "
2650      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2651          if test -r $i"/keepOriginal" ; then          if test -r $i"/keepOriginal" ; then
2652              OAD_KEEP_ORIGINAL=$i"/keepOriginal"              OAD_KEEP_ORIGINAL=$i"/keepOriginal"
2653              echo "     found $OAD_KEEP_ORIGINAL"              echo "     found $OAD_KEEP_ORIGINAL"
# Line 2648  if test "x$OPENAD" != x ; then Line 2655  if test "x$OPENAD" != x ; then
2655          fi          fi
2656      done      done
2657      echo "  looking for cb2mFiles:  "      echo "  looking for cb2mFiles:  "
2658      for i in "." $MODS ; do      for i in "." $MODS $OADTOOLS ; do
2659          if test -r $i"/cb2mFiles" ; then          if test -r $i"/cb2mFiles" ; then
2660              OAD_CB2M_FILES=$i"/cb2mFiles"              OAD_CB2M_FILES=$i"/cb2mFiles"
2661              echo "     found $OAD_CB2M_FILES"              echo "     found $OAD_CB2M_FILES"
# Line 2964  links: \$(F77_SRC_FILES) \$(C_SRC_FILES) Line 2971  links: \$(F77_SRC_FILES) \$(C_SRC_FILES)
2971    
2972  small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES)  small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES)
2973    
 output.txt: \$(EXECUTABLE)  
         @printf 'running ... '  
         @\$(EXECUTABLE) > \$@  
   
2974  # remove most of the files that "make" generates  # remove most of the files that "make" generates
2975  clean:  clean:
2976          -rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template          -rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template
# Line 3246  if test "x$OPENAD" != x ; then Line 3249  if test "x$OPENAD" != x ; then
3249  # ============ begin OpenAD specific section ==============  # ============ begin OpenAD specific section ==============
3250    
3251  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
3252    # ... OpenAD ...
3253    
3254  # all the source files linked from the various locations:  # all the source files linked from the various locations:
3255  ALL_LINKED_FILES= \  ALL_LINKED_FILES= \
# Line 3299  rm -f $TMP.adSrcFiles Line 3303  rm -f $TMP.adSrcFiles
3303    
3304  cat >>$MAKEFILE <<EOF  cat >>$MAKEFILE <<EOF
3305    
3306  adAll: \$(EXE_AD)  adAll: ad_exe_target
3307  .PHONY: adAll  .PHONY: adAll
3308    
3309    ad_exe_target:
3310            @echo Update AD_CONFIG.h and make \$(EXE_AD)
3311            @$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Adjoint version" -bAD_CONFIG_H -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template
3312            @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h
3313            @-rm -f ad_config.template
3314            \$(MAKE) -f \$(MAKEFILE) \$(EXE_AD)
3315    
3316  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))
3317    
3318  .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 3370  AD_OBJ_FILES_S2=\$(AD_OBJ_FILES_S1) \$(N
3370  small_f: \$(CB2M_F90_PP_SRC_FILES)  small_f: \$(CB2M_F90_PP_SRC_FILES)
3371  .PHONY: small_f  .PHONY: small_f
3372    
 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) > \$@  
   
3373  ad_input_code.f$FS90:  \$(CB2M_AD_FILES)  ad_input_code.f$FS90:  \$(CB2M_AD_FILES)
3374          cat \$^ > \$@          cat \$^ > \$@
3375    

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

  ViewVC Help
Powered by ViewVC 1.1.22