Чтобы указать источник сообщения или получателя, вы должны указать ранг и коммуникатора; пара однозначно определяет процесс. Одно звание похоже на номер улицы без названия улицы.
Вы передаете коммуникатор, но он имеет неопределенное значение; твой код
MPI_Comm mpicomm;
// ...
Send(data, destination, mpicomm);
передает в коммуникатор, но вы нигде не присвоили ему значение. В зависимости от того, как значение в этой переменной и как ваша реализация MPI его обрабатывает, вы можете получить тупик или, с помощью openmpi, полезное сообщение об ошибке.
Что вы, вероятно, хотите, это:
MPI_Comm mpicomm = MPI_COMM_WORLD;
//..
Send(data, destination, mpicomm);
int data = Recieve(status, mpicomm, 0);
или, что то же самое, полностью исключить переменную mpicomm:
Send(data, destination, MPI_COMM_WORLD);
//...
int data = Recieve(status, MPI_COMM_WORLD, 0);
любой из них должен работать.