system of classes
well, for an easiness of use, we would need a system of classes on top of relatively low-level wrappers.
We need probably a "blacs" class, then a "distributed_matrix" class and then "scalapack" implementing methods for diagonalization, matrix-matrix products etc using the DISTRIBUTED_MATRIX classes as parameters.
In the distributed_matrix class, we will need methods ranging from simple initializations (given numpy dense matrices) towards initialization from the scipy's sparse matrix formats and beyond (a hell of OpenMX/Fireball matrices), reading from disc, or initializing with callbacks? initializing with other distributed matrices etc. Probably it makes sense to inherit the "blacs" class in the distributed_matrix and scalapack classes.
Peter