Rename *ll* and *ul* to ll and ul in in-interval
[maxima.git] / share / fftpack5 / fortran / sintmf.f
blobc4e0a1eda2802026dac61d51f88254d90c0dcca7
1 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
3 C FFTPACK 5.0
5 C Authors: Paul N. Swarztrauber and Richard A. Valent
7 C $Id$
9 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
11 SUBROUTINE SINTMF (LOT, JUMP, N, INC, X, LENX, WSAVE, LENSAV,
12 1 WORK, LENWRK, IER)
13 INTEGER LOT, JUMP, N, INC, LENX, LENSAV, LENWRK, IER
14 REAL X(INC,*), WSAVE(LENSAV), WORK(LENWRK)
15 LOGICAL XERCON
17 IER = 0
19 IF (LENX .LT. (LOT-1)*JUMP + INC*(N-1) + 1) THEN
20 IER = 1
21 CALL XERFFT ('SINTMF', 6)
22 GO TO 100
23 ELSEIF (LENSAV .LT. N/2 + N + INT(LOG(REAL(N))/LOG(2.)) +4) THEN
24 IER = 2
25 CALL XERFFT ('SINTMF', 8)
26 GO TO 100
27 ELSEIF (LENWRK .LT. LOT*(2*N+4)) THEN
28 IER = 3
29 CALL XERFFT ('SINTMF', 10)
30 GO TO 100
31 ELSEIF (.NOT. XERCON(INC,JUMP,N,LOT)) THEN
32 IER = 4
33 CALL XERFFT ('SINTMF', -1)
34 GO TO 100
35 ENDIF
37 IW1 = LOT+LOT+1
38 IW2 = IW1+LOT*(N+1)
39 CALL MSNTF1(LOT,JUMP,N,INC,X,WSAVE,WORK,WORK(IW1),WORK(IW2),IER1)
40 IF (IER1 .NE. 0) THEN
41 IER = 20
42 CALL XERFFT ('SINTMF',-5)
43 ENDIF
44 100 CONTINUE
45 RETURN
46 END