Can't comment on any of the details, but you need to make sure you matrices are column major to support interfacing with fortran. ie.: matrix<double, ublas::column_major> U(3,3);
I think that in the newest versions of the bindings this will be verified at compilation time, but until then you need to be very careful.