I changed a single send which is called thousands of times from
MPI_SEND (& MPI_ISEND) to MPI_BSEND (& MPI_IBSEND) and my Fortran 90
code slowed down by a factor of 10.

I've looked at several references and I can't see where I'm making a
mistake. The MPI_SEND is for MPI_PACKED data, so it's first
parameter is an allocated character array. I also allocated a
character array for the buffer passed to MPI_BUFFER_ATTACH.

Looking at the model implementation in a reference they give a model
of using MPI_PACKED inside MPI_BSEND, I was wondering if this could
be a problem, i.e. packing packed data?

Michael

ps. I have to use OpenMPI 1.1.4 to maintain compatibility with a
major HPC center.