Defines a matrix.  
 | 
| subroutine  | matrix_init (m, nrows, ncols) | 
|   | Initialise a matrix of size nrows*ncols.  
  | 
|   | 
| subroutine  | matrix_free (m) | 
|   | Deallocate a matrix.  
  | 
|   | 
| integer function  | matrix_size (m) | 
|   | Returns the number of entries in the matrix.  
  | 
|   | 
| subroutine  | matrix_assign_matrix (m, w) | 
|   | Assignment \( m = w \).  
  | 
|   | 
| subroutine  | matrix_assign_scalar (m, s) | 
|   | Assignment \( m = s \).  
  | 
|   | 
| type(matrix_t) function  | matrix_add_matrix (m, b) | 
|   | Matrix-matrix addition \( v = m + b \).  
  | 
|   | 
| type(matrix_t) function  | matrix_add_scalar_left (m, c) | 
|   | Matrix-scalar addition \( v = m + c \).  
  | 
|   | 
| type(matrix_t) function  | matrix_add_scalar_right (c, m) | 
|   | Scalar-matrix addition \( v = c + m \).  
  | 
|   | 
| type(matrix_t) function  | matrix_sub_matrix (m, b) | 
|   | Matrix-matrix subtraction \( v = m - b \).  
  | 
|   | 
| type(matrix_t) function  | matrix_sub_scalar_left (m, c) | 
|   | Matrix-scalar subtraction \( v = m - c \).  
  | 
|   | 
| type(matrix_t) function  | matrix_sub_scalar_right (c, m) | 
|   | Scalar-matrix subtraction \( v = c - m \).  
  | 
|   | 
| type(matrix_t) function  | matrix_cmult_left (m, c) | 
|   | Matrix-scalar multiplication \( v = m*c \).  
  | 
|   | 
| type(matrix_t) function  | matrix_cmult_right (c, m) | 
|   | Scalar-matrix multiplication \( v = c*m \).  
  | 
|   | 
| subroutine  | matrix_bcknd_inverse (m) | 
|   | 
| subroutine  | cpu_matrix_inverse (m) | 
|   |