95
95
 
  FCFLAGS="$F9XMODFLAG. $FCFLAGS"
96
96
 
else
97
97
 
  echo unknown 1>&6
98
98
 
fi
99
99
 
AC_SUBST(F9XMODFLAG)
100
100
 
AC_SUBST(F9XMODEXT)
101
101
 
rm -rf conftest*
102
102
 
AC_LANG_POP(Fortran)
103
103
 
])
104
104
 
105
 
-
dnl -------------------------------------------------------------------------
106
 
-
dnl AC_TRY_FCOMPILE()
107
 
-
dnl
108
 
-
dnl Check if we can compile a simple Fortran 90 program.
109
 
-
dnl
110
 
-
dnl AC_TRY_FCOMPILE(FUNCTION-BODY,
111
 
-
dnl                 [ACTION-IF-SUCCESS], [ACTION-IF-NOT-SUCCESS])
112
 
-
dnl
113
 
-
AC_DEFUN([AC_TRY_FCOMPILE],
114
 
-
[AC_LANG_PUSH(Fortran)
115
 
-
116
 
-
test -d conftestdir || mkdir conftestdir
117
 
-
cd conftestdir
118
 
-
rm -rf *
119
 
-
120
 
-
cat >conftest.$ac_ext <<EOF
121
 
-
          $1
122
 
-
EOF
123
 
-
124
 
-
if AC_TRY_EVAL(ac_compile); then
125
 
-
  :
126
 
-
  [$2]
127
 
-
else
128
 
-
  :
129
 
-
  [$3]
130
 
-
fi
131
 
-
cd ..
132
 
-
rm -rf conftest*
133
 
-
AC_LANG_POP(Fortran)
134
 
-
])
135
 
-
136
 
-
dnl -------------------------------------------------------------------------
137
 
-
dnl AC_TRY_FLINK()
138
 
-
dnl
139
 
-
dnl Check if we can link a simple Fortran 90 program.
140
 
-
dnl
141
 
-
dnl AC_TRY_FLINK(INCLUDES, FUNCTION-BODY,
142
 
-
dnl              [ACTION-IF-SUCCESS], [ACTION-IF-NOT-SUCCESS])
143
 
-
dnl
144
 
-
AC_DEFUN([AC_TRY_FLINK],
145
 
-
[AC_LANG_PUSH(Fortran)
146
 
-
147
 
-
test -d conftestdir || mkdir conftestdir
148
 
-
cd conftestdir
149
 
-
rm -rf *
150
 
-
151
 
-
cat >conftest.$ac_ext <<EOF
152
 
-
        program conftest
153
 
-
          include '$1'
154
 
-
          $2
155
 
-
        end
156
 
-
EOF
157
 
-
158
 
-
if AC_TRY_EVAL(ac_compile) && AC_TRY_EVAL(ac_link); then
159
 
-
  :
160
 
-
  [$3]
161
 
-
else
162
 
-
  :
163
 
-
  [$4]
164
 
-
fi
165
 
-
cd ..
166
 
-
rm -rf conftest*
167
 
-
AC_LANG_POP(Fortran)
168
 
-
])
169
 
-
170
 
-
dnl -------------------------------------------------------------------------
171
 
-
dnl AC_CHECK_FLIB()
172
 
-
dnl
173
 
-
dnl Check if we can link a simple Fortran 90 program with the specified library.
174
 
-
dnl
175
 
-
dnl AC_CHECK_FLIB(LIBRARY, FUNCTION-BODY,
176
 
-
dnl               [ACTION-IF-SUCCESS], [ACTION-IF-NOT-SUCCESS])
177
 
-
dnl
178
 
-
AC_DEFUN([AC_CHECK_FLIB],
179
 
-
[AC_LANG_PUSH(Fortran)
180
 
-
181
 
-
test -d conftestdir || mkdir conftestdir
182
 
-
cd conftestdir
183
 
-
rm -rf *
184
 
-
185
 
-
cat >conftest.$ac_ext <<EOF
186
 
-
        program conftest
187
 
-
          $2
188
 
-
        end
189
 
-
EOF
190
 
-
191
 
-
if test -n "$1"; then
192
 
-
  saved_LIBS="$LIBS"
193
 
-
  LIBS="$LIBS -l$1"
194
 
-
fi
195
 
-
196
 
-
if AC_TRY_EVAL(ac_compile) && AC_TRY_EVAL(ac_link); then
197
 
-
  :
198
 
-
  [$3]
199
 
-
else
200
 
-
  LIBS="$saved_LIBS"
201
 
-
  [$4]
202
 
-
fi
203
 
-
cd ..
204
 
-
rm -rf conftest*
205
 
-
AC_LANG_POP(Fortran)
206
 
-
])
207
 
-
208
 
-
dnl -------------------------------------------------------------------------
209
 
-
dnl -------------------------------------------------------------------------
210
 
-
dnl
211
 
-
dnl Possible future tests for the Fortran stuff...
212
 
-
dnl
213
 
-
dnl -------------------------------------------------------------------------
214
 
-
dnl -------------------------------------------------------------------------
215
 
-
dnl
216
 
-
dnl echo $ac_n "checking whether f90 real type has 12 digits of precision""... $ac_c" 1>&6
217
 
-
dnl cat >conftest.f90 <<'EOF'
218
 
-
dnl program conftest
219
 
-
dnl     if (selected_real_kind(12) .eq. kind(0.0)) then
220
 
-
dnl         print '(a)','YES'
221
 
-
dnl     else
222
 
-
dnl         print '(a)','NO'
223
 
-
dnl     end if
224
 
-
dnl end program conftest
225
 
-
dnl EOF
226
 
