OpenRadioss
2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
pzfillpad.f
Go to the documentation of this file.
1
SUBROUTINE
pzfillpad
( ICTXT, M, N, A, LDA, IPRE, IPOST, CHKVAL )
2
*
3
* -- ScaLAPACK tools routine (version 1.7) --
4
* University of Tennessee, Knoxville, Oak Ridge National Laboratory,
5
* and University of California, Berkeley.
6
* May 1, 1997
7
*
8
* .. Scalar Arguments ..
9
INTEGER
ICTXT,
IPOST
, IPRE, LDA, M, N
10
COMPLEX*16
CHKVAL
11
* ..
12
* .. Array Arguments ..
13
COMPLEX*16
A( * )
14
* ..
15
*
16
* Purpose
17
* =======
18
*
19
* PZFILLPAD surrounds a two dimensional local array with a guard-
20
* zone initialized to the value CHKVAL. The user may later call the
21
* routine PZCHEKPAD to discover if the guardzone has been
22
* violated. There are three guardzones. The first is a buffer of size
23
* IPRE that is before the start of the array. The second is the buffer
24
* of size IPOST which is after the end of the array to be padded.
25
* Finally, there is a guard zone inside every column of the array to
26
* be padded, in the elements of A(M+1:LDA, J).
27
*
28
* Arguments
29
* =========
30
*
31
* ICTXT (global input) INTEGER
32
* The BLACS context handle, indicating the global context of
33
* the operation. The context itself is global.
34
*
35
* M (local input) INTEGER
36
* The number of rows in the local array.
37
*
38
* N (local input) INTEGER
39
* The number of columns in the local array.
40
*
41
* A (local input/local output) COMPLEX*16, array of
42
* dimension (LDA,N). A location IPRE elements in front of
43
* the matrix to be padded.
44
*
45
* LDA (local input) INTEGER
46
* The leading Dimension of the local array to be padded.
47
*
48
* IPRE (local input) INTEGER
49
* The size of the guard zone to put before the start of
50
* padded array.
51
*
52
* IPOST (local input) INTEGER
53
* The size of the guard zone to put after padded array.
54
*
55
* CHKVAL (local input) COMPLEX*16
56
* The value to pad matrix with.
57
*
58
* =====================================================================
59
*
60
* .. Local Scalars ..
61
INTEGER
I, J, K
62
* ..
63
* .. Executable Statements ..
64
*
65
* Put check buffer in front of A
66
*
67
IF
( ipre.GT.0 )
THEN
68
DO
10 i = 1, ipre
69
a( i ) = chkval
70
10
CONTINUE
71
ELSE
72
WRITE
( *, fmt = * )
'WARNING no pre-guardzone in PZFILLPAD'
73
END IF
74
*
75
* Put check buffer in back of A
76
*
77
IF
( ipost.GT.0 )
THEN
78
j = ipre+lda*n+1
79
DO
20 i = j, j+ipost-1
80
a( i ) = chkval
81
20
CONTINUE
82
ELSE
83
WRITE
( *, fmt = * )
'WARNING no post-guardzone in PZFILLPAD'
84
END IF
85
*
86
* Put check buffer in all (LDA-M) gaps
87
*
88
IF
( lda.GT.m )
THEN
89
k = ipre + m + 1
90
DO
40 j = 1, n
91
DO
30 i = k, k + (lda-m) - 1
92
a( i ) = chkval
93
30
CONTINUE
94
k = k + lda
95
40
CONTINUE
96
END IF
97
*
98
RETURN
99
*
100
* End of PZFILLPAD
101
*
102
END
pzfillpad
subroutine pzfillpad(ictxt, m, n, a, lda, ipre, ipost, chkval)
Definition
pzfillpad.f:2
engine
extlib
scalapack-2.2.0
TOOLS
pzfillpad.f
Generated by
1.15.0