Added message passing with derived type and collective interface
Merge stuff