| 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= |