-
dnl $ac_cv_prog_F90 $FCFLAGS -o conftest conftest.f90 > /dev/null 2>&1
227
 
-
dnl if test "`./conftest | head -1`" = YES; then
228
 
-
dnl     echo "yes" 1>&6
229
 
-
dnl     AC_DEFINE(HIPREC)
230
 
-
dnl else
231
 
-
dnl     echo "no" 1>&6
232
 
-
dnl fi
233
 
-
234
 
-
dnl echo $ac_n "checking whether f90 precision of default real type""... $ac_c" 1>&6
235
 
-
dnl cat >conftest.f90 <<'EOF'
236
 
-
dnl program conftest
237
 
-
dnl     if (kind(0.0) .eq. selected_real_kind(12) .or.&
238
 
-
dnl         &kind(0.0) .eq. selected_real_kind(6) ) then
239
 
-
dnl         print '(a)','YES'
240
 
-
dnl     else
241
 
-
dnl         print '(a)','NO'
242
 
-
dnl     end if
243
 
-
dnl end program conftest
244
 
-
dnl EOF
245
 
-
dnl $ac_cv_prog_F90 $FCFLAGS -o conftest conftest.f90 > /dev/null 2>&1
246
 
-
dnl if test "`./conftest | head -1`" = YES; then
247
 
-
dnl     echo "OK" 1>&6
248
 
-
dnl     AC_DEFINE(REALOK)
249
 
-
dnl else
250
 
-
dnl     echo "no" 1>&6
251
 
-
dnl fi
252
 
-
253
 
-
dnl echo $ac_n "checking accuracy of arithmetic""... $ac_c" 1>&6
254
 
-
dnl cat >conftest.f90 <<'EOF'
255
 
-
dnl program conftest
256
 
-
dnl     integer, parameter :: double=selected_real_kind(12)
257
 
-
dnl     real(double), parameter :: ulp=2.0_double**(-47)
258
 
-
dnl     real(double), parameter :: ans=0.92699498904359955986_double
259
 
-
dnl     real(double) :: x,y,z
260
 
-
dnl     integer i
261
 
-
dnl     x=0.0_double
262
 
-
dnl     y=ulp
263
 
-
dnl     do i=2,100
264
 
-
dnl         z=x+y
265
 
-
dnl         x=y
266
 
-
dnl         y=z-int(z)
267
 
-
dnl     end do
268
 
-
dnl     if (y-ans .lt. ulp/2.0_double) then
269
 
-
dnl         print '(a)','YES'
270
 
-
dnl     else
271
 
-
dnl         print '(a)','NO'
272
 
-
dnl     end if
273
 
-
dnl end program conftest
274
 
-
dnl EOF
275
 
-
dnl $ac_cv_prog_F90 $FCFLAGS -o conftest conftest.f90 > /dev/null 2>&1
276
 
-
dnl if test "`./conftest | head -1`" = YES; then
277
 
-
dnl     echo "OK" 1>&6
278
 
-
dnl     AC_DEFINE(ARITHOK)
279
 
-
dnl else
280
 
-
dnl     echo "no" 1>&6
281
 
-
dnl fi
282
 
-
283
 
-
dnl echo $ac_n "checking whether int is the fastest way to truncate""... $ac_c" 1>&6
284
 
-
dnl cat >conftest.f90 <<'EOF'
285
 
-
dnl program conftest
286
 
-
dnl     integer, parameter :: double=selected_real_kind(12)
287
 
-
dnl     real(double), parameter :: ulp=2.0_double**(-47)
288
 
-
dnl     real(double) :: x,y,z,ya,yb
289
 
-
dnl     integer :: t0,t1,i,timea,timeb
290
 
-
dnl 
291
 
-
dnl     x=0.0_double
292
 
-
dnl     y=ulp
293
 
-
dnl     call system_clock(t0)
294
 
-
dnl     do i=2,1000000
295
 
-
dnl         z=x+y
296
 
-
dnl         x=y
297
 
-
dnl         y=z-int(z)
298
 
-
dnl     end do
299
 
-
dnl     ya=y
300
 
-
dnl     call system_clock(t1)
301
 
-
dnl     timea=t1-t0
302
 
-
dnl 
303
 
-
dnl     x=0.0_double
304
 
-
dnl     y=ulp
305
 
-
dnl     call system_clock(t0)
306
 
-
dnl     do i=2,1000000
307
 
-
dnl         z=x+y
308
 
-
dnl         x=y
309
 
-
dnl         if (z.ge.1.0_double) then
310
 
-
dnl             y=z-1.0_double
311
 
-
dnl         else
312
 
-
dnl             y=z
313
 
-
dnl         end if
314
 
-
dnl     end do
315
 
-
dnl     yb=y
316
 
-
dnl     call system_clock(t1)
317
 
-
dnl     timeb=t1-t0
318
 
-
dnl 
319
 
-
dnl     if (timea.lt.timeb) then
320
 
-
dnl         print '(a)','YES'
321
 
-
dnl     else
322
 
-
dnl         print '(a)','NO'
323
 
-
dnl     end if
324
 
-
dnl     print *,ya,yb
325
 
-
dnl end program conftest
326
 
-
dnl EOF
327
 
-
dnl $ac_cv_prog_F90 $FCFLAGS -o conftest conftest.f90 > /dev/null 2>&1
328
 
-
dnl if test "`./conftest | head -1`" = YES; then
329
 
-
dnl     echo "yes" 1>&6
330
 
-
dnl     AC_DEFINE(USEINT)
331
 
-
dnl else
332
 
-
dnl     echo "no" 1>&6
333
 
-
dnl fi
334
 
-
dnl
335
 
-
dnl -------------------------------------------------------------------------
336
 
-
dnl -------------------------------------------------------------------------