596
596
void* attribute_val_out,
601
600
* External variables
602
* The below externs use the ompi_predefined_xxx_t structures to maintain
603
* back compatibility between MPI library versions.
604
* See ompi/communicator/communicator.h comments with struct ompi_communicator_t
605
* for full explanation why we chose to use the ompi_predefined_xxx_t structure.
603
OMPI_DECLSPEC extern struct ompi_communicator_t ompi_mpi_comm_world;
604
OMPI_DECLSPEC extern struct ompi_communicator_t ompi_mpi_comm_self;
605
OMPI_DECLSPEC extern struct ompi_communicator_t ompi_mpi_comm_null;
607
OMPI_DECLSPEC extern struct ompi_group_t ompi_mpi_group_empty;
608
OMPI_DECLSPEC extern struct ompi_group_t ompi_mpi_group_null;
610
OMPI_DECLSPEC extern struct ompi_request_t ompi_request_null;
612
OMPI_DECLSPEC extern struct ompi_op_t ompi_mpi_op_null;
613
OMPI_DECLSPEC extern struct ompi_op_t ompi_mpi_op_max, ompi_mpi_op_min;
614
OMPI_DECLSPEC extern struct ompi_op_t ompi_mpi_op_sum, ompi_mpi_op_prod;
615
OMPI_DECLSPEC extern struct ompi_op_t ompi_mpi_op_land, ompi_mpi_op_band;
616
OMPI_DECLSPEC extern struct ompi_op_t ompi_mpi_op_lor, ompi_mpi_op_bor;
617
OMPI_DECLSPEC extern struct ompi_op_t ompi_mpi_op_lxor, ompi_mpi_op_bxor;
618
OMPI_DECLSPEC extern struct ompi_op_t ompi_mpi_op_maxloc, ompi_mpi_op_minloc;
619
OMPI_DECLSPEC extern struct ompi_op_t ompi_mpi_op_replace;
621
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_char, ompi_mpi_byte;
622
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_int, ompi_mpi_logic;
623
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_short, ompi_mpi_long;
624
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_float, ompi_mpi_double;
625
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_long_double;
626
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_cplex, ompi_mpi_packed;
627
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_signed_char;
628
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_unsigned_char;
629
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_unsigned_short;
630
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_unsigned, ompi_mpi_datatype_null;
631
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_unsigned_long, ompi_mpi_ldblcplex;
632
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_ub, ompi_mpi_lb;
633
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_float_int, ompi_mpi_double_int;
634
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_long_int, ompi_mpi_2int;
635
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_short_int, ompi_mpi_dblcplex;
636
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_integer, ompi_mpi_real;
637
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_dblprec, ompi_mpi_character;
638
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_2real, ompi_mpi_2dblprec;
639
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_2integer, ompi_mpi_longdbl_int;
640
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_wchar, ompi_mpi_long_long_int;
641
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_unsigned_long_long;
642
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_cxx_cplex, ompi_mpi_cxx_dblcplex;
643
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_cxx_ldblcplex;
644
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_cxx_bool;
645
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_2cplex, ompi_mpi_2dblcplex;
607
OMPI_DECLSPEC extern struct ompi_predefined_communicator_t ompi_mpi_comm_world;
608
OMPI_DECLSPEC extern struct ompi_predefined_communicator_t ompi_mpi_comm_self;
609
OMPI_DECLSPEC extern struct ompi_predefined_communicator_t ompi_mpi_comm_null;
611
OMPI_DECLSPEC extern struct ompi_predefined_group_t ompi_mpi_group_empty;
612
OMPI_DECLSPEC extern struct ompi_predefined_group_t ompi_mpi_group_null;
614
OMPI_DECLSPEC extern struct ompi_predefined_request_t ompi_request_null;
616
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_null;
617
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_max, ompi_mpi_op_min;
618
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_sum;
619
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_prod;
620
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_land;
621
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_band;
622
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_lor, ompi_mpi_op_bor;
623
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_lxor;
624
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_bxor;
625
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_maxloc;
626
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_minloc;
627
OMPI_DECLSPEC extern struct ompi_predefined_op_t ompi_mpi_op_replace;
629
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_char, ompi_mpi_byte;
630
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_int, ompi_mpi_logic;
631
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_short, ompi_mpi_long;
632
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_float, ompi_mpi_double;
633
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_long_double;
634
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_cplex, ompi_mpi_packed;
635
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_signed_char;
636
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_char;
637
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_short;
638
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned, ompi_mpi_datatype_null;
639
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_long, ompi_mpi_ldblcplex;
640
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_ub, ompi_mpi_lb;
641
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_float_int, ompi_mpi_double_int;
642
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_long_int, ompi_mpi_2int;
643
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_short_int, ompi_mpi_dblcplex;
644
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer, ompi_mpi_real;
645
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_dblprec, ompi_mpi_character;
646
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_2real, ompi_mpi_2dblprec;
647
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_2integer, ompi_mpi_longdbl_int;
648
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_wchar, ompi_mpi_long_long_int;
649
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_unsigned_long_long;
650
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_cxx_cplex, ompi_mpi_cxx_dblcplex;
651
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_cxx_ldblcplex;
652
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_cxx_bool;
653
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_2cplex, ompi_mpi_2dblcplex;
646
654
/* other MPI2 datatypes */
647
655
#if OMPI_HAVE_FORTRAN_LOGICAL1
648
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_logical1;
656
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_logical1;
650
658
#if OMPI_HAVE_FORTRAN_LOGICAL2
651
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_logical2;
659
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_logical2;
653
661
#if OMPI_HAVE_FORTRAN_LOGICAL4
654
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_logical4;
662
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_logical4;
656
664
#if OMPI_HAVE_FORTRAN_LOGICAL8
657
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_logical8;
665
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_logical8;
659
667
#if OMPI_HAVE_FORTRAN_INTEGER1
660
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_integer1;
668
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer1;
662
670
#if OMPI_HAVE_FORTRAN_INTEGER2
663
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_integer2;
671
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer2;
665
673
#if OMPI_HAVE_FORTRAN_INTEGER4
666
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_integer4;
674
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer4;
668
676
#if OMPI_HAVE_FORTRAN_INTEGER8
669
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_integer8;
677
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer8;
671
679
#if OMPI_HAVE_FORTRAN_INTEGER16
672
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_integer16;
680
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_integer16;
674
682
#if OMPI_HAVE_FORTRAN_REAL2
675
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_real2;
677
#if OMPI_HAVE_FORTRAN_REAL4
678
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_real4;
680
#if OMPI_HAVE_FORTRAN_REAL8
681
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_real8;
683
#if OMPI_HAVE_FORTRAN_REAL16
684
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_real16;
686
#if OMPI_HAVE_FORTRAN_REAL4
687
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_complex8;
689
#if OMPI_HAVE_FORTRAN_REAL8
690
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_complex16;
692
#if OMPI_HAVE_FORTRAN_REAL16
693
OMPI_DECLSPEC extern struct ompi_datatype_t ompi_mpi_complex32;
696
OMPI_DECLSPEC extern struct ompi_errhandler_t ompi_mpi_errhandler_null;
697
OMPI_DECLSPEC extern struct ompi_errhandler_t ompi_mpi_errors_are_fatal;
698
OMPI_DECLSPEC extern struct ompi_errhandler_t ompi_mpi_errors_return;
700
OMPI_DECLSPEC extern struct ompi_win_t ompi_mpi_win_null;
701
OMPI_DECLSPEC extern struct ompi_file_t ompi_mpi_file_null;
703
OMPI_DECLSPEC extern struct ompi_info_t ompi_mpi_info_null;
683
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_real2;
685
#if OMPI_HAVE_FORTRAN_REAL4
686
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_real4;
688
#if OMPI_HAVE_FORTRAN_REAL8
689
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_real8;
691
#if OMPI_HAVE_FORTRAN_REAL16
692
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_real16;
694
#if OMPI_HAVE_FORTRAN_REAL4
695
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_complex8;
697
#if OMPI_HAVE_FORTRAN_REAL8
698
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_complex16;
700
#if OMPI_HAVE_FORTRAN_REAL16
701
OMPI_DECLSPEC extern struct ompi_predefined_datatype_t ompi_mpi_complex32;
704
OMPI_DECLSPEC extern struct ompi_predefined_errhandler_t ompi_mpi_errhandler_null;
705
OMPI_DECLSPEC extern struct ompi_predefined_errhandler_t ompi_mpi_errors_are_fatal;
706
OMPI_DECLSPEC extern struct ompi_predefined_errhandler_t ompi_mpi_errors_return;
708
OMPI_DECLSPEC extern struct ompi_predefined_win_t ompi_mpi_win_null;
709
OMPI_DECLSPEC extern struct ompi_predefined_file_t ompi_mpi_file_null;
711
OMPI_DECLSPEC extern struct ompi_predefined_info_t ompi_mpi_info_null;
705
713
OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUS_IGNORE;
706
714
OMPI_DECLSPEC extern MPI_Fint *MPI_F_STATUSES_IGNORE;
709
717
* MPI predefined handles
711
#define MPI_COMM_WORLD (&ompi_mpi_comm_world)
712
#define MPI_COMM_SELF (&ompi_mpi_comm_self)
714
#define MPI_GROUP_EMPTY (&ompi_mpi_group_empty)
716
#define MPI_MAX (&ompi_mpi_op_max)
717
#define MPI_MIN (&ompi_mpi_op_min)
718
#define MPI_SUM (&ompi_mpi_op_sum)
719
#define MPI_PROD (&ompi_mpi_op_prod)
720
#define MPI_LAND (&ompi_mpi_op_land)
721
#define MPI_BAND (&ompi_mpi_op_band)
722
#define MPI_LOR (&ompi_mpi_op_lor)
723
#define MPI_BOR (&ompi_mpi_op_bor)
724
#define MPI_LXOR (&ompi_mpi_op_lxor)
725
#define MPI_BXOR (&ompi_mpi_op_bxor)
726
#define MPI_MAXLOC (&ompi_mpi_op_maxloc)
727
#define MPI_MINLOC (&ompi_mpi_op_minloc)
728
#define MPI_REPLACE (&ompi_mpi_op_replace)
719
#define MPI_COMM_WORLD (((MPI_Comm)&(ompi_mpi_comm_world)))
720
#define MPI_COMM_SELF (((MPI_Comm)&(ompi_mpi_comm_self)))
722
#define MPI_GROUP_EMPTY (((MPI_Group)&(ompi_mpi_group_empty)))
724
#define MPI_MAX (((MPI_Op)&(ompi_mpi_op_max)))
725
#define MPI_MIN (((MPI_Op)&(ompi_mpi_op_min)))
726
#define MPI_SUM (((MPI_Op)&(ompi_mpi_op_sum)))
727
#define MPI_PROD (((MPI_Op)&(ompi_mpi_op_prod)))
728
#define MPI_LAND (((MPI_Op)&(ompi_mpi_op_land)))
729
#define MPI_BAND (((MPI_Op)&(ompi_mpi_op_band)))
730
#define MPI_LOR (((MPI_Op)&(ompi_mpi_op_lor)))
731
#define MPI_BOR (((MPI_Op)&(ompi_mpi_op_bor)))
732
#define MPI_LXOR (((MPI_Op)&(ompi_mpi_op_lxor)))
733
#define MPI_BXOR (((MPI_Op)&(ompi_mpi_op_bxor)))
734
#define MPI_MAXLOC (((MPI_Op)&(ompi_mpi_op_maxloc)))
735
#define MPI_MINLOC (((MPI_Op)&(ompi_mpi_op_minloc)))
736
#define MPI_REPLACE (((MPI_Op)&(ompi_mpi_op_replace)))
730
738
/* C datatypes */
731
#define MPI_DATATYPE_NULL (&ompi_mpi_datatype_null)
732
#define MPI_BYTE (&ompi_mpi_byte)
733
#define MPI_PACKED (&ompi_mpi_packed)
734
#define MPI_CHAR (&ompi_mpi_char)
735
#define MPI_SHORT (&ompi_mpi_short)
736
#define MPI_INT (&ompi_mpi_int)
737
#define MPI_LONG (&ompi_mpi_long)
738
#define MPI_FLOAT (&ompi_mpi_float)
739
#define MPI_DOUBLE (&ompi_mpi_double)
740
#define MPI_LONG_DOUBLE (&ompi_mpi_long_double)
741
#define MPI_UNSIGNED_CHAR (&ompi_mpi_unsigned_char)
742
#define MPI_SIGNED_CHAR (&ompi_mpi_signed_char)
743
#define MPI_UNSIGNED_SHORT (&ompi_mpi_unsigned_short)
744
#define MPI_UNSIGNED_LONG (&ompi_mpi_unsigned_long)
745
#define MPI_UNSIGNED (&ompi_mpi_unsigned)
746
#define MPI_FLOAT_INT (&ompi_mpi_float_int)
747
#define MPI_DOUBLE_INT (&ompi_mpi_double_int)
748
#define MPI_LONG_DOUBLE_INT (&ompi_mpi_longdbl_int)
749
#define MPI_LONG_INT (&ompi_mpi_long_int)
750
#define MPI_SHORT_INT (&ompi_mpi_short_int)
751
#define MPI_2INT (&ompi_mpi_2int)
752
#define MPI_UB (&ompi_mpi_ub)
753
#define MPI_LB (&ompi_mpi_lb)
754
#define MPI_WCHAR (&ompi_mpi_wchar)
739
#define MPI_DATATYPE_NULL (((MPI_Datatype)&(ompi_mpi_datatype_null)))
740
#define MPI_BYTE (((MPI_Datatype)&(ompi_mpi_byte)))
741
#define MPI_PACKED (((MPI_Datatype)&(ompi_mpi_packed)))
742
#define MPI_CHAR (((MPI_Datatype)&(ompi_mpi_char)))
743
#define MPI_SHORT (((MPI_Datatype)&(ompi_mpi_short)))
744
#define MPI_INT (((MPI_Datatype)&(ompi_mpi_int)))
745
#define MPI_LONG (((MPI_Datatype)&(ompi_mpi_long)))
746
#define MPI_FLOAT (((MPI_Datatype)&(ompi_mpi_float)))
747
#define MPI_DOUBLE (((MPI_Datatype)&(ompi_mpi_double)))
748
#define MPI_LONG_DOUBLE (((MPI_Datatype)&(ompi_mpi_long_double)))
749
#define MPI_UNSIGNED_CHAR (((MPI_Datatype)&(ompi_mpi_unsigned_char)))
750
#define MPI_SIGNED_CHAR (((MPI_Datatype)&(ompi_mpi_signed_char)))
751
#define MPI_UNSIGNED_SHORT (((MPI_Datatype)&(ompi_mpi_unsigned_short)))
752
#define MPI_UNSIGNED_LONG (((MPI_Datatype)&(ompi_mpi_unsigned_long)))
753
#define MPI_UNSIGNED (((MPI_Datatype)&(ompi_mpi_unsigned)))
754
#define MPI_FLOAT_INT (((MPI_Datatype)&(ompi_mpi_float_int)))
755
#define MPI_DOUBLE_INT (((MPI_Datatype)&(ompi_mpi_double_int)))
756
#define MPI_LONG_DOUBLE_INT (((MPI_Datatype)&(ompi_mpi_longdbl_int)))
757
#define MPI_LONG_INT (((MPI_Datatype)&(ompi_mpi_long_int)))
758
#define MPI_SHORT_INT (((MPI_Datatype)&(ompi_mpi_short_int)))
759
#define MPI_2INT (((MPI_Datatype)&(ompi_mpi_2int)))
760
#define MPI_UB (((MPI_Datatype)&(ompi_mpi_ub)))
761
#define MPI_LB (((MPI_Datatype)&(ompi_mpi_lb)))
762
#define MPI_WCHAR (((MPI_Datatype)&(ompi_mpi_wchar)))
755
763
#if OMPI_HAVE_LONG_LONG
756
#define MPI_LONG_LONG_INT (&ompi_mpi_long_long_int)
757
#define MPI_LONG_LONG (&ompi_mpi_long_long_int)
758
#define MPI_UNSIGNED_LONG_LONG (&ompi_mpi_unsigned_long_long)
764
#define MPI_LONG_LONG_INT (((MPI_Datatype)&(ompi_mpi_long_long_int)))
765
#define MPI_LONG_LONG (((MPI_Datatype)&(ompi_mpi_long_long_int)))
766
#define MPI_UNSIGNED_LONG_LONG (((MPI_Datatype)&(ompi_mpi_unsigned_long_long)))
759
767
#endif /* OMPI_HAVE_LONG_LONG */
760
#define MPI_2COMPLEX (&ompi_mpi_2cplex)
761
#define MPI_2DOUBLE_COMPLEX (&ompi_mpi_2dblcplex)
768
#define MPI_2COMPLEX (((MPI_Datatype)&(ompi_mpi_2cplex)))
769
#define MPI_2DOUBLE_COMPLEX (((MPI_Datatype)&(ompi_mpi_2dblcplex)))
763
771
/* Fortran datatype bindings */
764
#define MPI_CHARACTER (&ompi_mpi_character)
765
#define MPI_LOGICAL (&ompi_mpi_logic)
772
#define MPI_CHARACTER (((MPI_Datatype)&(ompi_mpi_character)))
773
#define MPI_LOGICAL (((MPI_Datatype)&(ompi_mpi_logic)))
766
774
#if OMPI_HAVE_FORTRAN_LOGICAL1
767
#define MPI_LOGICAL1 (&ompi_mpi_logical1)
775
#define MPI_LOGICAL1 (((MPI_Datatype)&(ompi_mpi_logical1)))
769
777
#if OMPI_HAVE_FORTRAN_LOGICAL2
770
#define MPI_LOGICAL2 (&ompi_mpi_logical2)
778
#define MPI_LOGICAL2 (((MPI_Datatype)&(ompi_mpi_logical2)))
772
780
#if OMPI_HAVE_FORTRAN_LOGICAL4
773
#define MPI_LOGICAL4 (&ompi_mpi_logical4)
781
#define MPI_LOGICAL4 (((MPI_Datatype)&(ompi_mpi_logical4)))
775
783
#if OMPI_HAVE_FORTRAN_LOGICAL8
776
#define MPI_LOGICAL8 (&ompi_mpi_logical8)
784
#define MPI_LOGICAL8 (((MPI_Datatype)&(ompi_mpi_logical8)))
778
#define MPI_INTEGER (&ompi_mpi_integer)
786
#define MPI_INTEGER (((MPI_Datatype)&(ompi_mpi_integer)))
779
787
#if OMPI_HAVE_FORTRAN_INTEGER1
780
#define MPI_INTEGER1 (&ompi_mpi_integer1)
788
#define MPI_INTEGER1 (((MPI_Datatype)&(ompi_mpi_integer1)))
782
790
#if OMPI_HAVE_FORTRAN_INTEGER2
783
#define MPI_INTEGER2 (&ompi_mpi_integer2)
791
#define MPI_INTEGER2 (((MPI_Datatype)&(ompi_mpi_integer2)))
785
793
#if OMPI_HAVE_FORTRAN_INTEGER4
786
#define MPI_INTEGER4 (&ompi_mpi_integer4)
794
#define MPI_INTEGER4 (((MPI_Datatype)&(ompi_mpi_integer4)))
788
796
#if OMPI_HAVE_FORTRAN_INTEGER8
789
#define MPI_INTEGER8 (&ompi_mpi_integer8)
797
#define MPI_INTEGER8 (((MPI_Datatype)&(ompi_mpi_integer8)))
791
799
#if OMPI_HAVE_FORTRAN_INTEGER16
792
#define MPI_INTEGER16 (&ompi_mpi_integer16)
794
#define MPI_REAL (&ompi_mpi_real)
795
#if OMPI_HAVE_FORTRAN_REAL4
796
#define MPI_REAL4 (&ompi_mpi_real4)
798
#if OMPI_HAVE_FORTRAN_REAL8
799
#define MPI_REAL8 (&ompi_mpi_real8)
801
#if OMPI_HAVE_FORTRAN_REAL16
802
#define MPI_REAL16 (&ompi_mpi_real16)
804
#define MPI_DOUBLE_PRECISION (&ompi_mpi_dblprec)
805
#define MPI_COMPLEX (&ompi_mpi_cplex)
806
#if OMPI_HAVE_FORTRAN_REAL4
807
#define MPI_COMPLEX8 (&ompi_mpi_complex8)
809
#if OMPI_HAVE_FORTRAN_REAL8
810
#define MPI_COMPLEX16 (&ompi_mpi_complex16)
812
#if OMPI_HAVE_FORTRAN_REAL16
813
#define MPI_COMPLEX32 (&ompi_mpi_complex32)
815
#define MPI_DOUBLE_COMPLEX (&ompi_mpi_dblcplex)
816
#define MPI_2REAL (&ompi_mpi_2real)
817
#define MPI_2DOUBLE_PRECISION (&ompi_mpi_2dblprec)
818
#define MPI_2INTEGER (&ompi_mpi_2integer)
800
#define MPI_INTEGER16 (((MPI_Datatype)&(ompi_mpi_integer16)))
802
#define MPI_REAL (((MPI_Datatype)&(ompi_mpi_real)))
803
#if OMPI_HAVE_FORTRAN_REAL4
804
#define MPI_REAL4 (((MPI_Datatype)&(ompi_mpi_real4)))
806
#if OMPI_HAVE_FORTRAN_REAL8
807
#define MPI_REAL8 (((MPI_Datatype)&(ompi_mpi_real8)))
809
#if OMPI_HAVE_FORTRAN_REAL16
810
#define MPI_REAL16 (((MPI_Datatype)&(ompi_mpi_real16)))
812
#define MPI_DOUBLE_PRECISION (((MPI_Datatype)&(ompi_mpi_dblprec)))
813
#define MPI_COMPLEX (((MPI_Datatype)&(ompi_mpi_cplex)))
814
#if OMPI_HAVE_FORTRAN_REAL4
815
#define MPI_COMPLEX8 (((MPI_Datatype)&(ompi_mpi_complex8)))
817
#if OMPI_HAVE_FORTRAN_REAL8
818
#define MPI_COMPLEX16 (((MPI_Datatype)&(ompi_mpi_complex16)))
820
#if OMPI_HAVE_FORTRAN_REAL16
821
#define MPI_COMPLEX32 (((MPI_Datatype)&(ompi_mpi_complex32)))
823
#define MPI_DOUBLE_COMPLEX (((MPI_Datatype)&(ompi_mpi_dblcplex)))
824
#define MPI_2REAL (((MPI_Datatype)&(ompi_mpi_2real)))
825
#define MPI_2DOUBLE_PRECISION (((MPI_Datatype)&(ompi_mpi_2dblprec)))
826
#define MPI_2INTEGER (((MPI_Datatype)&(ompi_mpi_2integer)))
820
#define MPI_ERRORS_ARE_FATAL (&ompi_mpi_errors_are_fatal)
821
#define MPI_ERRORS_RETURN (&ompi_mpi_errors_return)
828
#define MPI_ERRORS_ARE_FATAL (((MPI_Errhandler)&(ompi_mpi_errors_are_fatal)))
829
#define MPI_ERRORS_RETURN (((MPI_Errhandler)&(ompi_mpi_errors_return)))
823
831
/* Typeclass definition for MPI_Type_match_size */
824
832
#define MPI_TYPECLASS_INTEGER 1