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= |
1252 |
gm_s5="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS" |
gm_s5="CFLAGS LIBS KPP KFLAGS1 KFLAGS2 KPPFILES NOOPTFILES NOOPTFLAGS" |
1253 |
gm_s6="TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK" |
gm_s6="TOOLSDIR SOURCEDIRS INCLUDEDIRS EXEDIR EXECUTABLE EXEHOOK" |
1254 |
gm_s7="PWD THISHOST THISUSER THISDATE THISVER MACHINE" |
gm_s7="PWD THISHOST THISUSER THISDATE THISVER MACHINE" |
1255 |
gm_s8="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" |
1912 |
else |
else |
1913 |
echo "no" |
echo "no" |
1914 |
fi |
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" |
1921 |
|
else |
1922 |
|
echo "no" |
1923 |
|
fi |
1924 |
DEFINES="$DEFINES $IGNORE_TIME" |
DEFINES="$DEFINES $IGNORE_TIME" |
1925 |
|
|
1926 |
if test "x$EMBED_SRC" = xt ; then |
if test "x$EMBED_SRC" = xt ; then |
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= |