1. Perhaps we should switch completely to external indices being of kind LPK and internal indices being of type IPK, and the two morph independently in int32/int64 (although admittedly LPK=32 and IPK=64 does not make much sense) 2. Change sizeof_ constant names accordingly to sizeof_ipk and sizeof_lpk. 3. Should we define a psb_l_vect_type? But then, if I==L how can we distinguish? Answer: if I==L the two vect type are still considered different, even when internally they are the same. 4. So, let's rewrite under these rules: psb_mpk_: Always 32 bits, used for MPI related stuff. psb_ipk_: Can be 32 or 64 bits, always used for "local" indices and sizes psb_lpk_: Can be 32 or 64 bits, always used for "global" indices and sizes, must be psb_lpk_ >= psb_ipk_ psb_8pk_: always 64 bits, used for SIZEOF & friends.