In this chapter we illustrate the data structures used for definition of routines interfaces. They include data structures for sparse matrices, communication descriptors and preconditioners.
All the data types and the basic subroutine interfaces related to descriptors and sparse matrices are defined in the module psb_base_mod; this will have to be included by every user subroutine that makes use of the library. The preconditioners are defined in the module psb_prec_mod
Integer, real and complex data types are parametrized with a kind type defined in the library as follows:
The integer kinds for local and global indices can be chosen at configure time to hold 4 or 8 bytes, with the global indices at least as large as the local ones. Together with the classes attributes we also discuss their methods. Most methods detailed here only act on the local variable, i.e. their action is purely local and asynchronous unless otherwise stated. The list of methods here is not completely exhaustive; many methods, especially those that alter the contents of the various objects, are usually not needed by the end-user, and therefore are described in the developer’s documentation.