Lösungsvorschlag

Hier wird ausgenutzt, dass wir mehrere Blöcke haben können, wobei ein Block genau einer Zeile entspricht. Dies geht nur, wenn die Elemente einer Zeile unmittelbar hintereinander im Speicher liegen, also A.incCol == 1 gilt.

MPI_Type_vector(
   /* count = */ A.numRows,
   /* blocklength = */ A.numCols,
   /* stride = */ A.incRow,
   /* element type = */ get_type(A(0, 0)),
   /* newly created type = */ &datatype);