297 |
.F.$tfs: |
.F.$tfs: |
298 |
$LN \$< \$@ |
$LN \$< \$@ |
299 |
EOF |
EOF |
300 |
$MAKE "genmake_hello."$tfs > /dev/null 2>&1 |
$MAKE -f $MAKEFILE "genmake_hello."$tfs > /dev/null 2>&1 |
301 |
RETVAL=$? |
RETVAL=$? |
302 |
if test "x$RETVAL" != x0 -o ! -f "genmake_hello."$tfs ; then |
if test "x$RETVAL" != x0 -o ! -f "genmake_hello."$tfs ; then |
303 |
if test "x$FS" = x ; then |
if test "x$FS" = x ; then |
384 |
stop |
stop |
385 |
end |
end |
386 |
EOF |
EOF |
387 |
makedepend genmake_tc.f > /dev/null 2>&1 |
makedepend -f $MAKEFILE genmake_tc.f > /dev/null 2>&1 |
388 |
RV1=$? |
RV1=$? |
389 |
test -f $MAKEFILE && rm -f $MAKEFILE |
test -f $MAKEFILE && rm -f $MAKEFILE |
390 |
test -f $MAKEFILE".tst" && mv -f $MAKEFILE".tst" $MAKEFILE |
test -f $MAKEFILE".tst" && mv -f $MAKEFILE".tst" $MAKEFILE |
450 |
RETVAL=$? |
RETVAL=$? |
451 |
if test "x$RETVAL" = x0 ; then |
if test "x$RETVAL" = x0 ; then |
452 |
echo "OK" |
echo "OK" |
|
DEFINES="$DEFINES -DHAVE_EMBED_SRC" |
|
453 |
return 0 |
return 0 |
454 |
fi |
fi |
455 |
done |
done |
461 |
return 1 |
return 1 |
462 |
fi |
fi |
463 |
echo "OK" |
echo "OK" |
|
DEFINES="$DEFINES -DHAVE_EMBED_SRC" |
|
464 |
} |
} |
465 |
|
|
466 |
# look for possible C compilers |
# look for possible C compilers |
782 |
RETVAL=$? |
RETVAL=$? |
783 |
if test "x$RETVAL" = x0 ; then |
if test "x$RETVAL" = x0 ; then |
784 |
HAVE_CLOC=t |
HAVE_CLOC=t |
|
DEFINES="$DEFINES -DHAVE_CLOC" |
|
785 |
fi |
fi |
786 |
rm -f genmake_tc* |
rm -f genmake_tc* |
787 |
echo " --> set HAVE_CLOC='$HAVE_CLOC'" >> $LOGFILE |
echo " --> set HAVE_CLOC='$HAVE_CLOC'" >> $LOGFILE |
843 |
RETVAL=$? |
RETVAL=$? |
844 |
if test "x$RETVAL" = x0 ; then |
if test "x$RETVAL" = x0 ; then |
845 |
HAVE_SIGREG=t |
HAVE_SIGREG=t |
|
DEFINES="$DEFINES -DHAVE_SIGREG" |
|
846 |
fi |
fi |
847 |
rm -f genmake_tc* |
rm -f genmake_tc* |
848 |
echo " --> set HAVE_SIGREG='$HAVE_SIGREG'" >> $LOGFILE |
echo " --> set HAVE_SIGREG='$HAVE_SIGREG'" >> $LOGFILE |
849 |
} |
} |
850 |
|
|
851 |
check_HAVE_SETRLSTK() { |
check_HAVE_SETRLSTK() { |
|
if test "x$HAVE_SETRLSTK" = xt ; then |
|
|
DEFINES="$DEFINES -DHAVE_SETRLSTK" |
|
|
return |
|
|
fi |
|
852 |
if test ! "x$HAVE_SETRLSTK" = x ; then |
if test ! "x$HAVE_SETRLSTK" = x ; then |
853 |
return |
return |
854 |
fi |
fi |
886 |
RETVAL=$? |
RETVAL=$? |
887 |
if test "x$RETVAL" = x0 ; then |
if test "x$RETVAL" = x0 ; then |
888 |
HAVE_SETRLSTK=t |
HAVE_SETRLSTK=t |
|
DEFINES="$DEFINES -DHAVE_SETRLSTK" |
|
889 |
fi |
fi |
890 |
rm -f genmake_tc* |
rm -f genmake_tc* |
891 |
echo " --> set HAVE_SETRLSTK='$HAVE_SETRLSTK'" >> $LOGFILE |
echo " --> set HAVE_SETRLSTK='$HAVE_SETRLSTK'" >> $LOGFILE |
932 |
RETVAL=$? |
RETVAL=$? |
933 |
if test "x$RETVAL" = x0 ; then |
if test "x$RETVAL" = x0 ; then |
934 |
HAVE_STAT=t |
HAVE_STAT=t |
|
DEFINES="$DEFINES -DHAVE_STAT" |
|
935 |
fi |
fi |
936 |
rm -f genmake_tc* |
rm -f genmake_tc* |
937 |
echo " --> set HAVE_STAT='$HAVE_STAT'" >> $LOGFILE |
echo " --> set HAVE_STAT='$HAVE_STAT'" >> $LOGFILE |
1029 |
echo " --> set HAVE_NETCDF='$HAVE_NETCDF'" >> $LOGFILE |
echo " --> set HAVE_NETCDF='$HAVE_NETCDF'" >> $LOGFILE |
1030 |
} |
} |
1031 |
|
|
1032 |
|
check_lapack_libs() { |
1033 |
|
if test ! "x$SKIP_LAPACK_CHECK" = x ; then |
1034 |
|
return |
1035 |
|
fi |
1036 |
|
echo >> $LOGFILE |
1037 |
|
echo "running: check_lapack_libs()" >> $LOGFILE |
1038 |
|
cat <<EOF > genmake_tla.F |
1039 |
|
program fgenla |
1040 |
|
integer info |
1041 |
|
integer ipiv( 2 ) |
1042 |
|
double precision ab( 4, 2 ), b( 2 ) |
1043 |
|
data ab / 0., 0., 1., 2., 0., 2., 1., 0. / |
1044 |
|
data b / 1., 1. / |
1045 |
|
call dgbsv( 2, 1, 1, 1, ab, 4, ipiv, b, 2, info ) |
1046 |
|
IF (info .NE. 0) write(*,*) 'Error:', info |
1047 |
|
write(*,*) b |
1048 |
|
end |
1049 |
|
EOF |
1050 |
|
echo "=== genmake_tla.F >>>" > genmake_tla.log |
1051 |
|
cat genmake_tla.F >> genmake_tla.log |
1052 |
|
echo "<<< genmake_tla.F ===" >> genmake_tla.log |
1053 |
|
RET_CPP=f |
1054 |
|
COMM="cat genmake_tla.F | $CPP $DEFINES $INCLUDES" |
1055 |
|
echo "$COMM" >> genmake_tla.log |
1056 |
|
eval $COMM > genmake_tla.$FS 2>/dev/null && RET_CPP=t |
1057 |
|
if test "x$RET_CPP" = xf ; then |
1058 |
|
echo " WARNING: CPP failed to pre-process the lapack test." \ |
1059 |
|
>> genmake_tla.log |
1060 |
|
echo " Please check that \$INCLUDES is properly set." \ |
1061 |
|
>> genmake_tla.log |
1062 |
|
fi |
1063 |
|
echo "$FC $FFLAGS $FOPTIM -c genmake_tla.$FS \ " >> genmake_tla.log |
1064 |
|
echo " && $LINK $FFLAGS $FOPTIM -o genmake_tla.o $LIBS" >> genmake_tla.log |
1065 |
|
$FC $FFLAGS $FOPTIM -c genmake_tla.$FS >> genmake_tla.log 2>&1 \ |
1066 |
|
&& $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS >> genmake_tla.log 2>&1 |
1067 |
|
RET_COMPILE=$? |
1068 |
|
cat genmake_tla.log >> $LOGFILE |
1069 |
|
|
1070 |
|
# test program execution not always possible (see check_netcdf_libs) |
1071 |
|
# |
1072 |
|
#test -x ./genmake_tla && ./genmake_tla >> genmake_tla.log 2>&1 |
1073 |
|
#RETVAL=$? |
1074 |
|
#if test "x$RET_COMPILE" = x0 -a "x$RETVAL" = x0 ; then |
1075 |
|
|
1076 |
|
if test "x$RET_COMPILE" = x0 ; then |
1077 |
|
HAVE_LAPACK=t |
1078 |
|
echo "check_lapack: successful" >> $LOGFILE |
1079 |
|
else |
1080 |
|
# try again with "-llapack" added to the libs |
1081 |
|
echo "==> try again with added '-llapack'" > genmake_tla.log |
1082 |
|
echo "cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS \ " >> genmake_tla.log |
1083 |
|
echo " && $FC $FFLAGS $FOPTIM -c genmake_tla.$FS \ " >> genmake_tla.log |
1084 |
|
echo " && $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack" >> genmake_tla.log |
1085 |
|
cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS 2>/dev/null \ |
1086 |
|
&& $FC $FFLAGS $FOPTIM -c genmake_tla.$FS >> genmake_tla.log 2>&1 \ |
1087 |
|
&& $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack >> genmake_tla.log 2>&1 |
1088 |
|
RET_COMPILE=$? |
1089 |
|
echo >> $LOGFILE |
1090 |
|
cat genmake_tla.log >> $LOGFILE |
1091 |
|
if test "x$RET_COMPILE" = x0 ; then |
1092 |
|
LIBS="$LIBS -llapack" |
1093 |
|
HAVE_LAPACK=t |
1094 |
|
echo "check_lapack: successful" >> $LOGFILE |
1095 |
|
else |
1096 |
|
# try again with "-lf77blas -lcblas" added to the libs |
1097 |
|
echo "==> try again with added '-llapack -lf77blas -lcblas'" > genmake_tla.log |
1098 |
|
echo "cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS \ " >> genmake_tla.log |
1099 |
|
echo " && $FC $FFLAGS $FOPTIM -c genmake_tla.$FS \ " >> genmake_tla.log |
1100 |
|
echo " && $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack -lf77blas -lcblas" >> genmake_tla.log |
1101 |
|
cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS 2>/dev/null \ |
1102 |
|
&& $FC $FFLAGS $FOPTIM -c genmake_tla.$FS >> genmake_tla.log 2>&1 \ |
1103 |
|
&& $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack -lf77blas -lcblas >> genmake_tla.log 2>&1 |
1104 |
|
RET_COMPILE=$? |
1105 |
|
echo >> $LOGFILE |
1106 |
|
cat genmake_tla.log >> $LOGFILE |
1107 |
|
if test "x$RET_COMPILE" = x0 ; then |
1108 |
|
LIBS="$LIBS -llapack -lf77blas -lcblas" |
1109 |
|
HAVE_LAPACK=t |
1110 |
|
echo "check_lapack: successful" >> $LOGFILE |
1111 |
|
else |
1112 |
|
# try again with "-latlas" added to the libs |
1113 |
|
echo "==> try again with added '-llapack -lf77blas -lcblas -latlas'" > genmake_tla.log |
1114 |
|
echo "cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS \ " >> genmake_tla.log |
1115 |
|
echo " && $FC $FFLAGS $FOPTIM -c genmake_tla.$FS \ " >> genmake_tla.log |
1116 |
|
echo " && $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack -lf77blas -lcblas -latlas" >> genmake_tla.log |
1117 |
|
cat genmake_tla.F | $CPP $DEFINES $INCLUDES > genmake_tla.$FS 2>/dev/null \ |
1118 |
|
&& $FC $FFLAGS $FOPTIM -c genmake_tla.$FS >> genmake_tla.log 2>&1 \ |
1119 |
|
&& $LINK $FFLAGS $FOPTIM -o genmake_tla genmake_tla.o $LIBS -llapack -lf77blas -lcblas -latlas >> genmake_tla.log 2>&1 |
1120 |
|
RET_COMPILE=$? |
1121 |
|
echo >> $LOGFILE |
1122 |
|
cat genmake_tla.log >> $LOGFILE |
1123 |
|
if test "x$RET_COMPILE" = x0 ; then |
1124 |
|
LIBS="$LIBS -llapack -lf77blas -lcblas -latlas" |
1125 |
|
HAVE_LAPACK=t |
1126 |
|
echo "check_lapack: successful" >> $LOGFILE |
1127 |
|
fi |
1128 |
|
fi |
1129 |
|
fi |
1130 |
|
fi |
1131 |
|
rm -f genmake_tla* |
1132 |
|
echo " --> set HAVE_LAPACK='$HAVE_LAPACK'" >> $LOGFILE |
1133 |
|
} |
1134 |
|
|
1135 |
|
|
1136 |
############################################################################### |
############################################################################### |
1137 |
# Sequential part of script starts here |
# Sequential part of script starts here |
1199 |
HAVE_NETCDF= |
HAVE_NETCDF= |
1200 |
HAVE_ETIME= |
HAVE_ETIME= |
1201 |
IGNORE_TIME= |
IGNORE_TIME= |
1202 |
|
HAVE_LAPACK= |
1203 |
|
|
1204 |
MODS= |
MODS= |
1205 |
TOOLSDIR= |
TOOLSDIR= |
1222 |
EXECUTABLE= |
EXECUTABLE= |
1223 |
EXEHOOK= |
EXEHOOK= |
1224 |
EXEDIR= |
EXEDIR= |
|
PACKAGES_CONF= |
|
1225 |
IEEE= |
IEEE= |
1226 |
if test "x$MITGCM_IEEE" != x ; then |
if test "x$MITGCM_IEEE" != x ; then |
1227 |
IEEE=$MITGCM_IEEE |
IEEE=$MITGCM_IEEE |
1243 |
TAMC_EXTRA= |
TAMC_EXTRA= |
1244 |
|
|
1245 |
# The following state can be set directly by command-line switches |
# The following state can be set directly by command-line switches |
1246 |
gm_s1="OPTFILE PKG_DEPEND PKG_GROUPS MAKEFILE MAKEDEPEND PLATFORM ROOTDIR MODS DISABLE ENABLE" |
gm_s1="OPTFILE PKG_DEPEND PKG_GROUPS DISABLE ENABLE MAKEFILE MAKEDEPEND PLATFORM" |
1247 |
gm_s2="FC CC USE_R4 TS PAPIS PCLS PAPI PCL HPMT IEEE DEVEL GSL MPI OMP DUMPSTATE STANDARDDIRS" |
gm_s2="FC CC MPI OMP USE_R4 TS PAPIS PCLS PAPI PCL HPMT IEEE DEVEL GSL FEXTRAFLAGS" |
1248 |
|
gm_s3="ROOTDIR STANDARDDIRS MODS DUMPSTATE" |
1249 |
|
|
1250 |
# The following state is not directly set by command-line switches |
# The following state is not directly set by command-line switches |
1251 |
gm_s3="LN S64 LINK MAKE PACKAGES INCLUDES FFLAGS FOPTIM FEXTRAFLAGS" |
gm_s4="LN S64 LINK MAKE PACKAGES INCLUDES FFLAGS FOPTIM" |
1252 |
gm_s4="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS" |
gm_s5="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS" |
1253 |
gm_s5="TOOLSDIR SOURCEDIRS INCLUDEDIRS PWD THISHOST THISUSER THISDATE THISVER MACHINE" |
gm_s6="TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK" |
1254 |
gm_s6="EXECUTABLE EXEHOOK EXEDIR PACKAGES_CONF" |
gm_s7="PWD THISHOST THISUSER THISDATE THISVER MACHINE" |
1255 |
gm_s7="FC_NAMEMANGLE HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME" |
gm_s8="FC_NAMEMANGLE HAVE_NETCDF HAVE_SYSTEM HAVE_FDATE HAVE_ETIME HAVE_LAPACK" |
1256 |
|
|
1257 |
# The following are all related to adjoint/tangent-linear stuff |
# The following are all related to adjoint/tangent-linear stuff |
1258 |
gm_s10="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS" |
gm_s10="AUTODIFF_PKG_USED AD_OPTFILE TAMC TAF AD_TAMC_FLAGS AD_TAF_FLAGS" |
1259 |
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" |
1260 |
gm_s12="TAF_EXTRA TAMC_EXTRA" |
gm_s12="TAF_EXTRA TAMC_EXTRA" |
1261 |
|
|
1262 |
gm_state="COMMANDL $gm_s1 $gm_s2 $gm_s3 $gm_s4 $gm_s5 $gm_s6 $gm_s7" |
gm_state="COMMANDL $gm_s1 $gm_s2 $gm_s3 $gm_s4 $gm_s5 $gm_s6 $gm_s7 $gm_s8" |
1263 |
gm_state="$gm_state $gm_s10 $gm_s11 $gm_s12" |
gm_state="$gm_state $gm_s10 $gm_s11 $gm_s12" |
1264 |
|
|
1265 |
cat <<EOF |
cat <<EOF |
1451 |
-ds | --ds) |
-ds | --ds) |
1452 |
DUMPSTATE=t ;; |
DUMPSTATE=t ;; |
1453 |
|
|
1454 |
|
-extra_flag | --extra_flag) |
1455 |
|
ac_prev=FEXTRAFLAGS ;; |
1456 |
|
-extra_flag=* | --extra_flag=*) |
1457 |
|
FEXTRAFLAGS=$ac_optarg ;; |
1458 |
|
|
1459 |
-taf_extra | --taf_extra) |
-taf_extra | --taf_extra) |
1460 |
ac_prev=TAF_EXTRA ;; |
ac_prev=TAF_EXTRA ;; |
1461 |
-taf_extra=* | --taf_extra=*) |
-taf_extra=* | --taf_extra=*) |
1539 |
MAKEFILE="Makefile" |
MAKEFILE="Makefile" |
1540 |
fi |
fi |
1541 |
|
|
1542 |
echo " getting OPTFILE information: " |
echo " getting OPTFILE information:" |
1543 |
if test "x${OPTFILE}" = x ; then |
if test "x${OPTFILE}" = x ; then |
1544 |
if test "x$MITGCM_OF" = x ; then |
if test "x$MITGCM_OF" = x ; then |
1545 |
echo "Warning: no OPTFILE specified so we'll look for possible settings" |
echo "Warning: no OPTFILE specified so we'll look for possible settings" |
1568 |
fi |
fi |
1569 |
fi |
fi |
1570 |
|
|
1571 |
echo " getting AD_OPTFILE information: " |
echo " getting AD_OPTFILE information:" |
1572 |
if test "x${AD_OPTFILE}" = x ; then |
if test "x${AD_OPTFILE}" = x ; then |
1573 |
if test "x$MITGCM_AD_OF" = x ; then |
if test "x$MITGCM_AD_OF" = x ; then |
1574 |
AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default |
AD_OPTFILE=$ROOTDIR/tools/adjoint_options/adjoint_default |
1616 |
fi |
fi |
1617 |
if test "x$GET_FC_VERSION" != x ; then |
if test "x$GET_FC_VERSION" != x ; then |
1618 |
echo "Get compiler version using: $FC $GET_FC_VERSION" >> $LOGFILE |
echo "Get compiler version using: $FC $GET_FC_VERSION" >> $LOGFILE |
1619 |
$FC $GET_FC_VERSION >> $LOGFILE 2>&1 |
ff=`echo $FC | sed 's/ .*//'` ; xx=`echo $ff | sed 's/^./& /' | sed 's/ .*//'` |
1620 |
|
if test $xx != '/' ; then which $ff >> $LOGFILE ; fi |
1621 |
|
$FC $GET_FC_VERSION > genmake_fc_vers1 2> genmake_fc_vers2 |
1622 |
|
if test -s genmake_fc_vers1 ; then |
1623 |
|
cat genmake_fc_vers1 >> $LOGFILE |
1624 |
|
else |
1625 |
|
cat genmake_fc_vers2 >> $LOGFILE |
1626 |
|
fi |
1627 |
echo "<-- compiler version ----" >> $LOGFILE |
echo "<-- compiler version ----" >> $LOGFILE |
1628 |
|
rm -f genmake_fc_vers1 genmake_fc_vers2 |
1629 |
fi |
fi |
1630 |
|
|
1631 |
if test "x$CC" = x ; then |
if test "x$CC" = x ; then |
1862 |
printf " Can we call simple C routines (here, \"cloc()\") using $FC... " |
printf " Can we call simple C routines (here, \"cloc()\") using $FC... " |
1863 |
check_HAVE_CLOC |
check_HAVE_CLOC |
1864 |
if test "x$HAVE_CLOC" != x ; then |
if test "x$HAVE_CLOC" != x ; then |
1865 |
|
DEFINES="$DEFINES -DHAVE_CLOC" |
1866 |
echo "yes" |
echo "yes" |
1867 |
else |
else |
1868 |
echo "no" |
echo "no" |
1877 |
printf " Can we unlimit the stack size using $FC... " |
printf " Can we unlimit the stack size using $FC... " |
1878 |
check_HAVE_SETRLSTK |
check_HAVE_SETRLSTK |
1879 |
if test "x$HAVE_SETRLSTK" = xt ; then |
if test "x$HAVE_SETRLSTK" = xt ; then |
1880 |
|
DEFINES="$DEFINES -DHAVE_SETRLSTK" |
1881 |
echo "yes" |
echo "yes" |
1882 |
else |
else |
1883 |
echo "no" |
echo "no" |
1887 |
printf " Can we register a signal handler using $FC... " |
printf " Can we register a signal handler using $FC... " |
1888 |
check_HAVE_SIGREG |
check_HAVE_SIGREG |
1889 |
if test "x$HAVE_SIGREG" = xt ; then |
if test "x$HAVE_SIGREG" = xt ; then |
1890 |
|
DEFINES="$DEFINES -DHAVE_SIGREG" |
1891 |
echo "yes" |
echo "yes" |
1892 |
else |
else |
1893 |
echo "no" |
echo "no" |
1897 |
printf " Can we use stat() through C calls... " |
printf " Can we use stat() through C calls... " |
1898 |
check_HAVE_STAT |
check_HAVE_STAT |
1899 |
if test "x$HAVE_STAT" != x ; then |
if test "x$HAVE_STAT" != x ; then |
1900 |
|
DEFINES="$DEFINES -DHAVE_STAT" |
1901 |
echo "yes" |
echo "yes" |
1902 |
else |
else |
1903 |
echo "no" |
echo "no" |
1907 |
printf " Can we create NetCDF-enabled binaries... " |
printf " Can we create NetCDF-enabled binaries... " |
1908 |
check_netcdf_libs |
check_netcdf_libs |
1909 |
if test "x$HAVE_NETCDF" != x ; then |
if test "x$HAVE_NETCDF" != x ; then |
1910 |
|
DEFINES="$DEFINES -DHAVE_NETCDF" |
1911 |
|
echo "yes" |
1912 |
|
else |
1913 |
|
echo "no" |
1914 |
|
fi |
1915 |
|
|
1916 |
|
printf " Can we create LAPACK-enabled binaries... " |
1917 |
|
check_lapack_libs |
1918 |
|
if test "x$HAVE_LAPACK" != x ; then |
1919 |
|
DEFINES="$DEFINES -DHAVE_LAPACK" |
1920 |
echo "yes" |
echo "yes" |
1921 |
else |
else |
1922 |
echo "no" |
echo "no" |
1928 |
fi |
fi |
1929 |
if test "x$EMBED_SRC" = xt ; then |
if test "x$EMBED_SRC" = xt ; then |
1930 |
ENABLE="$ENABLE embed_files" |
ENABLE="$ENABLE embed_files" |
1931 |
|
# DEFINES="$DEFINES -DHAVE_EMBED_SRC" |
1932 |
fi |
fi |
1933 |
|
|
1934 |
printf "\n=== Setting defaults ===\n" |
printf "\n=== Setting defaults ===\n" |
2234 |
fi |
fi |
2235 |
fi |
fi |
2236 |
|
|
2237 |
|
# Check for package RADTRANS: if LAPACK is not available, |
2238 |
|
# then issue a warning that the direct radtrans solver is not available. |
2239 |
|
if test "x$HAVE_LAPACK" != xt ; then |
2240 |
|
echo " $PACKAGES " | grep ' radtrans ' > /dev/null 2>&1 |
2241 |
|
RETVAL=$? |
2242 |
|
if test "x$RETVAL" = x0 ; then |
2243 |
|
cat <<EOF |
2244 |
|
********************************************************************* |
2245 |
|
WARNING: the "radtrans" package was enabled but tests failed to |
2246 |
|
compile LAPACK applications. This means that the direct radtrans |
2247 |
|
solver is not available and compilation will fail if it is enabled. |
2248 |
|
If you want to use the direct solver, please check that: |
2249 |
|
|
2250 |
|
1) LAPACK is correctly installed for this compiler and |
2251 |
|
2) the LIBS variable (within the "optfile") specifies the correct |
2252 |
|
LAPACK library to link against. |
2253 |
|
********************************************************************* |
2254 |
|
EOF |
2255 |
|
fi |
2256 |
|
fi |
2257 |
|
|
2258 |
if test "x${PKG_DEPEND}" != x ; then |
if test "x${PKG_DEPEND}" != x ; then |
2259 |
echo " applying package dependency rules" |
echo " applying package dependency rules" |
2260 |
ck= |
ck= |
2788 |
NOOPTFLAGS = ${NOOPTFLAGS} |
NOOPTFLAGS = ${NOOPTFLAGS} |
2789 |
# Flags and libraries needed for linking |
# Flags and libraries needed for linking |
2790 |
LIBS = ${LIBS} |
LIBS = ${LIBS} |
2791 |
# Name of the Mekfile |
# Name of the makefile |
2792 |
MAKEFILE=${MAKEFILE} |
MAKEFILE=${MAKEFILE} |
2793 |
|
|
2794 |
EOF |
EOF |
2824 |
\$(EXECUTABLE): \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(OBJFILES) \$(EMBEDDED_FILES) |
\$(EXECUTABLE): \$(SPECIAL_FILES) \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(OBJFILES) \$(EMBEDDED_FILES) |
2825 |
@echo Creating \$@ ... |
@echo Creating \$@ ... |
2826 |
\$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS) |
\$(LINK) -o \$@ \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) \$(LIBS) |
2827 |
|
|
2828 |
depend: |
depend: |
2829 |
@make links |
@make -f \$(MAKEFILE) links |
2830 |
\$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES) |
\$(MAKEDEPEND) -f \$(MAKEFILE) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES) |
2831 |
\$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE) |
\$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE) |
2832 |
-rm -f makedepend.out |
-rm -f makedepend.out |
2833 |
|
|
2837 |
ar rcv libmitgcmuv.a \$(OBJFILES) |
ar rcv libmitgcmuv.a \$(OBJFILES) |
2838 |
ar d libmitgcmuv.a main.o |
ar d libmitgcmuv.a main.o |
2839 |
|
|
2840 |
|
obj: \$(OBJFILES) |
2841 |
|
|
2842 |
links: \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(SPECIAL_FILES) |
links: \$(F77_SRC_FILES) \$(C_SRC_FILES) \$(H_SRC_FILES) \$(F90_SRC_FILES) \$(SPECIAL_FILES) |
2843 |
|
|
2844 |
small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES) |
small_f: \$(F77_PP_SRC_FILES) \$(F90_PP_SRC_FILES) |
2856 |
|
|
2857 |
# remove most of the files that "make" and "make depend" generate |
# remove most of the files that "make" and "make depend" generate |
2858 |
Clean: |
Clean: |
2859 |
@make clean |
@make -f \$(MAKEFILE) clean |
2860 |
@make cleanlinks |
@make -f \$(MAKEFILE) cleanlinks |
2861 |
-rm -f \$(SPECIAL_FILES) f90mkdepend.log $MAKEFILE.old |
-rm -f \$(SPECIAL_FILES) f90mkdepend.log $MAKEFILE.old |
2862 |
-rm -f taf_command taf_output taf_ad.log taf_ad_flow.log |
-rm -f taf_command taf_output taf_ad.log taf_ad_flow.log taf_ftl.log |
2863 |
-rm -f genmake_warnings genmake_errors make.log |
-rm -f genmake_warnings genmake_errors make.log |
2864 |
|
|
2865 |
# remove also the executable, files that "genmake2" generates (except Makefile) |
# remove also the executable, files that "genmake2" generates (except Makefile) |
2866 |
# and output from a run (plus log files from testreport) |
# and output from a run (plus log files from testreport) |
2867 |
CLEAN: |
CLEAN: |
2868 |
@make Clean |
@make -f \$(MAKEFILE) Clean |
2869 |
-rm -f \$(EXECUTABLE) \$(EXE_AD) *.bak |
-rm -f \$(EXECUTABLE) \$(EXE_AD) \$(EXE_FTL) *.bak |
2870 |
-rm -f $LOGFILE genmake_state genmake_*optfile |
-rm -f $LOGFILE genmake_state genmake_*optfile |
2871 |
-rm -f SIZE.h.mpi genmake.tr_log make.tr_log |
-rm -f SIZE.h.mpi genmake.tr_log make.tr_log |
2872 |
-find \$(EXEDIR) -name "*.meta" -exec rm {} \; |
-find \$(EXEDIR) -name "*.meta" -exec rm {} \; |
2887 |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" \$(DISABLED_PACKAGES) " " "Enabled packages:" \$(ENABLED_PACKAGES) > \$@ |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bPACKAGES_CONFIG_H "Disabled packages:" \$(DISABLED_PACKAGES) " " "Enabled packages:" \$(ENABLED_PACKAGES) > \$@ |
2888 |
AD_CONFIG.h: |
AD_CONFIG.h: |
2889 |
@echo Creating \$@ ... |
@echo Creating \$@ ... |
2890 |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > \$@ |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -bAD_CONFIG_H -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > \$@ |
2891 |
FC_NAMEMANGLE.h: |
FC_NAMEMANGLE.h: |
2892 |
@echo Creating \$@ ... |
@echo Creating \$@ ... |
2893 |
echo "$FC_NAMEMANGLE" > \$@ |
echo "$FC_NAMEMANGLE" > \$@ |
3001 |
adtamc: ad_tamc_output.$FS |
adtamc: ad_tamc_output.$FS |
3002 |
|
|
3003 |
ad_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES) \$(AD_FLOW_FILES) |
ad_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES) \$(AD_FLOW_FILES) |
3004 |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ad_config.template |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -DALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > ad_config.template |
3005 |
cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h |
cmp ad_config.template AD_CONFIG.h || cat ad_config.template > AD_CONFIG.h |
3006 |
-rm -f ad_config.template |
-rm -f ad_config.template |
3007 |
@make \$(F77_PP_SRC_FILES) |
@make -f \$(MAKEFILE) \$(F77_PP_SRC_FILES) |
3008 |
@make \$(FLOFILES) |
@make -f \$(MAKEFILE) \$(FLOFILES) |
3009 |
cat \$(FLOFILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ad_input_code.$FS |
cat \$(FLOFILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ad_input_code.$FS |
3010 |
|
|
3011 |
ad_taf_output.$FS: ad_input_code.$FS |
ad_taf_output.$FS: ad_input_code.$FS |
3034 |
adtrick: |
adtrick: |
3035 |
patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff |
patch < \$(TOOLSDIR)/ad_taf_output.f.adtrick.diff |
3036 |
|
|
3037 |
|
adobj: ad_taf_output.o \$(OBJFILES) |
3038 |
|
|
3039 |
# ... FTL ... |
# ... FTL ... |
3040 |
ftlall: ftl_taf |
ftlall: \$(EXE_FTL) |
3041 |
ftltaf: ftl_taf_output.$FS |
ftltaf: ftl_taf_output.$FS |
3042 |
ftltamc: ftl_tamc_output.$FS |
ftltamc: ftl_tamc_output.$FS |
3043 |
|
|
3044 |
ftl_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES) |
ftl_input_code.$FS: \$(AD_FILES) \$(H_SRC_FILES) |
3045 |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ftl_config.template |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ftl_config.template |
3046 |
cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h |
cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h |
3047 |
-rm -f ftl_config.template |
-rm -f ftl_config.template |
3048 |
@make \$(F77_PP_SRC_FILES) |
@make -f \$(MAKEFILE) \$(F77_PP_SRC_FILES) |
3049 |
@make \$(AD_FLOW_FILES) |
@make -f \$(MAKEFILE) \$(AD_FLOW_FILES) |
3050 |
cat \$(AD_FLOW_FILES) \$(AD_FILES) > ftl_input_code.$FS |
cat \$(AD_FLOW_FILES) \$(AD_FILES) | sed -f \$(TOOLSDIR)/remove_comments_sed > ftl_input_code.$FS |
3051 |
|
|
3052 |
ftl_taf_output.$FS: ftl_input_code.$FS |
ftl_taf_output.$FS: ftl_input_code.$FS |
3053 |
\$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS |
\$(TAF) \$(FTL_TAF_FLAGS) \$(TAF_EXTRA) ftl_input_code.$FS |
3059 |
ls -l ftl_input_code_ftl.$FS |
ls -l ftl_input_code_ftl.$FS |
3060 |
cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS |
cat ftl_input_code_ftl.$FS | sed -f \$(TOOLSDIR)/adjoint_sed > ftl_taf_output.$FS |
3061 |
|
|
3062 |
ftl_taf: ftl_taf_output.o \$(OBJFILES) |
\${EXE_FTL}: ftl_taf_output.o \$(OBJFILES) |
3063 |
\$(LINK) -o ${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_taf_output.o \$(LIBS) |
\$(LINK) -o \${EXE_FTL} \$(FFLAGS) \$(FOPTIM) \$(OBJFILES) ftl_taf_output.o \$(LIBS) |
3064 |
|
|
3065 |
ftl_tamc_output.$FS: ftl_input_code.$FS |
ftl_tamc_output.$FS: ftl_input_code.$FS |
3066 |
\$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS |
\$(TAMC) \$(FTL_TAMC_FLAGS) \$(TAMC_EXTRA) ftl_input_code.$FS |
3089 |
touch ad_taf_output.$FS ftl_taf_output.$FS |
touch ad_taf_output.$FS ftl_taf_output.$FS |
3090 |
\$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.$FS |
\$(FC) \$(FFLAGS) \$(FOPTIM) -c ad_taf_output.$FS |
3091 |
\$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.$FS |
\$(FC) \$(FFLAGS) \$(FOPTIM) -c ftl_taf_output.$FS |
3092 |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > ftl_config.template |
@$BASH\$(TOOLSDIR)/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -DALLOW_TANGENTLINEAR_RUN > ftl_config.template |
3093 |
cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h |
cmp ftl_config.template AD_CONFIG.h || cat ftl_config.template > AD_CONFIG.h |
3094 |
-rm -f ftl_config.template |
-rm -f ftl_config.template |
3095 |
|
|
3166 |
|
|
3167 |
.PHONY: adDepend |
.PHONY: adDepend |
3168 |
adDepend: \$(ALL_LINKED_FILES) \$(addsuffix _mod.h, \$(CB2M_F90_SRC_NAMES)) \$(addsuffix _mod.FF90, \$(CB2M_F90_SRC_NAMES)) \$(F77_SRC_FILES:.F=_cb2m.FF90) |
adDepend: \$(ALL_LINKED_FILES) \$(addsuffix _mod.h, \$(CB2M_F90_SRC_NAMES)) \$(addsuffix _mod.FF90, \$(CB2M_F90_SRC_NAMES)) \$(F77_SRC_FILES:.F=_cb2m.FF90) |
3169 |
\$(MAKEDEPEND) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES) |
\$(MAKEDEPEND) -f \$(MAKEFILE) -o .$FS \$(DEFINES) \$(INCLUDES) \$(F77_SRC_FILES) |
3170 |
\$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE) |
\$(TOOLSDIR)/f90mkdepend >> \$(MAKEFILE) |
3171 |
-rm -f makedepend.out |
-rm -f makedepend.out |
3172 |
|
|
3305 |
# this step also creates the file postProcess.make but we cannot |
# this step also creates the file postProcess.make but we cannot |
3306 |
# name it as the target or else make will try to remake it for |
# name it as the target or else make will try to remake it for |
3307 |
# the include directive above for any rule, e.g. make clean |
# the include directive above for any rule, e.g. make clean |
3308 |
./postProcess.py --progress --timing --outputFormat=fixed -m r -i ../OAD_support/ad_inline.f --width 4 \$< |
./postProcess.py --progress --timing --infoUnitFile w2f__types.f90 --outputFormat=fixed -m r -i ../OAD_support/ad_inline.f --width 4 \$< |
3309 |
|
|
3310 |
# setup some links |
# setup some links |
3311 |
%.xsd: |
%.xsd: |
3389 |
fi |
fi |
3390 |
fi |
fi |
3391 |
if test ! -f AD_CONFIG.h ; then |
if test ! -f AD_CONFIG.h ; then |
3392 |
$BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN -UALLOW_ECCO_OPTIMIZATION > AD_CONFIG.h |
$BASH $TOOLSDIR/convert_cpp_cmd2defines "Warning - this file is automatically generated - do NOT edit" -UALLOW_ADJOINT_RUN -UALLOW_TANGENTLINEAR_RUN > AD_CONFIG.h |
3393 |
fi |
fi |
3394 |
|
|
3395 |
# Write the "state" for future records |
# Write the "state" for future records |
3398 |
for i in $gm_state ; do |
for i in $gm_state ; do |
3399 |
t1="t2=\$$i" |
t1="t2=\$$i" |
3400 |
eval $t1 |
eval $t1 |
3401 |
echo "$i='$t2'" >> genmake_state |
echo "$i='$t2'" | sed -e 's/ */ /g' >> genmake_state |
3402 |
done |
done |
3403 |
fi |
fi |