Implemented blocking to allow large dipoles to fit into memory