comparison libcruft/arpack/util/dvout.f @ 12274:9f5d2ef078e8 release-3-4-x

import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
author John W. Eaton <jwe@octave.org>
date Fri, 28 Jan 2011 14:04:33 -0500
parents
children
comparison
equal deleted inserted replaced
12273:83133b5bf392 12274:9f5d2ef078e8
1 *-----------------------------------------------------------------------
2 * Routine: DVOUT
3 *
4 * Purpose: Real vector output routine.
5 *
6 * Usage: CALL DVOUT (LOUT, N, SX, IDIGIT, IFMT)
7 *
8 * Arguments
9 * N - Length of array SX. (Input)
10 * SX - Real array to be printed. (Input)
11 * IFMT - Format to be used in printing array SX. (Input)
12 * IDIGIT - Print up to IABS(IDIGIT) decimal digits per number. (In)
13 * If IDIGIT .LT. 0, printing is done with 72 columns.
14 * If IDIGIT .GT. 0, printing is done with 132 columns.
15 *
16 *-----------------------------------------------------------------------
17 *
18 SUBROUTINE DVOUT( LOUT, N, SX, IDIGIT, IFMT )
19 * ...
20 * ... SPECIFICATIONS FOR ARGUMENTS
21 * ...
22 * ... SPECIFICATIONS FOR LOCAL VARIABLES
23 * .. Scalar Arguments ..
24 CHARACTER*( * ) IFMT
25 INTEGER IDIGIT, LOUT, N
26 * ..
27 * .. Array Arguments ..
28 DOUBLE PRECISION SX( * )
29 * ..
30 * .. Local Scalars ..
31 CHARACTER*80 LINE
32 INTEGER I, K1, K2, LLL, NDIGIT
33 * ..
34 * .. Intrinsic Functions ..
35 INTRINSIC LEN, MIN, MIN0
36 * ..
37 * .. Executable Statements ..
38 * ...
39 * ... FIRST EXECUTABLE STATEMENT
40 *
41 *
42 LLL = MIN( LEN( IFMT ), 80 )
43 DO 10 I = 1, LLL
44 LINE( I: I ) = '-'
45 10 CONTINUE
46 *
47 DO 20 I = LLL + 1, 80
48 LINE( I: I ) = ' '
49 20 CONTINUE
50 *
51 WRITE( LOUT, FMT = 9999 )IFMT, LINE( 1: LLL )
52 9999 FORMAT( / 1X, A, / 1X, A )
53 *
54 IF( N.LE.0 )
55 $ RETURN
56 NDIGIT = IDIGIT
57 IF( IDIGIT.EQ.0 )
58 $ NDIGIT = 4
59 *
60 *=======================================================================
61 * CODE FOR OUTPUT USING 72 COLUMNS FORMAT
62 *=======================================================================
63 *
64 IF( IDIGIT.LT.0 ) THEN
65 NDIGIT = -IDIGIT
66 IF( NDIGIT.LE.4 ) THEN
67 DO 30 K1 = 1, N, 5
68 K2 = MIN0( N, K1+4 )
69 WRITE( LOUT, FMT = 9998 )K1, K2, ( SX( I ), I = K1, K2 )
70 30 CONTINUE
71 ELSE IF( NDIGIT.LE.6 ) THEN
72 DO 40 K1 = 1, N, 4
73 K2 = MIN0( N, K1+3 )
74 WRITE( LOUT, FMT = 9997 )K1, K2, ( SX( I ), I = K1, K2 )
75 40 CONTINUE
76 ELSE IF( NDIGIT.LE.10 ) THEN
77 DO 50 K1 = 1, N, 3
78 K2 = MIN0( N, K1+2 )
79 WRITE( LOUT, FMT = 9996 )K1, K2, ( SX( I ), I = K1, K2 )
80 50 CONTINUE
81 ELSE
82 DO 60 K1 = 1, N, 2
83 K2 = MIN0( N, K1+1 )
84 WRITE( LOUT, FMT = 9995 )K1, K2, ( SX( I ), I = K1, K2 )
85 60 CONTINUE
86 END IF
87 *
88 *=======================================================================
89 * CODE FOR OUTPUT USING 132 COLUMNS FORMAT
90 *=======================================================================
91 *
92 ELSE
93 IF( NDIGIT.LE.4 ) THEN
94 DO 70 K1 = 1, N, 10
95 K2 = MIN0( N, K1+9 )
96 WRITE( LOUT, FMT = 9998 )K1, K2, ( SX( I ), I = K1, K2 )
97 70 CONTINUE
98 ELSE IF( NDIGIT.LE.6 ) THEN
99 DO 80 K1 = 1, N, 8
100 K2 = MIN0( N, K1+7 )
101 WRITE( LOUT, FMT = 9997 )K1, K2, ( SX( I ), I = K1, K2 )
102 80 CONTINUE
103 ELSE IF( NDIGIT.LE.10 ) THEN
104 DO 90 K1 = 1, N, 6
105 K2 = MIN0( N, K1+5 )
106 WRITE( LOUT, FMT = 9996 )K1, K2, ( SX( I ), I = K1, K2 )
107 90 CONTINUE
108 ELSE
109 DO 100 K1 = 1, N, 5
110 K2 = MIN0( N, K1+4 )
111 WRITE( LOUT, FMT = 9995 )K1, K2, ( SX( I ), I = K1, K2 )
112 100 CONTINUE
113 END IF
114 END IF
115 WRITE( LOUT, FMT = 9994 )
116 RETURN
117 9998 FORMAT( 1X, I4, ' - ', I4, ':', 1P, 10D12.3 )
118 9997 FORMAT( 1X, I4, ' - ', I4, ':', 1X, 1P, 8D14.5 )
119 9996 FORMAT( 1X, I4, ' - ', I4, ':', 1X, 1P, 6D18.9 )
120 9995 FORMAT( 1X, I4, ' - ', I4, ':', 1X, 1P, 5D24.13 )
121 9994 FORMAT( 1X, ' ' )
122 END