1 INTEGER FUNCTION piparmq( ICTXT, ISPEC, NAME, OPTS, N, ILO, IHI,
15 INTEGER ictxt, ihi, ilo, ispec, lworknb, n
16 CHARACTER name*( * ), opts*( * )
178 INTEGER inmin, inwin, inibl, ishfts, iacc22
179 parameter( inmin = 12, inwin = 13, inibl = 14,
180 $ ishfts = 15, iacc22 = 16 )
181 INTEGER nmin, nmin2, k22min, kacmin, nibble, knwswp
182 parameter( nmin = 220, k22min = 14, kacmin = 14,
183 $ nibble = 14, knwswp = 500, nmin2 = 770 )
185 parameter( two = 2.0 )
188 INTEGER nh, ns, myrow, mycol, nprow, npcol, np
191 INTRINSIC log,
max, mod, nint, real
198 EXTERNAL blacs_gridinfo
201 CALL blacs_gridinfo( ictxt, nprow, npcol, myrow, mycol )
203 IF( ( ispec.EQ.ishfts ) .OR. ( ispec.EQ.inwin ) .OR.
204 $ ( ispec.EQ.iacc22 ) )
THEN
215 $ ns =
max( 10, nh / nint( log( real( nh ) ) / log( two ) ))
237 $ ns =
iceil( nh, 25 )
238 ns =
max( ns, 2*
min(nprow,npcol) )
239 ns =
max( 2, ns-mod( ns, 2 ) )
242 IF( ispec.EQ.inmin )
THEN
251 ELSE IF( ispec.EQ.inibl )
THEN
257 np =
min( nprow, npcol )
263 $ ceiling( 335.0d+0 * nh**(-0.44d+0) * np ) )
266 ELSE IF( ispec.EQ.ishfts )
THEN
272 ELSE IF( ispec.EQ.inwin )
THEN
276 IF( nh.LE.knwswp )
THEN
282 ELSE IF( ispec.EQ.iacc22 )
THEN