Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/mathlibs/src/arpack/cvout.f
5196 views
1
c-----------------------------------------------------------------------
2
c
3
c\SCCS Information: @(#)
4
c FILE: cvout.f SID: 2.1 DATE OF SID: 11/16/95 RELEASE: 2
5
c
6
*-----------------------------------------------------------------------
7
* Routine: CVOUT
8
*
9
* Purpose: Complex vector output routine.
10
*
11
* Usage: CALL CVOUT (LOUT, N, CX, IDIGIT, IFMT)
12
*
13
* Arguments
14
* N - Length of array CX. (Input)
15
* CX - Complex array to be printed. (Input)
16
* IFMT - Format to be used in printing array CX. (Input)
17
* IDIGIT - Print up to IABS(IDIGIT) decimal digits per number. (In)
18
* If IDIGIT .LT. 0, printing is done with 72 columns.
19
* If IDIGIT .GT. 0, printing is done with 132 columns.
20
*
21
*-----------------------------------------------------------------------
22
*
23
SUBROUTINE CVOUT( LOUT, N, CX, IDIGIT, IFMT )
24
* ...
25
* ... SPECIFICATIONS FOR ARGUMENTS
26
INTEGER N, IDIGIT, LOUT
27
Complex
28
& CX( * )
29
CHARACTER IFMT*( * )
30
* ...
31
* ... SPECIFICATIONS FOR LOCAL VARIABLES
32
INTEGER I, NDIGIT, K1, K2, LLL
33
CHARACTER*80 LINE
34
* ...
35
* ... FIRST EXECUTABLE STATEMENT
36
*
37
*
38
LLL = MIN( LEN( IFMT ), 80 )
39
DO 10 I = 1, LLL
40
LINE( I: I ) = '-'
41
10 CONTINUE
42
*
43
DO 20 I = LLL + 1, 80
44
LINE( I: I ) = ' '
45
20 CONTINUE
46
*
47
WRITE( LOUT, 9999 )IFMT, LINE( 1: LLL )
48
9999 FORMAT( / 1X, A / 1X, A )
49
*
50
IF( N.LE.0 )
51
$ RETURN
52
NDIGIT = IDIGIT
53
IF( IDIGIT.EQ.0 )
54
$ NDIGIT = 4
55
*
56
*=======================================================================
57
* CODE FOR OUTPUT USING 72 COLUMNS FORMAT
58
*=======================================================================
59
*
60
IF( IDIGIT.LT.0 ) THEN
61
NDIGIT = -IDIGIT
62
IF( NDIGIT.LE.4 ) THEN
63
DO 30 K1 = 1, N, 2
64
K2 = MIN0( N, K1+1 )
65
IF (K1.NE.N) THEN
66
WRITE( LOUT, 9998 )K1, K2, ( CX( I ),
67
$ I = K1, K2 )
68
ELSE
69
WRITE( LOUT, 9997 )K1, K2, ( CX( I ),
70
$ I = K1, K2 )
71
END IF
72
30 CONTINUE
73
ELSE IF( NDIGIT.LE.6 ) THEN
74
DO 40 K1 = 1, N, 2
75
K2 = MIN0( N, K1+1 )
76
IF (K1.NE.N) THEN
77
WRITE( LOUT, 9988 )K1, K2, ( CX( I ),
78
$ I = K1, K2 )
79
ELSE
80
WRITE( LOUT, 9987 )K1, K2, ( CX( I ),
81
$ I = K1, K2 )
82
END IF
83
40 CONTINUE
84
ELSE IF( NDIGIT.LE.8 ) THEN
85
DO 50 K1 = 1, N, 2
86
K2 = MIN0( N, K1+1 )
87
IF (K1.NE.N) THEN
88
WRITE( LOUT, 9978 )K1, K2, ( CX( I ),
89
$ I = K1, K2 )
90
ELSE
91
WRITE( LOUT, 9977 )K1, K2, ( CX( I ),
92
$ I = K1, K2 )
93
END IF
94
50 CONTINUE
95
ELSE
96
DO 60 K1 = 1, N
97
WRITE( LOUT, 9968 )K1, K1, CX( I )
98
60 CONTINUE
99
END IF
100
*
101
*=======================================================================
102
* CODE FOR OUTPUT USING 132 COLUMNS FORMAT
103
*=======================================================================
104
*
105
ELSE
106
IF( NDIGIT.LE.4 ) THEN
107
DO 70 K1 = 1, N, 4
108
K2 = MIN0( N, K1+3 )
109
IF ((K1+3).LE.N) THEN
110
WRITE( LOUT, 9958 )K1, K2, ( CX( I ),
111
$ I = K1, K2 )
112
ELSE IF ((K1+3-N) .EQ. 1) THEN
113
WRITE( LOUT, 9957 )K1, K2, ( CX( I ),
114
$ I = K1, K2 )
115
ELSE IF ((K1+3-N) .EQ. 2) THEN
116
WRITE( LOUT, 9956 )K1, K2, ( CX( I ),
117
$ I = K1, K2 )
118
ELSE IF ((K1+3-N) .EQ. 1) THEN
119
WRITE( LOUT, 9955 )K1, K2, ( CX( I ),
120
$ I = K1, K2 )
121
END IF
122
70 CONTINUE
123
ELSE IF( NDIGIT.LE.6 ) THEN
124
DO 80 K1 = 1, N, 3
125
K2 = MIN0( N, K1+2 )
126
IF ((K1+2).LE.N) THEN
127
WRITE( LOUT, 9948 )K1, K2, ( CX( I ),
128
$ I = K1, K2 )
129
ELSE IF ((K1+2-N) .EQ. 1) THEN
130
WRITE( LOUT, 9947 )K1, K2, ( CX( I ),
131
$ I = K1, K2 )
132
ELSE IF ((K1+2-N) .EQ. 2) THEN
133
WRITE( LOUT, 9946 )K1, K2, ( CX( I ),
134
$ I = K1, K2 )
135
END IF
136
80 CONTINUE
137
ELSE IF( NDIGIT.LE.8 ) THEN
138
DO 90 K1 = 1, N, 3
139
K2 = MIN0( N, K1+2 )
140
IF ((K1+2).LE.N) THEN
141
WRITE( LOUT, 9938 )K1, K2, ( CX( I ),
142
$ I = K1, K2 )
143
ELSE IF ((K1+2-N) .EQ. 1) THEN
144
WRITE( LOUT, 9937 )K1, K2, ( CX( I ),
145
$ I = K1, K2 )
146
ELSE IF ((K1+2-N) .EQ. 2) THEN
147
WRITE( LOUT, 9936 )K1, K2, ( CX( I ),
148
$ I = K1, K2 )
149
END IF
150
90 CONTINUE
151
ELSE
152
DO 100 K1 = 1, N, 2
153
K2 = MIN0( N, K1+1 )
154
IF ((K1+2).LE.N) THEN
155
WRITE( LOUT, 9928 )K1, K2, ( CX( I ),
156
$ I = K1, K2 )
157
ELSE IF ((K1+2-N) .EQ. 1) THEN
158
WRITE( LOUT, 9927 )K1, K2, ( CX( I ),
159
$ I = K1, K2 )
160
END IF
161
100 CONTINUE
162
END IF
163
END IF
164
WRITE( LOUT, 9994 )
165
RETURN
166
*
167
*=======================================================================
168
* FORMAT FOR 72 COLUMNS
169
*=======================================================================
170
*
171
* DISPLAY 4 SIGNIFICANT DIGITS
172
*
173
9998 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
174
$ 1P,2('(',E10.3,',',E10.3,') ') )
175
9997 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
176
$ 1P,1('(',E10.3,',',E10.3,') ') )
177
*
178
* DISPLAY 6 SIGNIFICANT DIGITS
179
*
180
9988 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
181
$ 1P,2('(',E12.5,',',E12.5,') ') )
182
9987 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
183
$ 1P,1('(',E12.5,',',E12.5,') ') )
184
*
185
* DISPLAY 8 SIGNIFICANT DIGITS
186
*
187
9978 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
188
$ 1P,2('(',E14.7,',',E14.7,') ') )
189
9977 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
190
$ 1P,1('(',E14.7,',',E14.7,') ') )
191
*
192
* DISPLAY 13 SIGNIFICANT DIGITS
193
*
194
9968 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
195
$ 1P,1('(',E20.13,',',E20.13,') ') )
196
*
197
*=========================================================================
198
* FORMAT FOR 132 COLUMNS
199
*=========================================================================
200
*
201
* DISPLAY 4 SIGNIFICANT DIGITS
202
*
203
9958 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
204
$ 1P,4('(',E10.3,',',E10.3,') ') )
205
9957 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
206
$ 1P,3('(',E10.3,',',E10.3,') ') )
207
9956 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
208
$ 1P,2('(',E10.3,',',E10.3,') ') )
209
9955 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
210
$ 1P,1('(',E10.3,',',E10.3,') ') )
211
*
212
* DISPLAY 6 SIGNIFICANT DIGITS
213
*
214
9948 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
215
$ 1P,3('(',E12.5,',',E12.5,') ') )
216
9947 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
217
$ 1P,2('(',E12.5,',',E12.5,') ') )
218
9946 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
219
$ 1P,1('(',E12.5,',',E12.5,') ') )
220
*
221
* DISPLAY 8 SIGNIFICANT DIGITS
222
*
223
9938 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
224
$ 1P,3('(',E14.7,',',E14.7,') ') )
225
9937 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
226
$ 1P,2('(',E14.7,',',E14.7,') ') )
227
9936 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
228
$ 1P,1('(',E14.7,',',E14.7,') ') )
229
*
230
* DISPLAY 13 SIGNIFICANT DIGITS
231
*
232
9928 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
233
$ 1P,2('(',E20.13,',',E20.13,') ') )
234
9927 FORMAT( 1X, I4, ' - ', I4, ':', 1X,
235
$ 1P,1('(',E20.13,',',E20.13,') ') )
236
*
237
*
238
*
239
9994 FORMAT( 1X, ' ' )
240
END
241
242