Merge branch 'master' into bug-4403-remove-polyfill
[maxima.git] / share / fftpack5 / fortran / xerfft.f
blob29461076693b38d27ca5e37f05ba86f994b77acb
1 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
3 C FFTPACK 5.0
5 C Authors: Paul N. Swarztrauber and Richard A. Valent
7 C $Id$
9 CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC
11 SUBROUTINE XERFFT( SRNAME, INFO)
13 C .. Scalar Arguments ..
14 CHARACTER*6 SRNAME
15 INTEGER INFO
17 C ..
19 C Purpose
20 C =======
22 C XERFFT is an error handler for library FFTPACK version 5.0 routines.
23 C It is called by an FFTPACK 5.0 routine if an input parameter has an
24 C invalid value. A message is printed and execution stops.
26 C Installers may consider modifying the STOP statement in order to
27 C call system-specific exception-handling facilities.
29 C Arguments
30 C =========
32 C SRNAME (input) CHARACTER*6
33 C The name of the routine which called XERFFT.
35 C INFO (input) INTEGER
36 C When a single invalid parameter in the parameter list of
37 C the calling routine has been detected, INFO is the position
38 C of that parameter. In the case when an illegal combination
39 C of LOT, JUMP, N, and INC has been detected, the calling
40 C subprogram calls XERFFT with INFO = -1.
42 C =====================================================================
44 C .. Executable Statements ..
46 IF (INFO .GE. 1) THEN
47 WRITE( *, '(A,A,A,I3,A)') ' ** On entry to ', SRNAME,
48 1 ' parameter number ', INFO, ' had an illegal value'
49 ELSEIF (INFO .EQ. -1) THEN
50 WRITE( *, '(A,A,A,A)') ' ** On entry to ', SRNAME,
51 1 ' parameters LOT, JUMP, N and INC are inconsistent'
52 ELSEIF (INFO .EQ. -2) THEN
53 WRITE( *, '(A,A,A,A)') ' ** On entry to ', SRNAME,
54 1 ' parameter L is greater than LDIM'
55 ELSEIF (INFO .EQ. -3) THEN
56 WRITE( *, '(A,A,A,A)') ' ** On entry to ', SRNAME,
57 1 ' parameter M is greater than MDIM'
58 ELSEIF (INFO .EQ. -5) THEN
59 WRITE( *, '(A,A,A,A)') ' ** Within ', SRNAME,
60 1 ' input error returned by lower level routine'
61 ELSEIF (INFO .EQ. -6) THEN
62 WRITE( *, '(A,A,A,A)') ' ** On entry to ', SRNAME,
63 1 ' parameter LDIM is less than 2*(L/2+1)'
64 ENDIF
66 STOP
68 * End of XERFFT
70 END