Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ElmerCSC
GitHub Repository: ElmerCSC/elmerfem
Path: blob/devel/mathlibs/src/arpack/ivout.f
5199 views
1
C-----------------------------------------------------------------------
2
C Routine: IVOUT
3
C
4
C Purpose: Integer vector output routine.
5
C
6
C Usage: CALL IVOUT (LOUT, N, IX, IDIGIT, IFMT)
7
C
8
C Arguments
9
C N - Length of array IX. (Input)
10
C IX - Integer array to be printed. (Input)
11
C IFMT - Format to be used in printing array IX. (Input)
12
C IDIGIT - Print up to ABS(IDIGIT) decimal digits / number. (Input)
13
C If IDIGIT .LT. 0, printing is done with 72 columns.
14
C If IDIGIT .GT. 0, printing is done with 132 columns.
15
C
16
C-----------------------------------------------------------------------
17
C
18
SUBROUTINE IVOUT (LOUT, N, IX, IDIGIT, IFMT)
19
C ...
20
C ... SPECIFICATIONS FOR ARGUMENTS
21
INTEGER IX(*), N, IDIGIT, LOUT
22
CHARACTER IFMT*(*)
23
C ...
24
C ... SPECIFICATIONS FOR LOCAL VARIABLES
25
INTEGER I, NDIGIT, K1, K2, LLL
26
CHARACTER*80 LINE
27
* ...
28
* ... SPECIFICATIONS INTRINSICS
29
INTRINSIC MIN
30
*
31
C
32
LLL = MIN ( LEN ( IFMT ), 80 )
33
DO 1 I = 1, LLL
34
LINE(I:I) = '-'
35
1 CONTINUE
36
C
37
DO 2 I = LLL+1, 80
38
LINE(I:I) = ' '
39
2 CONTINUE
40
C
41
WRITE ( LOUT, 2000 ) IFMT, LINE(1:LLL)
42
2000 FORMAT ( /1X, A /1X, A )
43
C
44
IF (N .LE. 0) RETURN
45
NDIGIT = IDIGIT
46
IF (IDIGIT .EQ. 0) NDIGIT = 4
47
C
48
C=======================================================================
49
C CODE FOR OUTPUT USING 72 COLUMNS FORMAT
50
C=======================================================================
51
C
52
IF (IDIGIT .LT. 0) THEN
53
C
54
NDIGIT = -IDIGIT
55
IF (NDIGIT .LE. 4) THEN
56
DO 10 K1 = 1, N, 10
57
K2 = MIN0(N,K1+9)
58
WRITE(LOUT,1000) K1,K2,(IX(I),I=K1,K2)
59
10 CONTINUE
60
C
61
ELSE IF (NDIGIT .LE. 6) THEN
62
DO 30 K1 = 1, N, 7
63
K2 = MIN0(N,K1+6)
64
WRITE(LOUT,1001) K1,K2,(IX(I),I=K1,K2)
65
30 CONTINUE
66
C
67
ELSE IF (NDIGIT .LE. 10) THEN
68
DO 50 K1 = 1, N, 5
69
K2 = MIN0(N,K1+4)
70
WRITE(LOUT,1002) K1,K2,(IX(I),I=K1,K2)
71
50 CONTINUE
72
C
73
ELSE
74
DO 70 K1 = 1, N, 3
75
K2 = MIN0(N,K1+2)
76
WRITE(LOUT,1003) K1,K2,(IX(I),I=K1,K2)
77
70 CONTINUE
78
END IF
79
C
80
C=======================================================================
81
C CODE FOR OUTPUT USING 132 COLUMNS FORMAT
82
C=======================================================================
83
C
84
ELSE
85
C
86
IF (NDIGIT .LE. 4) THEN
87
DO 90 K1 = 1, N, 20
88
K2 = MIN0(N,K1+19)
89
WRITE(LOUT,1000) K1,K2,(IX(I),I=K1,K2)
90
90 CONTINUE
91
C
92
ELSE IF (NDIGIT .LE. 6) THEN
93
DO 110 K1 = 1, N, 15
94
K2 = MIN0(N,K1+14)
95
WRITE(LOUT,1001) K1,K2,(IX(I),I=K1,K2)
96
110 CONTINUE
97
C
98
ELSE IF (NDIGIT .LE. 10) THEN
99
DO 130 K1 = 1, N, 10
100
K2 = MIN0(N,K1+9)
101
WRITE(LOUT,1002) K1,K2,(IX(I),I=K1,K2)
102
130 CONTINUE
103
C
104
ELSE
105
DO 150 K1 = 1, N, 7
106
K2 = MIN0(N,K1+6)
107
WRITE(LOUT,1003) K1,K2,(IX(I),I=K1,K2)
108
150 CONTINUE
109
END IF
110
END IF
111
WRITE (LOUT,1004)
112
C
113
1000 FORMAT(1X,I4,' - ',I4,':',20(1X,I5))
114
1001 FORMAT(1X,I4,' - ',I4,':',15(1X,I7))
115
1002 FORMAT(1X,I4,' - ',I4,':',10(1X,I11))
116
1003 FORMAT(1X,I4,' - ',I4,':',7(1X,I15))
117
1004 FORMAT(1X,' ')
118
C
119
RETURN
120
END
121
122