--- MITgcm/tools/genmake2 2014/01/06 16:49:10 1.263 +++ MITgcm/tools/genmake2 2014/07/15 23:05:54 1.267 @@ -1,6 +1,6 @@ #! /usr/bin/env bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/genmake2,v 1.263 2014/01/06 16:49:10 jahn Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/genmake2,v 1.267 2014/07/15 23:05:54 heimbach Exp $ # $Name: $ # # Makefile generator for MITgcm UV codes @@ -19,9 +19,13 @@ -help | --help | -h | --h Print this help message and exit. + -oad | --oad + Generate a Makefile for an OpenAD built + -adoptfile NAME | --adoptfile NAME | -adof NAME | --adof NAME -adoptfile=NAME | --adoptfile=NAME | -adof=NAME | --adof=NAME Use "NAME" as the adoptfile. By default, the file at + "tools/adjoint_options/adjoint_oad" (for OpenAD built) or "tools/adjoint_options/adjoint_default" will be used. -nooptfile | --nooptfile @@ -1079,9 +1083,7 @@ } check_lapack_libs() { - if test ! "x$SKIP_LAPACK_CHECK" = x ; then - return - fi + if test "x$CHECK_FOR_LAPACK" = xf ; then return ; fi echo >> $LOGFILE echo "running: check_lapack_libs()" >> $LOGFILE cat < genmake_tla.F @@ -1277,8 +1279,8 @@ DEVEL= HAVE_TEST_L= -# comment this line out to enable lapack test -SKIP_LAPACK_CHECK=t +# set this to "t" to enable lapack test +CHECK_FOR_LAPACK=f # DEFINES checked by test compilation or command-line HAVE_SYSTEM= @@ -1325,6 +1327,7 @@ FS90= AUTODIFF_PKG_USED=f +OPENAD= AD_OPTFILE= TAF= AD_TAF_FLAGS= @@ -1355,7 +1358,7 @@ gm_s8="HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME HAVE_LAPACK HAVE_FLUSH" # The following are all related to adjoint/tangent-linear stuff -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" gm_s11="FTL_TAMC_FLAGS FTL_TAF_FLAGS SVD_TAMC_FLAGS SVD_TAF_FLAGS" gm_s12="TAF_EXTRA TAMC_EXTRA DIVA MPIINCLUDEDIR MPI_HEADER_FILES" @@ -1407,6 +1410,8 @@ -optfile=* | --optfile=* | -of=* | --of=*) OPTFILE=$ac_optarg ;; + -oad | --oad) + OPENAD="true" ;; -adoptfile | --adoptfile | -adof | --adof) ac_prev=AD_OPTFILE ;; -adoptfile=* | --adoptfile=* | -adof=* | --adof=*) @@ -1680,10 +1685,12 @@ echo " getting AD_OPTFILE information:" if test "x${AD_OPTFILE}" = x ; then - if test "x$MITGCM_AD_OF" = x ; then + if test "x$MITGCM_AD_OF" != x ; then + AD_OPTFILE=$MITGCM_AD_OF + elif test "x$OPENAD" = x ; then AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default else - AD_OPTFILE=$MITGCM_AD_OF + AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_oad fi fi if test "x${AD_OPTFILE}" != xNONE ; then @@ -2624,7 +2631,7 @@ OAD_CB2M_FILES="/dev/null" OADTOOLS="$TOOLSDIR/OAD_support" echo " looking for dontCompile file: " - for i in "." $MODS ; do + for i in "." $MODS $OADTOOLS ; do if test -r $i"/dontCompile" ; then OAD_DONT_COMPILE=$i"/dontCompile" echo " found $OAD_DONT_COMPILE" @@ -2632,7 +2639,7 @@ fi done echo " looking for dontTransform file: " - for i in "." $MODS ; do + for i in "." $MODS $OADTOOLS ; do if test -r $i"/dontTransform" ; then OAD_DONT_TRANSFORM=$i"/dontTransform" echo " found $OAD_DONT_TRANSFORM" @@ -2640,7 +2647,7 @@ fi done echo " looking for keepOriginal file: " - for i in "." $MODS ; do + for i in "." $MODS $OADTOOLS ; do if test -r $i"/keepOriginal" ; then OAD_KEEP_ORIGINAL=$i"/keepOriginal" echo " found $OAD_KEEP_ORIGINAL" @@ -2648,7 +2655,7 @@ fi done echo " looking for cb2mFiles: " - for i in "." $MODS ; do + for i in "." $MODS $OADTOOLS ; do if test -r $i"/cb2mFiles" ; then OAD_CB2M_FILES=$i"/cb2mFiles" echo " found $OAD_CB2M_FILES" @@ -2964,10 +2971,6 @@ small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES) -output.txt: \$(EXECUTABLE) - @printf 'running ... ' - @\$(EXECUTABLE) > \$@ - # remove most of the files that "make" generates clean: -rm -rf *.p *.$FS90 *.mod ${RMFILES} work.{pc,pcl} *.template @@ -3246,6 +3249,7 @@ # ============ begin OpenAD specific section ============== cat >>$MAKEFILE <>$MAKEFILE < ad_config.template + @cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h + @-rm -f ad_config.template + \$(MAKE) -f \$(MAKEFILE) \$(EXE_AD) + CB2M_F90_PP_SRC_FILES=\$(addsuffix _mod.f$FS90, \$(CB2M_F90_SRC_NAMES)) .PRECIOUS: \$(CB2M_F90_PP_SRC_FILES) \$(NON_AD_F77_SRC_FILES:.F=_cb2m.f$FS90) @@ -3359,13 +3370,6 @@ small_f: \$(CB2M_F90_PP_SRC_FILES) .PHONY: small_f -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) > \$@ - ad_input_code.f$FS90: \$(CB2M_AD_FILES) cat \$^ > \$@