Skip to content

Commit 2ca6777

Browse files
committed
abi_converters: add fortran datatypes to
the converters. Signed-off-by: Howard Pritchard <[email protected]>
1 parent 0d492e7 commit 2ca6777

File tree

1 file changed

+132
-0
lines changed

1 file changed

+132
-0
lines changed

ompi/mpi/c/abi_converters.h

Lines changed: 132 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -333,6 +333,75 @@ __opal_attribute_always_inline__ static inline MPI_Datatype ompi_convert_abi_dat
333333
return MPI_SHORT_INT;
334334
} else if (MPI_LONG_DOUBLE_INT_ABI_INTERNAL == datatype) {
335335
return MPI_LONG_DOUBLE_INT;
336+
} else if (MPI_LOGICAL_ABI_INTERNAL == datatype) {
337+
return MPI_LOGICAL;
338+
} else if (MPI_INTEGER_ABI_INTERNAL == datatype) {
339+
return MPI_INTEGER;
340+
} else if (MPI_REAL_ABI_INTERNAL == datatype) {
341+
return MPI_REAL;
342+
} else if (MPI_COMPLEX_ABI_INTERNAL == datatype) {
343+
return MPI_COMPLEX;
344+
} else if (MPI_DOUBLE_PRECISION_ABI_INTERNAL == datatype) {
345+
return MPI_DOUBLE_PRECISION;
346+
} else if (MPI_CHARACTER_ABI_INTERNAL == datatype) {
347+
return MPI_CHARACTER;
348+
} else if (MPI_DOUBLE_COMPLEX_ABI_INTERNAL == datatype) {
349+
return MPI_DOUBLE_COMPLEX;
350+
#if OMPI_BUILD_FORTRAN_BINDINGS
351+
} else if (MPI_LOGICAL1_ABI_INTERNAL == datatype) {
352+
return MPI_LOGICAL1;
353+
} else if (MPI_LOGICAL2_ABI_INTERNAL == datatype) {
354+
return MPI_LOGICAL2;
355+
} else if (MPI_LOGICAL4_ABI_INTERNAL == datatype) {
356+
return MPI_LOGICAL4;
357+
} else if (MPI_LOGICAL8_ABI_INTERNAL == datatype) {
358+
return MPI_LOGICAL8;
359+
#if 0
360+
/* TODO: need to add in a LOGICAL16 test */
361+
#if OMPI_HAVE_FORTRAN_LOGICAL16
362+
} else if (MPI_LOGICAL16 == datatype) {
363+
return MPI_LOGICAL16_ABI_INTERNAL;
364+
#endif
365+
#endif
366+
} else if (MPI_INTEGER1_ABI_INTERNAL == datatype) {
367+
return MPI_INTEGER1;
368+
} else if (MPI_INTEGER2_ABI_INTERNAL == datatype) {
369+
return MPI_INTEGER2;
370+
} else if (MPI_INTEGER4_ABI_INTERNAL == datatype) {
371+
return MPI_INTEGER4;
372+
} else if (MPI_INTEGER8_ABI_INTERNAL == datatype) {
373+
return MPI_INTEGER8;
374+
} else if (MPI_INTEGER16_ABI_INTERNAL == datatype) {
375+
#if OMPI_HAVE_FORTRAN_INTEGER16
376+
return MPI_INTEGER16;
377+
#else
378+
return MPI_DATATYPE_NULL;
379+
#endif
380+
} else if (MPI_REAL2_ABI_INTERNAL == datatype) {
381+
#if OMPI_HAVE_FORTRAN_REAL2
382+
return MPI_REAL2;
383+
#else
384+
return MPI_DATATYPE_NULL;
385+
#endif
386+
} else if (MPI_REAL4_ABI_INTERNAL == datatype) {
387+
return MPI_REAL4;
388+
} else if (MPI_REAL8_ABI_INTERNAL == datatype) {
389+
return MPI_REAL8;
390+
} else if (MPI_REAL16_ABI_INTERNAL == datatype) {
391+
return MPI_REAL16;
392+
} else if (MPI_COMPLEX4_ABI_INTERNAL == datatype) {
393+
#if OMPI_HAVE_FORTRAN_COMPLEX4
394+
return MPI_COMPLEX4;
395+
#else
396+
return MPI_DATATYPE_NULL;
397+
#endif
398+
} else if (MPI_COMPLEX8_ABI_INTERNAL == datatype) {
399+
return MPI_COMPLEX8;
400+
} else if (MPI_COMPLEX16_ABI_INTERNAL == datatype) {
401+
return MPI_COMPLEX16;
402+
} else if (MPI_COMPLEX32_ABI_INTERNAL == datatype) {
403+
return MPI_COMPLEX32;
404+
#endif /* OMPI_BUILD_FORTRAN_BINDINGS */
336405
}
337406
return (MPI_Datatype) datatype;
338407
}
@@ -426,6 +495,69 @@ __opal_attribute_always_inline__ static inline MPI_Datatype_ABI_INTERNAL ompi_co
426495
return MPI_SHORT_INT_ABI_INTERNAL;
427496
} else if (MPI_LONG_DOUBLE_INT == datatype) {
428497
return MPI_LONG_DOUBLE_INT_ABI_INTERNAL;
498+
} else if (MPI_LOGICAL == datatype) {
499+
return MPI_LOGICAL_ABI_INTERNAL;
500+
} else if (MPI_INTEGER == datatype) {
501+
return MPI_INTEGER_ABI_INTERNAL;
502+
} else if (MPI_REAL == datatype) {
503+
return MPI_REAL_ABI_INTERNAL;
504+
} else if (MPI_COMPLEX == datatype) {
505+
return MPI_COMPLEX_ABI_INTERNAL;
506+
} else if (MPI_DOUBLE_PRECISION == datatype) {
507+
return MPI_DOUBLE_PRECISION_ABI_INTERNAL;
508+
} else if (MPI_CHARACTER == datatype) {
509+
return MPI_CHARACTER_ABI_INTERNAL;
510+
} else if (MPI_DOUBLE_COMPLEX == datatype) {
511+
return MPI_DOUBLE_COMPLEX_ABI_INTERNAL;
512+
#if OMPI_BUILD_FORTRAN_BINDINGS
513+
} else if (MPI_LOGICAL1 == datatype) {
514+
return MPI_LOGICAL1_ABI_INTERNAL;
515+
} else if (MPI_LOGICAL2 == datatype) {
516+
return MPI_LOGICAL2_ABI_INTERNAL;
517+
} else if (MPI_LOGICAL4 == datatype) {
518+
return MPI_LOGICAL4_ABI_INTERNAL;
519+
} else if (MPI_LOGICAL8 == datatype) {
520+
return MPI_LOGICAL8_ABI_INTERNAL;
521+
#if 0
522+
/* TODO: need to add in a LOGICAL16 test */
523+
#if OMPI_HAVE_FORTRAN_LOGICAL16
524+
} else if (MPI_LOGICAL16 == datatype) {
525+
return MPI_LOGICAL16_ABI_INTERNAL;
526+
#endif
527+
#endif
528+
} else if (MPI_INTEGER1 == datatype) {
529+
return MPI_INTEGER1_ABI_INTERNAL;
530+
} else if (MPI_INTEGER2 == datatype) {
531+
return MPI_INTEGER2_ABI_INTERNAL;
532+
} else if (MPI_INTEGER4 == datatype) {
533+
return MPI_INTEGER4_ABI_INTERNAL;
534+
} else if (MPI_INTEGER8 == datatype) {
535+
return MPI_INTEGER8_ABI_INTERNAL;
536+
#if OMPI_HAVE_FORTRAN_INTEGER16
537+
} else if (MPI_INTEGER16 == datatype) {
538+
return MPI_INTEGER16_ABI_INTERNAL;
539+
#endif
540+
#if OMPI_HAVE_FORTRAN_REAL2
541+
} else if (MPI_REAL2 == datatype) {
542+
return MPI_REAL2_ABI_INTERNAL;
543+
#endif
544+
} else if (MPI_REAL4 == datatype) {
545+
return MPI_REAL4_ABI_INTERNAL;
546+
} else if (MPI_REAL8 == datatype) {
547+
return MPI_REAL8_ABI_INTERNAL;
548+
} else if (MPI_REAL16 == datatype) {
549+
return MPI_REAL16_ABI_INTERNAL;
550+
#if OMPI_HAVE_FORTRAN_COMPLEX4
551+
} else if (MPI_COMPLEX4 == datatype) {
552+
return MPI_COMPLEX4_ABI_INTERNAL;
553+
#endif
554+
} else if (MPI_COMPLEX8 == datatype) {
555+
return MPI_COMPLEX8_ABI_INTERNAL;
556+
} else if (MPI_COMPLEX16 == datatype) {
557+
return MPI_COMPLEX16_ABI_INTERNAL;
558+
} else if (MPI_COMPLEX32 == datatype) {
559+
return MPI_COMPLEX32_ABI_INTERNAL;
560+
#endif /* OMPI_BUILD_FORTRAN_BINDINGS */
429561
}
430562
return (MPI_Datatype_ABI_INTERNAL) datatype;
431563
}

0 commit comments

Comments
 (0)