/[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.262 by jmc, Thu Aug 22 20:49:59 2013 UTC revision 1.266 by jmc, Wed May 7 19:36:22 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" ;;
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 2356  EOF Line 2363  EOF
2363      fi      fi
2364  fi  fi
2365    
 #  Check for package RADTRANS: if LAPACK is not available,  
 #  then issue a warning that the direct radtrans solver is not available.  
 if test "x$HAVE_LAPACK" != xt ; then  
     echo " $PACKAGES " | grep ' radtrans ' > /dev/null 2>&1  
     RETVAL=$?  
     if test "x$RETVAL" = x0 ; then  
         cat <<EOF  
 *********************************************************************  
 WARNING: the "radtrans" package was enabled but tests failed to  
   compile LAPACK applications.  This means that the direct radtrans  
   solver is not available and compilation will fail if it is enabled.  
   If you want to use the direct solver, please check that:  
   
   1) LAPACK is correctly installed for this compiler and  
   2) the LIBS variable (within the "optfile") specifies the correct  
      LAPACK library to link against.  
 *********************************************************************  
 EOF  
     fi  
 fi  
   
2366  #  Make sure the openad package is enabled if using OpenAD  #  Make sure the openad package is enabled if using OpenAD
2367  if test "x$OPENAD" != x ; then  if test "x$OPENAD" != x ; then
2368      echo " $PACKAGES " | grep ' openad ' > /dev/null 2>&1      echo " $PACKAGES " | grep ' openad ' > /dev/null 2>&1
# Line 2985  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 3267  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 3320  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 3380  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.262  
changed lines
  Added in v.1.266

  ViewVC Help
Powered by ViewVC 1.1.22