2078
2079
2080
2081
2082
2083
2084
2085 INTEGER ICTXT, INCX, IX, JX, N
2086
2087
2088 INTEGER DESCX( * )
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196 INTEGER BLOCK_CYCLIC_2D_INB, CSRC_, CTXT_, DLEN_,
2197 $ DTYPE_, IMB_, INB_, LLD_, MB_, M_, NB_, N_,
2198 $ RSRC_
2199 parameter( block_cyclic_2d_inb = 2, dlen_ = 11,
2200 $ dtype_ = 1, ctxt_ = 2, m_ = 3, n_ = 4,
2201 $ imb_ = 5, inb_ = 6, mb_ = 7, nb_ = 8,
2202 $ rsrc_ = 9, csrc_ = 10, lld_ = 11 )
2203
2204
2205 LOGICAL COLREP, ROWREP
2206 INTEGER IIX, IXCOL, IXROW, JJX, MYCOL, MYROW, NPCOL,
2207 $ NPROW
2208
2209
2211
2212
2213
2214 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
2215
2216 CALL pb_infog2l( ix, jx, descx, nprow, npcol, myrow, mycol,
2217 $ iix, jjx, ixrow, ixcol )
2218 rowrep = ( ixrow.EQ.-1 )
2219 colrep = ( ixcol.EQ.-1 )
2220
2221 IF( descx( m_ ).EQ.1 .AND. n.EQ.1 ) THEN
2222
2223
2224
2225
2226 pisinscope = ( ( ixrow.EQ.myrow .OR. rowrep ) .AND.
2227 $ ( ixcol.EQ.mycol .OR. colrep ) )
2228
2229 ELSE
2230
2231 IF( incx.EQ.descx( m_ ) ) THEN
2232
2233
2234
2236
2237 ELSE
2238
2239
2240
2242
2243 END IF
2244
2245 END IF
2246
2247 RETURN
2248
2249
2250
subroutine pb_infog2l(i, j, desc, nprow, npcol, myrow, mycol, ii, jj, prow, pcol)
logical function pisinscope(ictxt, n, ix, jx, descx, incx)