What you need to know to use these subprograms

bpntrb(*) - Integer array of length mb such that bpntrb(j) points to location val(:, :, j) of the first nonzero block in block row j.

bpntre(*) - Integer array of length mb such that pntre(j)-1points to location val(:, :, j) of the last nonzero block in block row j.

The matrix in Table 4-17 could be represented in BSR format as:

Table 4-19 BSR Format Matrix

bindx=

1

3

2

3

bpntrb=

1

3

 

 

bpntre=

3

4

 

 

val(1:2, 1:2, 1)=

11

12

 

 

 

21

22

 

 

val(1:2, 1:2, 2)=

15

16

 

 

 

25

26

 

 

val(1:2, 1:2, 3)=

33

0

 

 

 

43

44

 

 

val(1:2, 1:2, 4)=

35

36

 

 

 

0

46

 

 

BMR - Block modified sparse row. The BMR format is a variation of the BSR format obtained by storing the main diagonal of the matrix in a specific array bdiag:

bdiag(lb, lb, *) - Scalar matrix of dimension lb-by-lb-by-dcontaining the main diagonal of A, where d=min(mb, kb) is the number of blocks forming the main diagonal.

BDI- Block sparse diagonal. Given a sparse block matrix A formed by mb-by-kbsquare blocks of size lb-by-lbeach and with nbdiag nonzero block diagonals, the block compressed sparse diagonal format represents the nonzero block diagonals of A using the same variables as in the DIA format. Each nonzero dense block is stored in column major order. Two arrays are required for the BDI representation:

Chapter 4 Sparse BLAS Operations 435