--- MITgcm/tools/genmake2 2003/10/21 18:35:08 1.15 +++ MITgcm/tools/genmake2 2003/10/21 22:12:37 1.19 @@ -1,6 +1,6 @@ #!/bin/bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/genmake2,v 1.15 2003/10/21 18:35:08 edhill Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/genmake2,v 1.19 2003/10/21 22:12:37 edhill Exp $ # # Makefile generator for MITgcm UV codes # created by cnh 03/98 @@ -335,6 +335,17 @@ AUTODIFF_PKG_USED=f AD_OPTFILE= +TAF= +AD_TAF_FLAGS= +FTL_TAF_FLAGS= +SVD_TAF_FLAGS= +TAF_EXTRA= +TAMC= +AD_TAMC_FLAGS= +FTL_TAF_FLAGS= +SVD_TAMC_FLAGS= +TAMC_EXTRA= + # The following state can be set directly by command-line switches gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE NOOPT" @@ -347,11 +358,11 @@ gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF" # The following are all related to adjoint/tangent-linear stuff -gm_s7="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF DIFF_FLAGS AD_TAMC_FLAGS AD_TAF_FLAGS" +gm_s7="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS" gm_s8="FTL_TAMC_FLAGS FTL_TAF_FLAGS SVD_TAMC_FLAGS SVD_TAF_FLAGS" -gm_s9="" +gm_s9="TAF_EXTRA TAMC_EXTRA" -gm_state="COMMANDL $gm_s1 $gm_s2 $gm_s3 $gm_s4 $gm_s5 $gm_s6 $gm_s7 $gm_s8" +gm_state="COMMANDL $gm_s1 $gm_s2 $gm_s3 $gm_s4 $gm_s5 $gm_s6 $gm_s7 $gm_s8 $gm_s9" echo @@ -496,6 +507,16 @@ -ds | --ds) DUMPSTATE=t ;; + -taf_extra | --taf_extra) + ac_prev=TAF_EXTRA ;; + -taf_extra=* | --taf_extra=*) + TAF_EXTRA=$ac_optarg ;; + + -tamc_extra | --tamc_extra) + ac_prev=TAMC_EXTRA ;; + -tamc_extra=* | --tamc_extra=*) + TAMC_EXTRA=$ac_optarg ;; + -*) echo "Error: unrecognized option: "$ac_option usage @@ -1274,7 +1295,7 @@ -find \$(EXEDIR) -name "fort.*" -exec rm {} \; -rm -f \$(EXECUTABLE) output.txt -Makefile: makefile +#eh3 Makefile: makefile makefile: ${0} $@ cleanlinks: @@ -1304,6 +1325,9 @@ TAMC = ${TAMC} TAF = ${TAF} +TAF_EXTRA = ${TAF_EXTRA} +TAMC_EXTRA = ${TAMC_EXTRA} + EOF ad_vars="AD_TAMC_FLAGS AD_TAF_FLAGS" @@ -1329,35 +1353,49 @@ cat >>$MAKEFILE < ad_input_code.f - +# ... AD ... ad_taf_output.f: ad_input_code.f - \$(TAF) \$(AD_TAF_FLAGS) ad_input_code.f + \$(TAF) \$(AD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f 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 + \$(TAMC) \$(AD_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.f + cat ad_input_code_ad.f | sed -f adjoint_sed > ad_tamc_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 +# ... FTL ... +ftl_taf_output.f: ad_input_code.f + \$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f + cat ad_input_code_ad.f | sed -f adjoint_sed > ftl_taf_output.f + +ftl_taf: ftl_taf_output.o \$(OBJFILES) + \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_taf_output.o \$(LIBS) + +ftl_tamc_output.f: ad_input_code.f + \$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ad_input_code.f + cat ad_input_code_ad.f | sed -f adjoint_sed > ftl_tamc_output.f + +ftl_tamc: ftl_tamc_output.o \$(OBJFILES) + \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_tamc_output.o \$(LIBS) + -flt_taf: flt_taf_output.o \$(OBJFILES) - \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) flt_taf_output.o \$(LIBS) +# ... SVD ... +svd_taf_output.f: ad_input_code.f + \$(TAF) \$(SVD_TAF_FLAGS) \$(TAF_EXTRA) ad_input_code.f + cat ad_input_code_ad.f | sed -f adjoint_sed > svd_taf_output.f +svd_taf: svd_taf_output.o \$(OBJFILES) + \$(LINK) -o ${EXECUTABLE} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) svd_taf_output.o \$(LIBS) #=========================================