This directory contains the MLD2P4 set of preconditioners. developed by Salvatore Filippone Pasqua D'Ambra Daniela di Serafino Alfredo Buttari To compile: 0. Unpack the tar file in a directory of your choice (preferrably outside the main PSBLAS directory). 1. run configure --with-psblas= adding the options for SuperLU, SuperLU_Dist, UMFPACK as desired. 2. Tweak Make.inc if you are not satisfied. 3. make; 4. Go into the test subdirectory and build the examples of your choice. Notes: - The single precision version is supported only by SuperLU; thus, even if you specify at configure to use UMFPACK or SuperLU_Dist, the corresponding preconditioner options will be available only from the double precision version. - The Krylov methods are linked and recompiled from the PSBLAS source directory; thus we define here two libraries, libmld_krylov.a and libmld_prec.a, and a bunch of modules, including a duplicate of psb_krylov_mod.mod. The directories for the MLD2P4 versions, in both the include and link paths, must come before the PSBLAS ones, because the Krylov interface is superseded by the new one. Once the CLASS() construct becomes available in Gnu Fortran, this will no longer be necessary, and the duplicate Krylov library and module will go away, leaving only the mld_prec library and module. - A program that was using the PSBLAS precoditioners needs no source code changes, but should be recompiled. If the new preconditioner (or preconditioner options, such as ILU(N) factorization) are required, only the type of the preconditioner object and its setup/build/free calls should be updated; the rest of the application continues to make use of the PSBLAS existing interfaces.