This is with a debug build of 1.8.5 I'm getting segfaults with tests related to the use of MPI_Type_create_f90_{real|complex}. See below the attached test case and the valgrind output (BTW, MPI_Type_create_f90_integer seems to be OK).
$ cat type_f90.c #include <mpi.h> int main(int argc, char *argv[]) { MPI_Datatype datatype; MPI_Init(&argc, &argv); MPI_Type_create_f90_integer(4, &datatype); MPI_Type_create_f90_real( 6, 30, &datatype); MPI_Type_create_f90_real(15, 300, &datatype); MPI_Type_create_f90_complex( 6, 30, &datatype); MPI_Type_create_f90_complex(15, 300, &datatype); MPI_Finalize(); return 0; } $ mpicc type_f90.c $ valgrind -q ./a.out ==1025== Invalid write of size 4 ==1025== at 0x4C740BF: ompi_datatype_set_args (ompi_datatype_args.c:206) ==1025== by 0x4CC91CE: PMPI_Type_create_f90_real (ptype_create_f90_real.c:108) ==1025== by 0x400878: main (in /home/dalcinl/Devel/BUGS-MPI/openmpi/a.out) ==1025== Address 0x8e703cc is 0 bytes after a block of size 60 alloc'd ==1025== at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==1025== by 0x53236F0: opal_malloc (malloc.c:101) ==1025== by 0x4C739E3: ompi_datatype_set_args (ompi_datatype_args.c:121) ==1025== by 0x4CC91CE: PMPI_Type_create_f90_real (ptype_create_f90_real.c:108) ==1025== by 0x400878: main (in /home/dalcinl/Devel/BUGS-MPI/openmpi/a.out) ==1025== ==1025== Invalid write of size 4 ==1025== at 0x4C740BF: ompi_datatype_set_args (ompi_datatype_args.c:206) ==1025== by 0x4CC91CE: PMPI_Type_create_f90_real (ptype_create_f90_real.c:108) ==1025== by 0x40088E: main (in /home/dalcinl/Devel/BUGS-MPI/openmpi/a.out) ==1025== Address 0x8e7073c is 0 bytes after a block of size 60 alloc'd ==1025== at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==1025== by 0x53236F0: opal_malloc (malloc.c:101) ==1025== by 0x4C739E3: ompi_datatype_set_args (ompi_datatype_args.c:121) ==1025== by 0x4CC91CE: PMPI_Type_create_f90_real (ptype_create_f90_real.c:108) ==1025== by 0x40088E: main (in /home/dalcinl/Devel/BUGS-MPI/openmpi/a.out) ==1025== ==1025== Invalid write of size 4 ==1025== at 0x4C740BF: ompi_datatype_set_args (ompi_datatype_args.c:206) ==1025== by 0x4CC8636: PMPI_Type_create_f90_complex (ptype_create_f90_complex.c:110) ==1025== by 0x4008A4: main (in /home/dalcinl/Devel/BUGS-MPI/openmpi/a.out) ==1025== Address 0x8e70aac is 0 bytes after a block of size 60 alloc'd ==1025== at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==1025== by 0x53236F0: opal_malloc (malloc.c:101) ==1025== by 0x4C739E3: ompi_datatype_set_args (ompi_datatype_args.c:121) ==1025== by 0x4CC8636: PMPI_Type_create_f90_complex (ptype_create_f90_complex.c:110) ==1025== by 0x4008A4: main (in /home/dalcinl/Devel/BUGS-MPI/openmpi/a.out) ==1025== ==1025== Invalid write of size 4 ==1025== at 0x4C740BF: ompi_datatype_set_args (ompi_datatype_args.c:206) ==1025== by 0x4CC8636: PMPI_Type_create_f90_complex (ptype_create_f90_complex.c:110) ==1025== by 0x4008BA: main (in /home/dalcinl/Devel/BUGS-MPI/openmpi/a.out) ==1025== Address 0x8e70e1c is 0 bytes after a block of size 60 alloc'd ==1025== at 0x4A0645D: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==1025== by 0x53236F0: opal_malloc (malloc.c:101) ==1025== by 0x4C739E3: ompi_datatype_set_args (ompi_datatype_args.c:121) ==1025== by 0x4CC8636: PMPI_Type_create_f90_complex (ptype_create_f90_complex.c:110) ==1025== by 0x4008BA: main (in /home/dalcinl/Devel/BUGS-MPI/openmpi/a.out) ==1025== -- Lisandro Dalcin ============ Research Scientist Computer, Electrical and Mathematical Sciences & Engineering (CEMSE) Numerical Porous Media Center (NumPor) King Abdullah University of Science and Technology (KAUST) http://numpor.kaust.edu.sa/ 4700 King Abdullah University of Science and Technology al-Khawarizmi Bldg (Bldg 1), Office # 4332 Thuwal 23955-6900, Kingdom of Saudi Arabia http://www.kaust.edu.sa Office Phone: +966 12 808-0459