--- MITgcm/tools/genmake2 2012/09/25 21:16:29 1.243 +++ MITgcm/tools/genmake2 2013/02/23 04:24:42 1.249 @@ -1,6 +1,6 @@ #! /usr/bin/env bash # -# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/genmake2,v 1.243 2012/09/25 21:16:29 utke Exp $ +# $Header: /home/ubuntu/mnt/e9_copy/MITgcm/tools/genmake2,v 1.249 2013/02/23 04:24:42 utke Exp $ # $Name: $ # # Makefile generator for MITgcm UV codes @@ -907,9 +907,9 @@ program fgennc #include "netcdf.inc" EOF - if test ! "x$MPI" = x ; then - echo '#include "mpif.h"' >> genmake_tnc.F - fi + #if test ! "x$MPI" = x ; then + # echo '#include "mpif.h"' >> genmake_tnc.F + #fi cat <> genmake_tnc.F integer iret, ncid, xid iret = nf_create('genmake_tnc.nc', NF_CLOBBER, ncid) @@ -1092,6 +1092,45 @@ echo " --> set HAVE_LAPACK='$HAVE_LAPACK'" >> $LOGFILE } +check_HAVE_FLUSH() { + if test ! "x$SKIP_CHECK_FLUSH" = x ; then + return + fi + echo >> $LOGFILE + echo "running: check_HAVE_FLUSH()" >> $LOGFILE + cat < genmake_tflsh.$FS + program fgenflsh + integer iounit + character*9 fname + iounit = 26 + fname = 'tmp.tflsh' + open(iounit,FILE=fname,STATUS='unknown') + write(iounit,*) 'genmake_tflsh: hello' + call flush(iounit) + close(iounit) + end +EOF + echo "=== genmake_tflsh.$FS >>>" > genmake_tflsh.log + cat genmake_tflsh.$FS >> genmake_tflsh.log + echo "<<< genmake_tflsh.$FS ===" >> genmake_tflsh.log + + echo "$FC $FFLAGS $FOPTIM -c genmake_tflsh.$FS \ " >> genmake_tflsh.log + echo " && $LINK $FFLAGS $FOPTIM -o genmake_tflsh.o $LIBS" >> genmake_tflsh.log + $FC $FFLAGS $FOPTIM -c genmake_tflsh.$FS >> genmake_tflsh.log 2>&1 \ + && $LINK $FFLAGS $FOPTIM -o genmake_tflsh genmake_tflsh.o $LIBS >> genmake_tflsh.log 2>&1 + RET_COMPILE=$? + + if test "x$RET_COMPILE" = x0 ; then + HAVE_FLUSH=t + #cat genmake_tflsh.log >> $LOGFILE + echo " check_HAVE_FLUSH: successful" >> $LOGFILE + else + HAVE_FLUSH=f + cat genmake_tflsh.log >> $LOGFILE + fi + rm -f genmake_tflsh* + echo " --> set HAVE_FLUSH='$HAVE_FLUSH'" >> $LOGFILE +} ############################################################################### # Sequential part of script starts here @@ -1149,6 +1188,9 @@ DEVEL= HAVE_TEST_L= +# comment this line out to enable lapack test +SKIP_LAPACK_CHECK=t + # DEFINES checked by test compilation or command-line HAVE_SYSTEM= HAVE_FDATE= @@ -1160,6 +1202,7 @@ HAVE_ETIME= IGNORE_TIME= HAVE_LAPACK= +HAVE_FLUSH= MODS= TOOLSDIR= @@ -1213,9 +1256,9 @@ # The following state is not directly set by command-line switches gm_s4="LN S64 LINK PACKAGES INCLUDES FFLAGS FOPTIM" gm_s5="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS" -gm_s6="TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK" -gm_s7="PWD THISHOST THISUSER THISDATE THISVER MACHINE" -gm_s8="FC_NAMEMANGLE HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME HAVE_LAPACK" +gm_s6="PWD TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK" +gm_s7="THISHOST THISUSER THISDATE THISVER MACHINE FC_NAMEMANGLE" +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" @@ -1659,6 +1702,8 @@ if test ! "x$MPI" = x ; then echo " Turning on MPI cpp macros" DEFINES="$DEFINES -DALLOW_USE_MPI" +#- To compile code older than checkpoint63s (2012/09/05), un-comment the following line: +# DEFINES="$DEFINES -DALWAYS_USE_MPI" fi if test ! "x$OMP" = x ; then echo " Add OMPFLAG and turn on OpenMP cpp macros" @@ -1883,8 +1928,17 @@ else echo "no" fi -DEFINES="$DEFINES $IGNORE_TIME" +printf " Can we call FLUSH intrinsic subroutine... " +check_HAVE_FLUSH +if test "x$HAVE_FLUSH" = xt ; then + DEFINES="$DEFINES -DHAVE_FLUSH" + echo "yes" +else + echo "no" +fi + +DEFINES="$DEFINES $IGNORE_TIME" if test "x$EMBED_SRC" = xt ; then build_embed_encode fi @@ -2715,6 +2769,9 @@ echo "EMBEDDED_FILES = " >>$MAKEFILE fi +# extract default cpp search path so we can pass it to makedepend +CPPINCLUDES=`cat /dev/null | $CPP -v 2>&1 | awk '/^End of search/{f=0}!/^\#/{if(f){printf " -I%s", $1;}}/^\#include "..." search start/{f=1}'` + cat >>$MAKEFILE <> \$(MAKEFILE) -rm -f makedepend.out @@ -2900,7 +2959,7 @@ ## This nullifies any default implicit rules concerning these two file types: ## %.o : %.F -# C preprocessing and replacing the _d in constants: +# C preprocessing and replacing the _d in constants: CPPCMD = cat \$< | ${CPP} \$(DEFINES) \$(INCLUDES) | ${S64} .F.$FS: @@ -3165,7 +3224,8 @@ OAD_active.F90 \ OAD_cp.F90 \ OAD_rev.F90 \ -OAD_tape.F90 +OAD_tape.F90 \ +revolve.F90 OPENAD_SUPPORT_C_SRC_FILES = \ iaddr.c \