@@ -349,32 +349,66 @@ __opal_attribute_always_inline__ static inline MPI_Datatype ompi_convert_abi_dat
349349 return MPI_DOUBLE_COMPLEX ;
350350#if OMPI_BUILD_FORTRAN_BINDINGS
351351 } else if (MPI_LOGICAL1_ABI_INTERNAL == datatype ) {
352+ #if OMPI_HAVE_FORTRAN_LOGICAL1
352353 return MPI_LOGICAL1 ;
354+ #else
355+ return MPI_DATATYPE_NULL ;
356+ #endif
353357 } else if (MPI_LOGICAL2_ABI_INTERNAL == datatype ) {
358+ #if OMPI_HAVE_FORTRAN_LOGICAL2
354359 return MPI_LOGICAL2 ;
360+ #else
361+ return MPI_DATATYPE_NULL ;
362+ #endif
355363 } else if (MPI_LOGICAL4_ABI_INTERNAL == datatype ) {
364+ #if OMPI_HAVE_FORTRAN_LOGICAL4
356365 return MPI_LOGICAL4 ;
366+ #else
367+ return MPI_DATATYPE_NULL ;
368+ #endif
357369 } else if (MPI_LOGICAL8_ABI_INTERNAL == datatype ) {
370+ #if OMPI_HAVE_FORTRAN_LOGICAL8
358371 return MPI_LOGICAL8 ;
372+ #else
373+ return MPI_DATATYPE_NULL ;
374+ #endif
359375#if 0
360376/* TODO: need to add in a LOGICAL16 test */
377+ } else if (MPI_LOGICAL16_ABI_INTERNAL == datatype ) {
361378#if OMPI_HAVE_FORTRAN_LOGICAL16
362- } else if (MPI_LOGICAL16 == datatype ) {
363- return MPI_LOGICAL16_ABI_INTERNAL ;
379+ return MPI_LOGICAL16 ;
380+ #else
381+ return MPI_DATATYPE_NULL ;
364382#endif
365383#endif
366384 } else if (MPI_INTEGER1_ABI_INTERNAL == datatype ) {
385+ #if OMPI_HAVE_FORTRAN_INTEGER1
367386 return MPI_INTEGER1 ;
387+ #else
388+ return MPI_DATATYPE_NULL ;
389+ #endif
368390 } else if (MPI_INTEGER2_ABI_INTERNAL == datatype ) {
391+ #if OMPI_HAVE_FORTRAN_INTEGER2
369392 return MPI_INTEGER2 ;
393+ #else
394+ return MPI_DATATYPE_NULL ;
395+ #endif
370396 } else if (MPI_INTEGER4_ABI_INTERNAL == datatype ) {
397+ #if OMPI_HAVE_FORTRAN_INTEGER4
371398 return MPI_INTEGER4 ;
399+ #else
400+ return MPI_DATATYPE_NULL ;
401+ #endif
372402 } else if (MPI_INTEGER8_ABI_INTERNAL == datatype ) {
403+ #if OMPI_HAVE_FORTRAN_INTEGER8
373404 return MPI_INTEGER8 ;
405+ #else
406+ return MPI_DATATYPE_NULL ;
407+ #endif
374408 } else if (MPI_INTEGER16_ABI_INTERNAL == datatype ) {
375409#if OMPI_HAVE_FORTRAN_INTEGER16
376410 return MPI_INTEGER16 ;
377- #else
411+ #else
378412 return MPI_DATATYPE_NULL ;
379413#endif
380414 } else if (MPI_REAL2_ABI_INTERNAL == datatype ) {
@@ -384,23 +418,47 @@ __opal_attribute_always_inline__ static inline MPI_Datatype ompi_convert_abi_dat
384418 return MPI_DATATYPE_NULL ;
385419#endif
386420 } else if (MPI_REAL4_ABI_INTERNAL == datatype ) {
421+ #if OMPI_HAVE_FORTRAN_REAL4
387422 return MPI_REAL4 ;
423+ #else
424+ return MPI_DATATYPE_NULL ;
425+ #endif
388426 } else if (MPI_REAL8_ABI_INTERNAL == datatype ) {
427+ #if OMPI_HAVE_FORTRAN_REAL8
389428 return MPI_REAL8 ;
429+ #else
430+ return MPI_DATATYPE_NULL ;
431+ #endif
390432 } else if (MPI_REAL16_ABI_INTERNAL == datatype ) {
433+ #if OMPI_HAVE_FORTRAN_REAL16
391434 return MPI_REAL16 ;
435+ #else
436+ return MPI_DATATYPE_NULL ;
437+ #endif
392438 } else if (MPI_COMPLEX4_ABI_INTERNAL == datatype ) {
393439#if OMPI_HAVE_FORTRAN_COMPLEX4
394440 return MPI_COMPLEX4 ;
395441#else
396442 return MPI_DATATYPE_NULL ;
397443#endif
398444 } else if (MPI_COMPLEX8_ABI_INTERNAL == datatype ) {
445+ #if OMPI_HAVE_FORTRAN_COMPLEX8
399446 return MPI_COMPLEX8 ;
447+ #else
448+ return MPI_DATATYPE_NULL ;
449+ #endif
400450 } else if (MPI_COMPLEX16_ABI_INTERNAL == datatype ) {
451+ #if OMPI_HAVE_FORTRAN_COMPLEX16
401452 return MPI_COMPLEX16 ;
453+ #else
454+ return MPI_DATATYPE_NULL ;
455+ #endif
402456 } else if (MPI_COMPLEX32_ABI_INTERNAL == datatype ) {
457+ #if OMPI_HAVE_FORTRAN_COMPLEX32
403458 return MPI_COMPLEX32 ;
459+ #else
460+ return MPI_DATATYPE_NULL ;
461+ #endif
404462#endif /* OMPI_BUILD_FORTRAN_BINDINGS */
405463 }
406464 return (MPI_Datatype ) datatype ;
@@ -510,29 +568,45 @@ __opal_attribute_always_inline__ static inline MPI_Datatype_ABI_INTERNAL ompi_co
510568 } else if (MPI_DOUBLE_COMPLEX == datatype ) {
511569 return MPI_DOUBLE_COMPLEX_ABI_INTERNAL ;
512570#if OMPI_BUILD_FORTRAN_BINDINGS
571+ #if OMPI_HAVE_FORTRAN_LOGICAL1
513572 } else if (MPI_LOGICAL1 == datatype ) {
514573 return MPI_LOGICAL1_ABI_INTERNAL ;
574+ #endif
575+ #if OMPI_HAVE_FORTRAN_LOGICAL2
515576 } else if (MPI_LOGICAL2 == datatype ) {
516577 return MPI_LOGICAL2_ABI_INTERNAL ;
578+ #endif
579+ #if OMPI_HAVE_FORTRAN_LOGICAL4
517580 } else if (MPI_LOGICAL4 == datatype ) {
518581 return MPI_LOGICAL4_ABI_INTERNAL ;
582+ #endif
583+ #if OMPI_HAVE_FORTRAN_LOGICAL8
519584 } else if (MPI_LOGICAL8 == datatype ) {
520585 return MPI_LOGICAL8_ABI_INTERNAL ;
586+ #endif
521587#if 0
522588/* TODO: need to add in a LOGICAL16 test */
523589#if OMPI_HAVE_FORTRAN_LOGICAL16
524590 } else if (MPI_LOGICAL16 == datatype ) {
525591 return MPI_LOGICAL16_ABI_INTERNAL ;
526592#endif
527593#endif
594+ #if OMPI_HAVE_FORTRAN_INTEGER1
528595 } else if (MPI_INTEGER1 == datatype ) {
529596 return MPI_INTEGER1_ABI_INTERNAL ;
597+ #endif
598+ #if OMPI_HAVE_FORTRAN_INTEGER2
530599 } else if (MPI_INTEGER2 == datatype ) {
531600 return MPI_INTEGER2_ABI_INTERNAL ;
601+ #endif
602+ #if OMPI_HAVE_FORTRAN_INTEGER4
532603 } else if (MPI_INTEGER4 == datatype ) {
533604 return MPI_INTEGER4_ABI_INTERNAL ;
605+ #endif
606+ #if OMPI_HAVE_FORTRAN_INTEGER8
534607 } else if (MPI_INTEGER8 == datatype ) {
535608 return MPI_INTEGER8_ABI_INTERNAL ;
609+ #endif
536610#if OMPI_HAVE_FORTRAN_INTEGER16
537611 } else if (MPI_INTEGER16 == datatype ) {
538612 return MPI_INTEGER16_ABI_INTERNAL ;
@@ -541,22 +615,34 @@ __opal_attribute_always_inline__ static inline MPI_Datatype_ABI_INTERNAL ompi_co
541615 } else if (MPI_REAL2 == datatype ) {
542616 return MPI_REAL2_ABI_INTERNAL ;
543617#endif
618+ #if OMPI_HAVE_FORTRAN_REAL4
544619 } else if (MPI_REAL4 == datatype ) {
545620 return MPI_REAL4_ABI_INTERNAL ;
621+ #endif
622+ #if OMPI_HAVE_FORTRAN_REAL8
546623 } else if (MPI_REAL8 == datatype ) {
547624 return MPI_REAL8_ABI_INTERNAL ;
625+ #endif
626+ #if OMPI_HAVE_FORTRAN_REAL16
548627 } else if (MPI_REAL16 == datatype ) {
549628 return MPI_REAL16_ABI_INTERNAL ;
629+ #endif
550630#if OMPI_HAVE_FORTRAN_COMPLEX4
551631 } else if (MPI_COMPLEX4 == datatype ) {
552632 return MPI_COMPLEX4_ABI_INTERNAL ;
553633#endif
634+ #if OMPI_HAVE_FORTRAN_COMPLEX8
554635 } else if (MPI_COMPLEX8 == datatype ) {
555636 return MPI_COMPLEX8_ABI_INTERNAL ;
637+ #endif
638+ #if OMPI_HAVE_FORTRAN_COMPLEX16
556639 } else if (MPI_COMPLEX16 == datatype ) {
557640 return MPI_COMPLEX16_ABI_INTERNAL ;
641+ #endif
642+ #if OMPI_HAVE_FORTRAN_COMPLEX32
558643 } else if (MPI_COMPLEX32 == datatype ) {
559644 return MPI_COMPLEX32_ABI_INTERNAL ;
645+ #endif
560646#endif /* OMPI_BUILD_FORTRAN_BINDINGS */
561647 }
562648 return (MPI_Datatype_ABI_INTERNAL ) datatype ;
0 commit comments