601 |
|
|
602 |
-gsl | --gsl |
-gsl | --gsl |
603 |
Use GSL to control floating point rounding and precision |
Use GSL to control floating point rounding and precision |
604 |
|
-devel | --devel |
605 |
|
Add additional warning and debugging flags for development |
606 |
|
|
607 |
-mpi | --mpi |
-mpi | --mpi |
608 |
Include MPI header files and link to MPI libraries |
Include MPI header files and link to MPI libraries |
746 |
*curtim = *curtim/1.E6; |
*curtim = *curtim/1.E6; |
747 |
} |
} |
748 |
EOF |
EOF |
749 |
make genmake_tc_1.o >> genmake_warnings 2>&1 |
COMM="$CC $CFLAGS -c genmake_tc_1.c" |
750 |
|
echo $COMM >> genmake_warnings |
751 |
|
$COMM >> genmake_warnings 2>&1 |
752 |
RET_C=$? |
RET_C=$? |
753 |
cat <<EOF > genmake_tc_2.$FS |
cat <<EOF > genmake_tc_2.$FS |
754 |
program hello |
program hello |
758 |
print *," HELLO WORLD", wtime |
print *," HELLO WORLD", wtime |
759 |
end |
end |
760 |
EOF |
EOF |
761 |
$FC $FFLAGS -o genmake_tc genmake_tc_2.$FS genmake_tc_1.o >> genmake_warnings 2>&1 |
COMM="$FC $FFLAGS -o genmake_tc genmake_tc_2.$FS genmake_tc_1.o" |
762 |
|
echo $COMM >> genmake_warnings |
763 |
|
$COMM >> genmake_warnings 2>&1 |
764 |
RET_F=$? |
RET_F=$? |
765 |
test -x ./genmake_tc && ./genmake_tc >> genmake_warnings 2>&1 |
test -x ./genmake_tc && ./genmake_tc >> genmake_warnings 2>&1 |
766 |
RETVAL=$? |
RETVAL=$? |
807 |
return; |
return; |
808 |
} |
} |
809 |
EOF |
EOF |
810 |
make genmake_tc_1.o >> genmake_warnings 2>&1 |
COMM="$CC $CFLAGS -c genmake_tc_1.c" |
811 |
|
echo $COMM >> genmake_warnings |
812 |
|
$COMM >> genmake_warnings 2>&1 |
813 |
RET_C=$? |
RET_C=$? |
814 |
cat <<EOF > genmake_tc_2.$FS |
cat <<EOF > genmake_tc_2.$FS |
815 |
program hello |
program hello |
857 |
return; |
return; |
858 |
} |
} |
859 |
EOF |
EOF |
860 |
make genmake_tc_1.o >> genmake_warnings 2>&1 |
COMM="$CC $CFLAGS -c genmake_tc_1.c" |
861 |
|
echo $COMM >> genmake_warnings |
862 |
|
$COMM >> genmake_warnings 2>&1 |
863 |
RET_C=$? |
RET_C=$? |
864 |
cat <<EOF > genmake_tc_2.$FS |
cat <<EOF > genmake_tc_2.$FS |
865 |
program hello |
program hello |
903 |
*nbyte = -1; |
*nbyte = -1; |
904 |
} |
} |
905 |
EOF |
EOF |
906 |
make genmake_tc_1.o >> genmake_tc.log 2>&1 |
COMM="$CC $CFLAGS -c genmake_tc_1.c" |
907 |
|
echo $COMM >> genmake_warnings |
908 |
|
$COMM >> genmake_tc.log 2>&1 |
909 |
RET_C=$? |
RET_C=$? |
910 |
cat <<EOF > genmake_tc_2.$FS |
cat <<EOF > genmake_tc_2.$FS |
911 |
program hello |
program hello |
995 |
if test "x$RET_COMPILE" = x0 ; then |
if test "x$RET_COMPILE" = x0 ; then |
996 |
LIBS="$LIBS -lnetcdf" |
LIBS="$LIBS -lnetcdf" |
997 |
HAVE_NETCDF=t |
HAVE_NETCDF=t |
998 |
|
else |
999 |
|
# try again with "-lnetcdff" added to the libs |
1000 |
|
echo "try again with added '-lnetcdff -lnetcdf'" > genmake_tnc.log |
1001 |
|
echo "cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > genmake_tnc.$FS \ " >> genmake_tnc.log |
1002 |
|
echo " && $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS \ " >> genmake_tnc.log |
1003 |
|
echo " && $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS -lnetcdf" >> genmake_tnc.log |
1004 |
|
cat genmake_tnc.F | $CPP $DEFINES $INCLUDES > genmake_tnc.$FS 2>/dev/null \ |
1005 |
|
&& $FC $FFLAGS $FOPTIM -c genmake_tnc.$FS >> genmake_tnc.log 2>&1 \ |
1006 |
|
&& $LINK $FFLAGS $FOPTIM -o genmake_tnc genmake_tnc.o $LIBS -lnetcdff -lnetcdf >> genmake_tnc.log 2>&1 |
1007 |
|
RET_COMPILE=$? |
1008 |
|
cat genmake_tnc.log >> genmake_warnings |
1009 |
|
if test "x$RET_COMPILE" = x0 ; then |
1010 |
|
LIBS="$LIBS -lnetcdff -lnetcdf" |
1011 |
|
HAVE_NETCDF=t |
1012 |
|
fi |
1013 |
fi |
fi |
1014 |
fi |
fi |
1015 |
rm -f genmake_tnc* |
rm -f genmake_tnc* |
1045 |
INCLUDES="-I. $INCLUDES" |
INCLUDES="-I. $INCLUDES" |
1046 |
FFLAGS= |
FFLAGS= |
1047 |
FOPTIM= |
FOPTIM= |
1048 |
|
FEXTRAFLAGS= |
1049 |
CFLAGS= |
CFLAGS= |
1050 |
KFLAGS1= |
KFLAGS1= |
1051 |
KFLAGS2= |
KFLAGS2= |
1064 |
PCL= |
PCL= |
1065 |
HPMT= |
HPMT= |
1066 |
GSL= |
GSL= |
1067 |
|
DEVEL= |
1068 |
HAVE_TEST_L= |
HAVE_TEST_L= |
1069 |
|
|
1070 |
# DEFINES checked by test compilation or command-line |
# DEFINES checked by test compilation or command-line |
1123 |
|
|
1124 |
# The following state can be set directly by command-line switches |
# The following state can be set directly by command-line switches |
1125 |
gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE" |
gm_s1="OPTFILE PDEPEND PDEFAULT MAKEFILE PLATFORM ROOTDIR MODS DISABLE ENABLE" |
1126 |
gm_s2="FC CPP IEEE TS PAPIS PCLS PAPI PCL HPMT GSL MPI JAM DUMPSTATE STANDARDDIRS" |
gm_s2="FC CPP IEEE TS PAPIS PCLS PAPI PCL HPMT GSL DEVEL MPI JAM DUMPSTATE STANDARDDIRS" |
1127 |
|
|
1128 |
# The following state is not directly set by command-line switches |
# The following state is not directly set by command-line switches |
1129 |
gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPEND PDEPEND PDEFAULT INCLUDES FFLAGS FOPTIM " |
gm_s3="LN S64 KPP LINK PACKAGES MAKEDEPEND PDEPEND PDEFAULT INCLUDES FFLAGS FOPTIM FEXTRAFLAGS" |
1130 |
gm_s4="CFLAGS KFLAGS1 KFLAGS2 LIBS KPPFILES NOOPTFILES NOOPTFLAGS" |
gm_s4="CFLAGS KFLAGS1 KFLAGS2 LIBS KPPFILES NOOPTFILES NOOPTFLAGS" |
1131 |
gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD MAKE THISHOST THISUSER THISDATE THISVER MACHINE" |
gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD MAKE THISHOST THISUSER THISDATE THISVER MACHINE" |
1132 |
gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF" |
gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF" |
1153 |
|
|
1154 |
echo "=== Processing options files and arguments ===" |
echo "=== Processing options files and arguments ===" |
1155 |
gm_local="genmake_local" |
gm_local="genmake_local" |
|
for i in . $MODS ; do |
|
|
if test -r $i/$gm_local ; then |
|
|
. $i/$gm_local |
|
|
break |
|
|
fi |
|
|
done |
|
1156 |
printf " getting local config information: " |
printf " getting local config information: " |
1157 |
if test -f $gm_local ; then |
if test -f $gm_local ; then |
1158 |
echo "using $gm_local" |
echo "using $gm_local" |
1315 |
-gsl | --gsl) |
-gsl | --gsl) |
1316 |
GSL=true ;; |
GSL=true ;; |
1317 |
|
|
1318 |
|
-devel | --devel) |
1319 |
|
DEVEL=true ;; |
1320 |
|
|
1321 |
-mpi | --mpi) |
-mpi | --mpi) |
1322 |
MPI=true ;; |
MPI=true ;; |
1323 |
-mpi=* | --mpi=*) |
-mpi=* | --mpi=*) |
1366 |
if test -f ./.genmakerc ; then |
if test -f ./.genmakerc ; then |
1367 |
echo |
echo |
1368 |
echo "WARNING: genmake2 has detected a copy of the old-style \"./.genmakerc\"" |
echo "WARNING: genmake2 has detected a copy of the old-style \"./.genmakerc\"" |
1369 |
echo " file. This file format is no longer supported. Please see:" |
echo " file. This file format is no longer supported. For directions on" |
1370 |
echo |
echo " how to setup and use the new \"genmake2\" script, please see:" |
1371 |
echo " http://mitgcm.org/devel_HOWTO/" |
echo " http://mitgcm.org/devel_HOWTO/" |
1372 |
echo |
echo " and send an email to MITgcm-support@mitgcm.org if you need help." |
1373 |
echo " for directions on how to setup and use the new \"genmake2\" input" |
echo "WARNING: ignore \"./.genmakerc\" and continue." |
|
echo " files and send an email to MITgcm-support@mitgcm.org if you want help." |
|
1374 |
echo |
echo |
1375 |
fi |
fi |
1376 |
|
|
1567 |
else |
else |
1568 |
DEFINES="$DEFINES -DTIME_PER_TIMESTEP" |
DEFINES="$DEFINES -DTIME_PER_TIMESTEP" |
1569 |
fi |
fi |
1570 |
|
PACKAGES="$PACKAGES showflops" |
1571 |
fi |
fi |
1572 |
if test ! "x$PAPIS" = x ; then |
if test ! "x$PAPIS" = x ; then |
1573 |
echo " Turning on PAPI flop summary per timestep" |
echo " Turning on PAPI flop summary per timestep" |
1579 |
fi |
fi |
1580 |
INCLUDES="$INCLUDES $PAPIINC" |
INCLUDES="$INCLUDES $PAPIINC" |
1581 |
LIBS="$LIBS $PAPILIB" |
LIBS="$LIBS $PAPILIB" |
1582 |
|
PACKAGES="$PACKAGES showflops" |
1583 |
fi |
fi |
1584 |
if test ! "x$PCLS" = x ; then |
if test ! "x$PCLS" = x ; then |
1585 |
echo " Turning on PCL counter summary per timestep" |
echo " Turning on PCL counter summary per timestep" |
1591 |
fi |
fi |
1592 |
INCLUDES="$INCLUDES $PCLINC" |
INCLUDES="$INCLUDES $PCLINC" |
1593 |
LIBS="$LIBS $PCLLIB" |
LIBS="$LIBS $PCLLIB" |
1594 |
|
PACKAGES="$PACKAGES showflops" |
1595 |
fi |
fi |
1596 |
if test ! "x$PAPI" = x ; then |
if test ! "x$PAPI" = x ; then |
1597 |
if test ! "x$PAPIS" = x ; then |
if test ! "x$PAPIS" = x ; then |
1971 |
rm -f ./.tmp_pack |
rm -f ./.tmp_pack |
1972 |
echo " packages are: $PACKAGES" |
echo " packages are: $PACKAGES" |
1973 |
|
|
1974 |
# Check availability of NetCDF and then either build the MNC template |
# Check for package MNC: if NetCDF is available, then build the MNC |
1975 |
# files or delete mnc from the list of available packages. |
# template files ; otherwise, delete mnc from the list of packages. |
1976 |
echo $PACKAGES | grep ' mnc ' > /dev/null 2>&1 |
echo $PACKAGES | grep ' mnc ' > /dev/null 2>&1 |
1977 |
RETVAL=$? |
RETVAL=$? |
1978 |
if test "x$RETVAL" = x0 ; then |
if test "x$RETVAL" = x0 ; then |
2006 |
fi |
fi |
2007 |
fi |
fi |
2008 |
|
|
2009 |
|
# Check for package PROFILES: if NetCDF is not available, |
2010 |
|
# then delete profiles from the list of available packages. |
2011 |
|
echo $PACKAGES | grep ' profiles ' > /dev/null 2>&1 |
2012 |
|
RETVAL=$? |
2013 |
|
if test "x$RETVAL" = x0 ; then |
2014 |
|
if test "x$HAVE_NETCDF" != xt ; then |
2015 |
|
cat <<EOF |
2016 |
|
|
2017 |
|
********************************************************************* |
2018 |
|
WARNING: the "profiles" package was enabled but tests failed to |
2019 |
|
compile NetCDF applications. Please check that: |
2020 |
|
|
2021 |
|
1) NetCDF is correctly installed for this compiler and |
2022 |
|
2) the LIBS variable (within the "optfile") specifies the correct |
2023 |
|
NetCDF library to link against. |
2024 |
|
|
2025 |
|
Due to this failure, the "profiles" package is now DISABLED. |
2026 |
|
********************************************************************* |
2027 |
|
|
2028 |
|
EOF |
2029 |
|
PACKAGES=`echo $PACKAGES | sed -e 's/profiles//g'` |
2030 |
|
DISABLE="$DISABLE profiles" |
2031 |
|
fi |
2032 |
|
fi |
2033 |
|
|
2034 |
echo " applying package dependency rules" |
echo " applying package dependency rules" |
2035 |
ck= |
ck= |
2036 |
while test "x$ck" != xtt ; do |
while test "x$ck" != xtt ; do |
2037 |
i=0 |
i=0 |
2038 |
# rtot=${#PNAME[@]} |
# rtot=${#PNAME[@]} |
2039 |
rtot=$nname |
rtot=$nname |
2040 |
while test $i -lt $rtot ; do |
while test $i -le $rtot ; do |
2041 |
|
|
2042 |
# Is $pname in the current $PACKAGES list? |
# Is $pname in the current $PACKAGES list? |
2043 |
# pname=${PNAME[$i]} |
# pname=${PNAME[$i]} |
2071 |
|
|
2072 |
# Do we need to add $dname according to the dependency rules? |
# Do we need to add $dname according to the dependency rules? |
2073 |
if test "x$pin" = xt -a "x$plus" = "x+" -a "x$din" = xf ; then |
if test "x$pin" = xt -a "x$plus" = "x+" -a "x$din" = xf ; then |
2074 |
|
#echo " " $pname ": need to add :" $dname |
2075 |
in_dis="f" |
in_dis="f" |
2076 |
for dis in $DISABLE ; do |
for dis in $DISABLE ; do |
2077 |
if test "x$dis" = "x$dname" ; then |
if test "x$dis" = "x$dname" ; then |
2464 |
KFLAGS1 = ${KFLAGS1} |
KFLAGS1 = ${KFLAGS1} |
2465 |
KFLAGS2 = ${KFLAGS2} |
KFLAGS2 = ${KFLAGS2} |
2466 |
# Optim./debug for FC |
# Optim./debug for FC |
2467 |
FFLAGS = ${FFLAGS} |
FFLAGS = ${FFLAGS} ${FEXTRAFLAGS} |
2468 |
FOPTIM = ${FOPTIM} |
FOPTIM = ${FOPTIM} |
2469 |
# Optim./debug for FC |
# Optim./debug for FC |
2470 |
F90FLAGS = ${F90FLAGS} |
F90FLAGS = ${F90FLAGS} |
2531 |
@make cleanlinks |
@make cleanlinks |
2532 |
-rm -f \$(SPECIAL_FILES) |
-rm -f \$(SPECIAL_FILES) |
2533 |
-rm -f genmake_state genmake_*optfile genmake_warnings make.log run.log *.bak |
-rm -f genmake_state genmake_*optfile genmake_warnings make.log run.log *.bak |
2534 |
|
-rm -f taf_command taf_output taf_ad.log taf_ad_flow.log |
2535 |
CLEAN: |
CLEAN: |
2536 |
@make Clean |
@make Clean |
2537 |
-find \$(EXEDIR) -name "*.meta" -exec rm {} \; |
-find \$(EXEDIR) -name "*.meta" -exec rm {} \; |
2538 |
-find \$(EXEDIR) -name "*.data" -exec rm {} \; |
-find \$(EXEDIR) -name "*.data" -exec rm {} \; |
2539 |
-find \$(EXEDIR) -name "fort.*" -exec rm {} \; |
-find \$(EXEDIR) -name "fort.*" -exec rm {} \; |
2540 |
-rm -f \$(EXECUTABLE) \$(EXE_AD) *.txt STD* *diagnostics.log datetime |
-rm -f \$(EXECUTABLE) \$(EXE_AD) *.txt STD* *diagnostics.log datetime |
2541 |
|
-rm -f *_MIT_CE_000.opt0000 costfunction*0000 |
2542 |
-rm -rf mnc_test_* |
-rm -rf mnc_test_* |
2543 |
|
|
2544 |
#eh3 Makefile: makefile |
#eh3 Makefile: makefile |