|
|
| |
| # lines: |
512 | | # code: |
512 | | # comment: | 0 | |
# blank: | 0 |
| # Variables: | 60 |
| # Callers: | 5 |
| # Callings: | 1 |
| # Words: | 328 |
| # Keywords: | 234 |
|
|
|
|
|
..
.. Array Arguments ..
..
Purpose
=======
PCLASCL multiplies the M-by-N complex distributed matrix sub( A )
denoting A(IA:IA+M-1,JA:JA+N-1) by the real scalar CTO/CFROM. This
is done without over/underflow as long as the final result
CTO * A(I,J) / CFROM does not over/underflow. TYPE specifies that
sub( A ) may be full, upper triangular, lower triangular or upper
Hessenberg.
Notes
=====
Each global data object is described by an associated description
vector. This vector stores the information required to establish
the mapping between an object element and its corresponding process
and memory location.
Let A be a generic term for any 2D block cyclicly distributed array.
Such a global array has an associated description vector DESCA.
In the following comments, the character _ should be read as
"of the global array".
NOTATION STORED IN EXPLANATION
--------------- -------------- --------------------------------------
DTYPE_A(global) DESCA( DTYPE_ )The descriptor type. In this case,
DTYPE_A = 1.
CTXT_A (global) DESCA( CTXT_ ) The BLACS context handle, indicating
the BLACS process grid A is distribu-
ted over. The context itself is glo-
bal, but the handle (the integer
value) may vary.
M_A (global) DESCA( M_ ) The number of rows in the global
array A.
N_A (global) DESCA( N_ ) The number of columns in the global
array A.
MB_A (global) DESCA( MB_ ) The blocking factor used to distribute
the rows of the array.
NB_A (global) DESCA( NB_ ) The blocking factor used to distribute
the columns of the array.
RSRC_A (global) DESCA( RSRC_ ) The process row over which the first
row of the array A is distributed.
CSRC_A (global) DESCA( CSRC_ ) The process column over which the
first column of the array A is
distributed.
LLD_A (local) DESCA( LLD_ ) The leading dimension of the local
array. LLD_A >= MAX(1,LOCr(M_A)).
Let K be the number of rows or columns of a distributed matrix,
and assume that its process grid has dimension p x q.
LOCr( K ) denotes the number of elements of K that a process
would receive if K were distributed over the p processes of its
process column.
Similarly, LOCc( K ) denotes the number of elements of K that a
process would receive if K were distributed over the q processes of
its process row.
The values of LOCr() and LOCc() may be determined via a call to the
ScaLAPACK tool function, NUMROC:
LOCr( M ) = NUMROC( M, MB_A, MYROW, RSRC_A, NPROW ),
LOCc( N ) = NUMROC( N, NB_A, MYCOL, CSRC_A, NPCOL ).
An upper bound for these quantities may be computed by:
LOCr( M ) <= ceil( ceil(M/MB_A)/NPROW )*MB_A
LOCc( N ) <= ceil( ceil(N/NB_A)/NPCOL )*NB_A
Arguments
=========
TYPE (global input) CHARACTER
TYPE indices the storage type of the input distributed
matrix.
= 'G': sub( A ) is a full matrix,
= 'L': sub( A ) is a lower triangular matrix,
= 'U': sub( A ) is an upper triangular matrix,
= 'H': sub( A ) is an upper Hessenberg matrix.
CFROM (global input) REAL
CTO (global input) REAL
The distributed matrix sub( A ) is multiplied by CTO/CFROM.
A(I,J) is computed without over/underflow if the final
result CTO * A(I,J) / CFROM can be represented without
over/underflow. CFROM must be nonzero.
M (global input) INTEGER
The number of rows to be operated on i.e the number of rows
of the distributed submatrix sub( A ). M >= 0.
N (global input) INTEGER
The number of columns to be operated on i.e the number of
columns of the distributed submatrix sub( A ). N >= 0.
A (local input/local output) COMPLEX pointer into the
local memory to an array of dimension (LLD_A,LOCc(JA+N-1)).
This array contains the local pieces of the distributed
matrix sub( A ). On exit, this array contains the local
pieces of the distributed matrix multiplied by CTO/CFROM.
IA (global input) INTEGER
The row index in the global array A indicating the first
row of sub( A ).
JA (global input) INTEGER
The column index in the global array A indicating the
first column of sub( A ).
DESCA (global and local input) INTEGER array of dimension DLEN_.
The array descriptor for the distributed matrix A.
INFO (local output) INTEGER
= 0: successful exit
< 0: If the i-th argument is an array and the j-entry had
an illegal value, then INFO = -(i*100+j), if the i-th
argument is a scalar and had an illegal value, then
INFO = -i.
=====================================================================
.. Parameters ..
|
|
|
|
001 SUBROUTINE PCLASCL( TYPE , CFROM , CTO , M , N , A , IA , JA , DESCA ,
002 $INFO )
003
004 * -- ScaLAPACK auxiliary routine(version 1.7) --
005 * University of Tennessee , Knoxville , Oak Ridge National Laboratory ,
006 * and University of California , Berkeley.
007 * May 1 , 1997
008
009 * .. Scalar Arguments ..
010 CHARACTER TYPE
011 INTEGER IA , INFO , JA , M , N
012 REAL CFROM , CTO
013 INTEGER BLOCK_CYCLIC_2D , CSRC_ , CTXT_ , DLEN_ , DTYPE_ ,
014 $LLD_ , MB_ , M_ , NB_ , N_ , RSRC_
015 PARAMETER( BLOCK_CYCLIC_2D = 1 , DLEN_ = 9 , DTYPE_ = 1 ,
016 $CTXT_ = 2 , M_ = 3 , N_ = 4 , MB_ = 5 , NB_ = 6 ,
017 $RSRC_ = 7 , CSRC_ = 8 , LLD_ = 9 )
018 REAL ONE , ZERO
019 PARAMETER( ZERO = 0.0E0 , ONE = 1.0E0 )
020 * ..
021 * .. Local Scalars ..
022 LOGICAL DONE
023 INTEGER IACOL , IAROW , ICOFFA , ICTXT , ICURCOL , ICURROW ,
024 $IIA , II , INXTROW , IOFFA , IROFFA , ITYPE , J , JB ,
025 $JJA , JJ , JN , KK , LDA , LL , MYCOL , MYROW , MP ,
026 $NPCOL , NPROW , NQ
027 REAL BIGNUM , CFROM1 , CFROMC , CTO1 , CTOC , MUL , SMLNUM
028 * ..
029 * .. External Subroutines ..
030 EXTERNAL BLACS_GRIDINFO , CHK1MAT , INFOG2L , PXERBLA
031 * ..
032 * .. External Functions ..
033 LOGICAL LSAME
034 INTEGER ICEIL , NUMROC
035 REAL PSLAMCH
036 EXTERNAL ICEIL , LSAME , NUMROC , PSLAMCH
037 * ..
038 * .. Intrinsic Functions ..
039 INTRINSIC ABS , MIN , MOD
040 * ..
041 * .. Executable Statements ..
042
043 * Get grid parameters
044
045 ICTXT = DESCA( CTXT_ )
046 CALL BLACS_GRIDINFO( ICTXT , NPROW , NPCOL , MYROW , MYCOL )
047
048 * Test the input parameters
049
050 IF( NPROW.EQ. - 1 ) THEN
050
051 INFO = - 907
052 ELSE
052
053 INFO = 0
054 CALL CHK1MAT( M , 4 , N , 6 , IA , JA , DESCA , 9 , INFO )
055 IF( INFO.EQ.0 ) THEN
055
056 IF( LSAME( TYPE , 'G' ) ) THEN
056
057 ITYPE = 0
058 ELSE IF( LSAME( TYPE , 'L' ) ) THEN
058
059 ITYPE = 1
060 ELSE IF( LSAME( TYPE , 'U' ) ) THEN
060
061 ITYPE = 2
062 ELSE IF( LSAME( TYPE , 'H' ) ) THEN
062
063 ITYPE = 3
064 ELSE
064
065 ITYPE = - 1
066 END IF
067 IF( ITYPE.EQ. - 1 ) THEN
067
068 INFO = - 1
069 ELSE IF( CFROM.EQ.ZERO ) THEN
069
070 INFO = - 4
071 END IF
072 END IF
073 END IF
074
075 IF( INFO.NE.0 ) THEN
075
076 CALL PXERBLA( ICTXT , 'PCLASCL' , - INFO )
077 RETURN
078 END IF
079
080 * Quick return if possible
081
082 IF( N.EQ.0 .OR. M.EQ.0 )
082
083 $ RETURN
084
085 * Get machine parameters
086
087 SMLNUM = PSLAMCH( ICTXT , 'S' )
088 BIGNUM = ONE / SMLNUM
089
090 CFROMC = CFROM
091 CTOC = CTO
092
093 * Compute local indexes
094
095 LDA = DESCA( LLD_ )
096 IROFFA = MOD( IA - 1 , DESCA( MB_ ) )
097 ICOFFA = MOD( JA - 1 , DESCA( NB_ ) )
098 JN = MIN( ICEIL( JA , DESCA( NB_ ) ) * DESCA( NB_ ) , JA + N - 1 )
099 CALL INFOG2L( IA , JA , DESCA , NPROW , NPCOL , MYROW , MYCOL , IIA , JJA ,
100 $ IAROW , IACOL )
101 MP = NUMROC( M + IROFFA , DESCA( MB_ ) , MYROW , IAROW , NPROW )
102 IF( MYROW.EQ.IAROW )
102
103 $ MP = MP - IROFFA
104 NQ = NUMROC( N + ICOFFA , DESCA( NB_ ) , MYCOL , IACOL , NPCOL )
105 IF( MYCOL.EQ.IACOL )
105
106 $ NQ = NQ - ICOFFA
107
108 10 CONTINUE
109 CFROM1 = CFROMC*SMLNUM
110 CTO1 = CTOC / BIGNUM
111 IF( ABS( CFROM1 ).GT.ABS( CTOC ) .AND. CTOC.NE.ZERO ) THEN
111
112 MUL = SMLNUM
113 DONE = .FALSE.
114 CFROMC = CFROM1
115 ELSE IF( ABS( CTO1 ).GT.ABS( CFROMC ) ) THEN
115
116 MUL = BIGNUM
117 DONE = .FALSE.
118 CTOC = CTO1
119 ELSE
119
120 MUL = CTOC / CFROMC
121 DONE = .TRUE.
122 END IF
123
124 IOFFA =( JJA - 1 ) * LDA
125 ICURROW = IAROW
126 ICURCOL = IACOL
127
128 IF( ITYPE.EQ.0 ) THEN
129
130 * Full matrix
131
131
132 DO 30 JJ = JJA , JJA + NQ - 1
132
133 DO 20 II = IIA , IIA + MP - 1
133
134 A( IOFFA + II ) = A( IOFFA + II ) * MUL
135 20 CONTINUE
135
136 IOFFA = IOFFA + LDA
137 30 CONTINUE
138
139 ELSE IF( ITYPE.EQ.1 ) THEN
140
141 * Lower triangular matrix
142
142
143 II = IIA
144 JJ = JJA
145 JB = JN - JA + 1
146
147 IF( MYCOL.EQ.ICURCOL ) THEN
147
148 IF( MYROW.EQ.ICURROW ) THEN
148
149 DO 50 LL = JJ , JJ + JB - 1
149
150 DO 40 KK = II + LL - JJ , IIA + MP - 1
150
151 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
152 40 CONTINUE
152
153 IOFFA = IOFFA + LDA
154 50 CONTINUE
154
155 ELSE
155
156 DO 70 LL = JJ , JJ + JB - 1
156
157 DO 60 KK = II , IIA + MP - 1
157
158 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
159 60 CONTINUE
159
160 IOFFA = IOFFA + LDA
161 70 CONTINUE
161
162 END IF
163 JJ = JJ + JB
164 END IF
165
166 IF( MYROW.EQ.ICURROW )
166
167 $ II = II + JB
168 ICURROW = MOD( ICURROW + 1 , NPROW )
169 ICURCOL = MOD( ICURCOL + 1 , NPCOL )
170
171 * Loop over remaining block of columns
172
173 DO 120 J = JN + 1 , JA + N - 1 , DESCA( NB_ )
173
174 JB = MIN( JA + N - J , DESCA( NB_ ) )
175
176 IF( MYCOL.EQ.ICURCOL ) THEN
176
177 IF( MYROW.EQ.ICURROW ) THEN
177
178 DO 90 LL = JJ , JJ + JB - 1
178
179 DO 80 KK = II + LL - JJ , IIA + MP - 1
179
180 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
181 80 CONTINUE
181
182 IOFFA = IOFFA + LDA
183 90 CONTINUE
183
184 ELSE
184
185 DO 110 LL = JJ , JJ + JB - 1
185
186 DO 100 KK = II , IIA + MP - 1
186
187 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
188 100 CONTINUE
188
189 IOFFA = IOFFA + LDA
190 110 CONTINUE
190
191 END IF
192 JJ = JJ + JB
193 END IF
194
195 IF( MYROW.EQ.ICURROW )
195
196 $ II = II + JB
197 ICURROW = MOD( ICURROW + 1 , NPROW )
198 ICURCOL = MOD( ICURCOL + 1 , NPCOL )
199
200 120 CONTINUE
201
201
202 ELSE IF( ITYPE.EQ.2 ) THEN
203
204 * Upper triangular matrix
205
205
206 II = IIA
207 JJ = JJA
208 JB = JN - JA + 1
209
210 IF( MYCOL.EQ.ICURCOL ) THEN
210
211 IF( MYROW.EQ.ICURROW ) THEN
211
212 DO 140 LL = JJ , JJ + JB - 1
212
213 DO 130 KK = IIA , MIN(II + LL - JJ , IIA + MP - 1)
213
214 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
215 130 CONTINUE
215
216 IOFFA = IOFFA + LDA
217 140 CONTINUE
217
218 ELSE
218
219 DO 160 LL = JJ , JJ + JB - 1
219
220 DO 150 KK = IIA , MIN(II - 1 , IIA + MP - 1)
220
221 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
222 150 CONTINUE
222
223 IOFFA = IOFFA + LDA
224 160 CONTINUE
224
225 END IF
226 JJ = JJ + JB
227 END IF
228
229 IF( MYROW.EQ.ICURROW )
229
230 $ II = II + JB
231 ICURROW = MOD( ICURROW + 1 , NPROW )
232 ICURCOL = MOD( ICURCOL + 1 , NPCOL )
233
234 * Loop over remaining block of columns
235
236 DO 210 J = JN + 1 , JA + N - 1 , DESCA( NB_ )
236
237 JB = MIN( JA + N - J , DESCA( NB_ ) )
238
239 IF( MYCOL.EQ.ICURCOL ) THEN
239
240 IF( MYROW.EQ.ICURROW ) THEN
240
241 DO 180 LL = JJ , JJ + JB - 1
241
242 DO 170 KK = IIA , MIN(II + LL - JJ , IIA + MP - 1)
242
243 A( IOFFA + KK ) = A( IOFFA + KK )*MUL
244 170 CONTINUE
244
245 IOFFA = IOFFA + LDA
246 180 CONTINUE
246
247 ELSE
247
248 DO 200 LL = JJ , JJ + JB - 1
248
249 DO 190 KK = IIA , MIN(II - 1 , IIA + MP - 1)
249
250 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
251 190 CONTINUE
251
252 IOFFA = IOFFA + LDA
253 200 CONTINUE
253
254 END IF
255 JJ = JJ + JB
256 END IF
257
258 IF( MYROW.EQ.ICURROW )
258
259 $ II = II + JB
260 ICURROW = MOD( ICURROW + 1 , NPROW )
261 ICURCOL = MOD( ICURCOL + 1 , NPCOL )
262
263 210 CONTINUE
264
264
265 ELSE IF( ITYPE.EQ.3 ) THEN
266
267 * Upper Hessenberg matrix
268
268
269 II = IIA
270 JJ = JJA
271 JB = JN - JA + 1
272
273 * Only one process row
274
275 IF( NPROW.EQ.1 ) THEN
276
277 * Handle first block of columns separately
278
278
279 IF( MYCOL.EQ.ICURCOL ) THEN
279
280 DO 230 LL = JJ , JJ + JB - 1
280
281 DO 220 KK = IIA , MIN( II + LL - JJ + 1 , IIA + MP - 1 )
281
282 A( IOFFA + KK ) = A( IOFFA + KK )*MUL
283 220 CONTINUE
283
284 IOFFA = IOFFA + LDA
285 230 CONTINUE
285
286 JJ = JJ + JB
287 END IF
288
289 ICURCOL = MOD( ICURCOL + 1 , NPCOL )
290
291 * Loop over remaining block of columns
292
293 DO 260 J = JN + 1 , JA + N - 1 , DESCA( NB_ )
293
294 JB = MIN( JA + N - J , DESCA( NB_ ) )
295
296 IF( MYCOL.EQ.ICURCOL ) THEN
296
297 DO 250 LL = JJ , JJ + JB - 1
297
298 DO 240 KK = IIA , MIN( II + LL - JJ + 1 , IIA + MP - 1 )
298
299 A( IOFFA + KK ) = A( IOFFA + KK )*MUL
300 240 CONTINUE
300
301 IOFFA = IOFFA + LDA
302 250 CONTINUE
302
303 JJ = JJ + JB
304 END IF
305
306 II = II + JB
307 ICURCOL = MOD( ICURCOL + 1 , NPCOL )
308
309 260 CONTINUE
310
310
311 ELSE
312
313 * Handle first block of columns separately
314
314
315 INXTROW = MOD( ICURROW + 1 , NPROW )
316 IF( MYCOL.EQ.ICURCOL ) THEN
316
317 IF( MYROW.EQ.ICURROW ) THEN
317
318 DO 280 LL = JJ , JJ + JB - 1
318
319 DO 270 KK = IIA , MIN(II + LL - JJ + 1 , IIA + MP - 1)
319
320 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
321 270 CONTINUE
321
322 IOFFA = IOFFA + LDA
323 280 CONTINUE
323
324 ELSE
324
325 DO 300 LL = JJ , JJ + JB - 1
325
326 DO 290 KK = IIA , MIN(II - 1 , IIA + MP - 1)
326
327 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
328 290 CONTINUE
328
329 IOFFA = IOFFA + LDA
330 300 CONTINUE
330
331 IF( MYROW.EQ.INXTROW .AND. II.LE.IIA + MP - 1 )
331
332 $ A( II + (JJ + JB - 2)*LDA ) = A( II + (JJ + JB - 2)*LDA ) * MUL
333 END IF
334 JJ = JJ + JB
335 END IF
336
337 IF( MYROW.EQ.ICURROW )
337
338 $ II = II + JB
339 ICURROW = INXTROW
340 ICURROW = MOD( ICURROW + 1 , NPROW )
341 ICURCOL = MOD( ICURCOL + 1 , NPCOL )
342
343 * Loop over remaining block of columns
344
345 DO 350 J = JN + 1 , JA + N - 1 , DESCA( NB_ )
345
346 JB = MIN( JA + N - J , DESCA( NB_ ) )
347
348 IF( MYCOL.EQ.ICURCOL ) THEN
348
349 IF( MYROW.EQ.ICURROW ) THEN
349
350 DO 320 LL = JJ , JJ + JB - 1
350
351 DO 310 KK = IIA , MIN( II + LL - JJ + 1 , IIA + MP - 1 )
351
352 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
353 310 CONTINUE
353
354 IOFFA = IOFFA + LDA
355 320 CONTINUE
355
356 ELSE
356
357 DO 340 LL = JJ , JJ + JB - 1
357
358 DO 330 KK = IIA , MIN( II - 1 , IIA + MP - 1 )
358
359 A( IOFFA + KK ) = A( IOFFA + KK ) * MUL
360 330 CONTINUE
360
361 IOFFA = IOFFA + LDA
362 340 CONTINUE
362
363 IF( MYROW.EQ.INXTROW .AND. II.LE.IIA + MP - 1 )
363
364 $ A( II + (JJ + JB - 2)*LDA ) = A( II + (JJ + JB - 2)*LDA ) *
365 $ MUL
366 END IF
367 JJ = JJ + JB
368 END IF
369
370 IF( MYROW.EQ.ICURROW )
370
371 $ II = II + JB
372 ICURROW = INXTROW
373 ICURROW = MOD( ICURROW + 1 , NPROW )
374 ICURCOL = MOD( ICURCOL + 1 , NPCOL )
375
376 350 CONTINUE
377
377
378 END IF
379
380 END IF
381
382 IF( .NOT.DONE )
382
383 $ GO TO 10
384
385 RETURN
386
387 * End of PCLASCL
388
389 END67
119
|
|
Variables in Routine PCLASCL()
| Summary Report |
| Data Type | Quantity | Size(byte) |
| CHARACTER | 1 | 1 |
| INTEGER | 44 | 176 |
| LOGICAL | 2 | 2 |
| REAL | 13 | 52 |
| TOTAL | 60 | 231 |
List of Variables
CHARACTER
INTEGER
| BLOCK_CYCLIC_2D | CSRC_ | CTXT_ | DLEN_ | DTYPE_ |
| IA | IACOL | IAROW | ICEIL | ICOFFA |
| ICTXT | ICURCOL | ICURROW | II | IIA |
| INFO | INXTROW | IOFFA | IROFFA | ITYPE |
| J | JA | JB | JJ | JJA |
| JN | KK | LDA | LL | LLD_ |
| M | M_ | MB_ | MP | MYCOL |
| MYROW | N | N_ | NB_ | NPCOL |
| NPROW | NQ | NUMROC | RSRC_ | |
LOGICAL
REAL
| A | BIGNUM | CFROM | CFROM1 | CFROMC |
| CTO | CTO1 | CTOC | MUL | ONE |
| PSLAMCH | SMLNUM | ZERO | | |
Variables Dependence Graph Put the mouse over a right hand side variable to display the corresponding line of the dependence | | - | | - | - | | A | <--- | AA( IOFFA+II ) = A( IOFFA+II ) * MUL{2A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 3A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 4A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 5A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 6A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 7A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 8A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 9A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 10A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 11A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 12A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 13A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 14A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 15A( IOFFA+KK ) = A( IOFFA+KK ) * MUL}, IIA( IOFFA+II ) = A( IOFFA+II ) * MUL, IOFFAA( IOFFA+II ) = A( IOFFA+II ) * MUL{2A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 3A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 4A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 5A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 6A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 7A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 8A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 9A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 10A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 11A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 12A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 13A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 14A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 15A( IOFFA+KK ) = A( IOFFA+KK ) * MUL}, KKA( IOFFA+KK ) = A( IOFFA+KK ) * MUL{2A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 3A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 4A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 5A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 6A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 7A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 8A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 9A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 10A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 11A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 12A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 13A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 14A( IOFFA+KK ) = A( IOFFA+KK ) * MUL}, MULA( IOFFA+II ) = A( IOFFA+II ) * MUL{2A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 3A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 4A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 5A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 6A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 7A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 8A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 9A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 10A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 11A( IOFFA+KK ) = A( IOFFA+KK )*MUL, 12A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 13A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 14A( IOFFA+KK ) = A( IOFFA+KK ) * MUL, 15A( IOFFA+KK ) = A( IOFFA+KK ) * MUL} |
| BIGNUM | <--- | ONEBIGNUM = ONE / SMLNUM, SMLNUMBIGNUM = ONE / SMLNUM |
| CFROM1 | <--- | SMLNUMCFROM1 = CFROMC*SMLNUM, CFROMCCFROM1 = CFROMC*SMLNUM |
| CFROMC | <--- | CFROMCFROMC = CFROM, CFROM1CFROMC = CFROM1 |
| CTO1 | <--- | CTOCCTO1 = CTOC / BIGNUM, BIGNUMCTO1 = CTOC / BIGNUM |
| CTOC | <--- | CTOCTOC = CTO, CTO1CTOC = CTO1 |
| ICOFFA | <--- | JAICOFFA = MOD( JA-1, DESCA( NB_ ) ), NB_ICOFFA = MOD( JA-1, DESCA( NB_ ) ) |
| ICTXT | <--- | CTXT_ICTXT = DESCA( CTXT_ ) |
| ICURCOL | <--- | IACOLICURCOL = IACOL, ICURCOLICURCOL = MOD( ICURCOL+1, NPCOL ){2ICURCOL = MOD( ICURCOL+1, NPCOL ), 3ICURCOL = MOD( ICURCOL+1, NPCOL ), 4ICURCOL = MOD( ICURCOL+1, NPCOL ), 5ICURCOL = MOD( ICURCOL+1, NPCOL ), 6ICURCOL = MOD( ICURCOL+1, NPCOL ), 7ICURCOL = MOD( ICURCOL+1, NPCOL ), 8ICURCOL = MOD( ICURCOL+1, NPCOL )}, NPCOLICURCOL = MOD( ICURCOL+1, NPCOL ){2ICURCOL = MOD( ICURCOL+1, NPCOL ), 3ICURCOL = MOD( ICURCOL+1, NPCOL ), 4ICURCOL = MOD( ICURCOL+1, NPCOL ), 5ICURCOL = MOD( ICURCOL+1, NPCOL ), 6ICURCOL = MOD( ICURCOL+1, NPCOL ), 7ICURCOL = MOD( ICURCOL+1, NPCOL ), 8ICURCOL = MOD( ICURCOL+1, NPCOL )} |
| ICURROW | <--- | IAROWICURROW = IAROW, ICURROWICURROW = MOD( ICURROW+1, NPROW ){2ICURROW = MOD( ICURROW+1, NPROW ), 3ICURROW = MOD( ICURROW+1, NPROW ), 4ICURROW = MOD( ICURROW+1, NPROW ), 5ICURROW = MOD( ICURROW+1, NPROW ), 6ICURROW = MOD( ICURROW+1, NPROW )}, INXTROWICURROW = INXTROW{2ICURROW = INXTROW}, NPROWICURROW = MOD( ICURROW+1, NPROW ){2ICURROW = MOD( ICURROW+1, NPROW ), 3ICURROW = MOD( ICURROW+1, NPROW ), 4ICURROW = MOD( ICURROW+1, NPROW ), 5ICURROW = MOD( ICURROW+1, NPROW ), 6ICURROW = MOD( ICURROW+1, NPROW )} |
| II | <--- | IIII = II + JB, IIADO 20 II = IIA, IIA+MP-1{2II = IIA, 3II = IIA, 4II = IIA}, JBII = II + JB, MPDO 20 II = IIA, IIA+MP-1 |
| INXTROW | <--- | ICURROWINXTROW = MOD( ICURROW+1, NPROW ), NPROWINXTROW = MOD( ICURROW+1, NPROW ) |
| IOFFA | <--- | IOFFAIOFFA = IOFFA + LDA{2IOFFA = IOFFA + LDA, 3IOFFA = IOFFA + LDA, 4IOFFA = IOFFA + LDA, 5IOFFA = IOFFA + LDA, 6IOFFA = IOFFA + LDA, 7IOFFA = IOFFA + LDA, 8IOFFA = IOFFA + LDA, 9IOFFA = IOFFA + LDA, 10IOFFA = IOFFA + LDA, 11IOFFA = IOFFA + LDA, 12IOFFA = IOFFA + LDA, 13IOFFA = IOFFA + LDA, 14IOFFA = IOFFA + LDA, 15IOFFA = IOFFA + LDA}, JJAIOFFA = ( JJA - 1 ) * LDA, LDAIOFFA = ( JJA - 1 ) * LDA{2IOFFA = IOFFA + LDA, 3IOFFA = IOFFA + LDA, 4IOFFA = IOFFA + LDA, 5IOFFA = IOFFA + LDA, 6IOFFA = IOFFA + LDA, 7IOFFA = IOFFA + LDA, 8IOFFA = IOFFA + LDA, 9IOFFA = IOFFA + LDA, 10IOFFA = IOFFA + LDA, 11IOFFA = IOFFA + LDA, 12IOFFA = IOFFA + LDA, 13IOFFA = IOFFA + LDA, 14IOFFA = IOFFA + LDA, 15IOFFA = IOFFA + LDA, 16IOFFA = IOFFA + LDA} |
| IROFFA | <--- | IAIROFFA = MOD( IA-1, DESCA( MB_ ) ), MB_IROFFA = MOD( IA-1, DESCA( MB_ ) ) |
| J | <--- | JADO 120 J = JN+1, JA+N-1, DESCA( NB_ ){2DO 210 J = JN+1, JA+N-1, DESCA( NB_ ), 3DO 260 J = JN+1, JA+N-1, DESCA( NB_ ), 4DO 350 J = JN+1, JA+N-1, DESCA( NB_ )}, JNDO 120 J = JN+1, JA+N-1, DESCA( NB_ ){2DO 210 J = JN+1, JA+N-1, DESCA( NB_ ), 3DO 260 J = JN+1, JA+N-1, DESCA( NB_ ), 4DO 350 J = JN+1, JA+N-1, DESCA( NB_ )}, NDO 120 J = JN+1, JA+N-1, DESCA( NB_ ){2DO 210 J = JN+1, JA+N-1, DESCA( NB_ ), 3DO 260 J = JN+1, JA+N-1, DESCA( NB_ ), 4DO 350 J = JN+1, JA+N-1, DESCA( NB_ )}, NB_DO 120 J = JN+1, JA+N-1, DESCA( NB_ ){2DO 210 J = JN+1, JA+N-1, DESCA( NB_ ), 3DO 260 J = JN+1, JA+N-1, DESCA( NB_ ), 4DO 350 J = JN+1, JA+N-1, DESCA( NB_ )} |
| JB | <--- | JJB = MIN( JA+N-J, DESCA( NB_ ) ){2JB = MIN( JA+N-J, DESCA( NB_ ) ), 3JB = MIN( JA+N-J, DESCA( NB_ ) ), 4JB = MIN( JA+N-J, DESCA( NB_ ) )}, JAJB = JN-JA+1{2JB = MIN( JA+N-J, DESCA( NB_ ) ), 3JB = JN-JA+1, 4JB = MIN( JA+N-J, DESCA( NB_ ) ), 5JB = JN-JA+1, 6JB = MIN( JA+N-J, DESCA( NB_ ) ), 7JB = MIN( JA+N-J, DESCA( NB_ ) )}, JNJB = JN-JA+1{2JB = JN-JA+1, 3JB = JN-JA+1}, NJB = MIN( JA+N-J, DESCA( NB_ ) ){2JB = MIN( JA+N-J, DESCA( NB_ ) ), 3JB = MIN( JA+N-J, DESCA( NB_ ) ), 4JB = MIN( JA+N-J, DESCA( NB_ ) )}, NB_JB = MIN( JA+N-J, DESCA( NB_ ) ){2JB = MIN( JA+N-J, DESCA( NB_ ) ), 3JB = MIN( JA+N-J, DESCA( NB_ ) ), 4JB = MIN( JA+N-J, DESCA( NB_ ) )} |
| JJ | <--- | JBJJ = JJ + JB{2JJ = JJ + JB, 3JJ = JJ + JB, 4JJ = JJ + JB, 5JJ = JJ + JB, 6JJ = JJ + JB, 7JJ = JJ + JB, 8JJ = JJ + JB}, JJJJ = JJ + JB{2JJ = JJ + JB, 3JJ = JJ + JB, 4JJ = JJ + JB, 5JJ = JJ + JB, 6JJ = JJ + JB, 7JJ = JJ + JB, 8JJ = JJ + JB}, JJADO 30 JJ = JJA, JJA+NQ-1{2JJ = JJA, 3JJ = JJA, 4JJ = JJA}, NQDO 30 JJ = JJA, JJA+NQ-1 |
| JN | <--- | ICEILJN = MIN( ICEIL( JA, DESCA( NB_ ) ) * DESCA( NB_ ), JA+N-1 ), JAJN = MIN( ICEIL( JA, DESCA( NB_ ) ) * DESCA( NB_ ), JA+N-1 ), NJN = MIN( ICEIL( JA, DESCA( NB_ ) ) * DESCA( NB_ ), JA+N-1 ), NB_JN = MIN( ICEIL( JA, DESCA( NB_ ) ) * DESCA( NB_ ), JA+N-1 ) |
| KK | <--- | IIDO 40 KK = II+LL-JJ, IIA+MP-1{2DO 60 KK = II, IIA+MP-1, 3DO 80 KK = II+LL-JJ, IIA+MP-1, 4DO 100 KK = II, IIA+MP-1, 5DO 130 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 6DO 150 KK = IIA, MIN(II-1,IIA+MP-1), 7DO 170 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 8DO 190 KK = IIA, MIN(II-1,IIA+MP-1), 9DO 220 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 10DO 240 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 11DO 270 KK = IIA, MIN(II+LL-JJ+1,IIA+MP-1), 12DO 290 KK = IIA, MIN(II-1,IIA+MP-1), 13DO 310 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 14DO 330 KK = IIA, MIN( II-1, IIA+MP-1 )}, IIADO 40 KK = II+LL-JJ, IIA+MP-1{2DO 60 KK = II, IIA+MP-1, 3DO 80 KK = II+LL-JJ, IIA+MP-1, 4DO 100 KK = II, IIA+MP-1, 5DO 130 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 6DO 150 KK = IIA, MIN(II-1,IIA+MP-1), 7DO 170 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 8DO 190 KK = IIA, MIN(II-1,IIA+MP-1), 9DO 220 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 10DO 240 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 11DO 270 KK = IIA, MIN(II+LL-JJ+1,IIA+MP-1), 12DO 290 KK = IIA, MIN(II-1,IIA+MP-1), 13DO 310 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 14DO 330 KK = IIA, MIN( II-1, IIA+MP-1 )}, JJDO 40 KK = II+LL-JJ, IIA+MP-1{2DO 80 KK = II+LL-JJ, IIA+MP-1, 3DO 130 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 4DO 170 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 5DO 220 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 6DO 240 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 7DO 270 KK = IIA, MIN(II+LL-JJ+1,IIA+MP-1), 8DO 310 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 )}, LLDO 40 KK = II+LL-JJ, IIA+MP-1{2DO 80 KK = II+LL-JJ, IIA+MP-1, 3DO 130 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 4DO 170 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 5DO 220 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 6DO 240 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 7DO 270 KK = IIA, MIN(II+LL-JJ+1,IIA+MP-1), 8DO 310 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 )}, MPDO 40 KK = II+LL-JJ, IIA+MP-1{2DO 60 KK = II, IIA+MP-1, 3DO 80 KK = II+LL-JJ, IIA+MP-1, 4DO 100 KK = II, IIA+MP-1, 5DO 130 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 6DO 150 KK = IIA, MIN(II-1,IIA+MP-1), 7DO 170 KK = IIA, MIN(II+LL-JJ,IIA+MP-1), 8DO 190 KK = IIA, MIN(II-1,IIA+MP-1), 9DO 220 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 10DO 240 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 11DO 270 KK = IIA, MIN(II+LL-JJ+1,IIA+MP-1), 12DO 290 KK = IIA, MIN(II-1,IIA+MP-1), 13DO 310 KK = IIA, MIN( II+LL-JJ+1, IIA+MP-1 ), 14DO 330 KK = IIA, MIN( II-1, IIA+MP-1 )} |
| LDA | <--- | LLD_LDA = DESCA( LLD_ ) |
| LL | <--- | JBDO 50 LL = JJ, JJ + JB -1{2DO 70 LL = JJ, JJ + JB -1, 3DO 90 LL = JJ, JJ + JB -1, 4DO 110 LL = JJ, JJ + JB -1, 5DO 140 LL = JJ, JJ + JB -1, 6DO 160 LL = JJ, JJ + JB -1, 7DO 180 LL = JJ, JJ + JB -1, 8DO 200 LL = JJ, JJ + JB -1, 9DO 230 LL = JJ, JJ+JB-1, 10DO 250 LL = JJ, JJ+JB-1, 11DO 280 LL = JJ, JJ + JB -1, 12DO 300 LL = JJ, JJ + JB -1, 13DO 320 LL = JJ, JJ + JB -1, 14DO 340 LL = JJ, JJ + JB -1}, JJDO 50 LL = JJ, JJ + JB -1{2DO 70 LL = JJ, JJ + JB -1, 3DO 90 LL = JJ, JJ + JB -1, 4DO 110 LL = JJ, JJ + JB -1, 5DO 140 LL = JJ, JJ + JB -1, 6DO 160 LL = JJ, JJ + JB -1, 7DO 180 LL = JJ, JJ + JB -1, 8DO 200 LL = JJ, JJ + JB -1, 9DO 230 LL = JJ, JJ+JB-1, 10DO 250 LL = JJ, JJ+JB-1, 11DO 280 LL = JJ, JJ + JB -1, 12DO 300 LL = JJ, JJ + JB -1, 13DO 320 LL = JJ, JJ + JB -1, 14DO 340 LL = JJ, JJ + JB -1} |
| MP | <--- | IAROWMP = NUMROC( M+IROFFA, DESCA( MB_ ), MYROW, IAROW, NPROW ), IROFFAMP = NUMROC( M+IROFFA, DESCA( MB_ ), MYROW, IAROW, NPROW ), MMP = NUMROC( M+IROFFA, DESCA( MB_ ), MYROW, IAROW, NPROW ), MB_MP = NUMROC( M+IROFFA, DESCA( MB_ ), MYROW, IAROW, NPROW ), MYROWMP = NUMROC( M+IROFFA, DESCA( MB_ ), MYROW, IAROW, NPROW ), NPROWMP = NUMROC( M+IROFFA, DESCA( MB_ ), MYROW, IAROW, NPROW ), NUMROCMP = NUMROC( M+IROFFA, DESCA( MB_ ), MYROW, IAROW, NPROW ) |
| MUL | <--- | CTOCMUL = CTOC / CFROMC, BIGNUMMUL = BIGNUM, SMLNUMMUL = SMLNUM, CFROMCMUL = CTOC / CFROMC |
| NQ | <--- | IACOLNQ = NUMROC( N+ICOFFA, DESCA( NB_ ), MYCOL, IACOL, NPCOL ), ICOFFANQ = NUMROC( N+ICOFFA, DESCA( NB_ ), MYCOL, IACOL, NPCOL ), MYCOLNQ = NUMROC( N+ICOFFA, DESCA( NB_ ), MYCOL, IACOL, NPCOL ), NNQ = NUMROC( N+ICOFFA, DESCA( NB_ ), MYCOL, IACOL, NPCOL ), NB_NQ = NUMROC( N+ICOFFA, DESCA( NB_ ), MYCOL, IACOL, NPCOL ), NPCOLNQ = NUMROC( N+ICOFFA, DESCA( NB_ ), MYCOL, IACOL, NPCOL ), NUMROCNQ = NUMROC( N+ICOFFA, DESCA( NB_ ), MYCOL, IACOL, NPCOL ) |
| SMLNUM | <--- | ICTXTSMLNUM = PSLAMCH( ICTXT, 'S' ), PSLAMCHSMLNUM = PSLAMCH( ICTXT, 'S' ) |
|
|
Analysis elements of the routine PCLASCL() Put the mouse over each element to display detailed matching information
Assigned variables |
| | | BIGNUM , BLOCK_CYCLIC_2D , CFROM1 , CFROMC , CSRC_ , CTO1 , CTOC , CTXT_ , DLEN_ , DONE , DTYPE_ , ICOFFA , ICTXT , ICURCOL , ICURROW , II , INFO , INXTROW , IOFFA , IROFFA , ITYPE , J , JB , JJ , JN , KK , LDA , LL , LLD_ , M_ , MB_ , MP , MUL , N_ , NB_ , NQ , ONE , RSRC_ , SMLNUM , ZERO |
|
Active variables |
| | | A , BIGNUM , BLOCK_CYCLIC_2D , CFROM , CFROM1 , CFROMC , CSRC_ , CTO , CTO1 , CTOC , CTXT_ , DESCA , DLEN_ , DONE , DTYPE_ , IA , IACOL , IAROW , ICEIL , ICOFFA , ICTXT , ICURCOL , ICURROW , II , IIA , INFO , INXTROW , IOFFA , IROFFA , ITYPE , J , JA , JB , JJ , JJA , JN , KK , LDA , LL , LLD_ , LSAME , M , M_ , MB_ , MP , MUL , MYCOL , MYROW , N , N_ , NB_ , NPCOL , NPROW , NQ , NUMROC , ONE , PSLAMCH , RSRC_ , SMLNUM , TYPE , ZERO |
|
Accessed arrays [ array name : associated index ] |
| | A | : II+(JJ+JB-2)*LDA , II+(JJ+JB-2)*LDA , IOFFA+II , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK , IOFFA+KK |
| | DESCA | : CTXT_ , LLD_ , MB_ , MB_ , NB_ , NB_ , NB_ , NB_ , NB_ , NB_ , NB_ , NB_ , NB_ , NB_ , NB_ |
| | ICEIL | : JA, DESCA( NB_ ) |
| | LSAME | : TYPE, 'G' , TYPE, 'H' , TYPE, 'L' , TYPE, 'U' |
| | NUMROC | : M+IROFFA, DESCA( MB_ ), MYROW, IAROW, NPROW , N+ICOFFA, DESCA( NB_ ), MYCOL, IACOL, NPCOL |
| | PSLAMCH | : ICTXT, 'S' |
|
Conditional statements [ statement : associated predicate ] |
| | do | : ( 30 JJ = JJA , JJA + NQ - 1 ) , ( 20 II = IIA , IIA + MP - 1 ) , ( 50 LL = JJ , JJ + JB - 1 ) , ( 40 KK = II + LL - JJ , IIA + MP - 1 ) , ( 70 LL = JJ , JJ + JB - 1 ) , ( 60 KK = II , IIA + MP - 1 ) , ( 120 J = JN + 1 , JA + N - 1 , DESCA( NB_ ) ) , ( 90 LL = JJ , JJ + JB - 1 ) , ( 80 KK = II + LL - JJ , IIA + MP - 1 ) , ( 110 LL = JJ , JJ + JB - 1 ) , ( 100 KK = II , IIA + MP - 1 ) , ( 140 LL = JJ , JJ + JB - 1 ) , ( 130 KK = IIA , MIN(II + LL - JJ , IIA + MP - 1) ) , ( 160 LL = JJ , JJ + JB - 1 ) , ( 150 KK = IIA , MIN(II - 1 , IIA + MP - 1) ) , ( 210 J = JN + 1 , JA + N - 1 , DESCA( NB_ ) ) , ( 180 LL = JJ , JJ + JB - 1 ) , ( 170 KK = IIA , MIN(II + LL - JJ , IIA + MP - 1) ) , ( 200 LL = JJ , JJ + JB - 1 ) , ( 190 KK = IIA , MIN(II - 1 , IIA + MP - 1) ) , ( 230 LL = JJ , JJ + JB - 1 ) , ( 220 KK = IIA , MIN( II + LL - JJ + 1 , IIA + MP - 1 ) ) , ( 260 J = JN + 1 , JA + N - 1 , DESCA( NB_ ) ) , ( 250 LL = JJ , JJ + JB - 1 ) , ( 240 KK = IIA , MIN( II + LL - JJ + 1 , IIA + MP - 1 ) ) , ( 280 LL = JJ , JJ + JB - 1 ) , ( 270 KK = IIA , MIN(II + LL - JJ + 1 , IIA + MP - 1) ) , ( 300 LL = JJ , JJ + JB - 1 ) , ( 290 KK = IIA , MIN(II - 1 , IIA + MP - 1) ) , ( 350 J = JN + 1 , JA + N - 1 , DESCA( NB_ ) ) , ( 320 LL = JJ , JJ + JB - 1 ) , ( 310 KK = IIA , MIN( II + LL - JJ + 1 , IIA + MP - 1 ) ) , ( 340 LL = JJ , JJ + JB - 1 ) , ( 330 KK = IIA , MIN( II - 1 , IIA + MP - 1 ) ) |
| | if | : ( NPROW.EQ. - 1 ) , ( INFO.EQ.0 ) , ( (LSAME( TYPE , 'G' ) ) ) , ( (LSAME( TYPE , 'L' ) ) ) , ( (LSAME( TYPE , 'U' ) ) ) , ( (LSAME( TYPE , 'H' ) ) ) , ( ITYPE.EQ. - 1 ) , ( CFROM.EQ.ZERO ) , ( INFO.NE.0 ) , ( possible ) , ( N.EQ.0 .OR. M.EQ.0 ) , ( MYROW.EQ.IAROW ) , ( MYCOL.EQ.IACOL ) , ( (ABS( CFROM1 ).GT.ABS( CTOC ) .AND. CTOC.NE.ZERO ) ) , ( (ABS( CTO1 ).GT.ABS( CFROMC ) ) ) , ( ITYPE.EQ.0 ) , ( ITYPE.EQ.1 ) , ( MYCOL.EQ.ICURCOL ) , ( MYROW.EQ.ICURROW ) , ( MYROW.EQ.ICURROW ) , ( MYCOL.EQ.ICURCOL ) , ( MYROW.EQ.ICURROW ) , ( MYROW.EQ.ICURROW ) , ( ITYPE.EQ.2 ) , ( MYCOL.EQ.ICURCOL ) , ( MYROW.EQ.ICURROW ) , ( MYROW.EQ.ICURROW ) , ( MYCOL.EQ.ICURCOL ) , ( MYROW.EQ.ICURROW ) , ( MYROW.EQ.ICURROW ) , ( ITYPE.EQ.3 ) , ( NPROW.EQ.1 ) , ( MYCOL.EQ.ICURCOL ) , ( MYCOL.EQ.ICURCOL ) , ( MYCOL.EQ.ICURCOL ) , ( MYROW.EQ.ICURROW ) , ( MYROW.EQ.INXTROW .AND. II.LE.IIA + MP - 1 ) , ( MYROW.EQ.ICURROW ) , ( MYCOL.EQ.ICURCOL ) , ( MYROW.EQ.ICURROW ) , ( MYROW.EQ.INXTROW .AND. II.LE.IIA + MP - 1 ) , ( MYROW.EQ.ICURROW ) , ( .NOT.DONE ) |
|
| List of variables | A BIGNUM BLOCK_CYCLIC_2D CFROM CFROM1 CFROMC CSRC_
| CTO CTO1 CTOC CTXT_ DLEN_ DONE DTYPE_ IA
| IACOL IAROW ICEIL ICOFFA ICTXT ICURCOL ICURROW II
| IIA INFO INXTROW IOFFA IROFFA ITYPE J JA
| JB JJ JJA JN KK LDA LL LLD_
| LSAME M M_ MB_ MP MUL MYCOL MYROW
| N N_ NB_ NPCOL NPROW NQ NUMROC ONE
| PSLAMCH RSRC_ SMLNUM TYPE ZERO | | close
| |
A
BIGNUM
BLOCK_CYCLIC_2D
CFROM
CFROM1
CFROMC
CSRC_
CTO
CTO1
CTOC
CTXT_
DLEN_
DONE
DTYPE_
IA
IACOL
IAROW
ICEIL
ICOFFA
ICTXT
ICURCOL
ICURROW
II
IIA
INFO
INXTROW
IOFFA
IROFFA
ITYPE
J
JA
JB
JJ
JJA
JN
KK
LDA
LL
LLD_
LSAME
M
M_
MB_
MP
MUL
MYCOL
MYROW
N
N_
NB_
NPCOL
NPROW
NQ
NUMROC
ONE
PSLAMCH
RSRC_
SMLNUM
TYPE
ZERO
369
| |