00001 00002 integer, parameter :: IDXL_FIRST_DATATYPE=1510000000 00003 integer, parameter :: IDXL_BYTE=(IDXL_FIRST_DATATYPE+0) 00004 integer, parameter :: IDXL_INT=(IDXL_FIRST_DATATYPE+1) 00005 integer, parameter :: IDXL_REAL=(IDXL_FIRST_DATATYPE+2) 00006 integer, parameter :: IDXL_DOUBLE=(IDXL_FIRST_DATATYPE+3) 00007 integer, parameter :: IDXL_INDEX_0=(IDXL_FIRST_DATATYPE+4) 00008 integer, parameter :: IDXL_INDEX_1=(IDXL_FIRST_DATATYPE+5) 00009 00010 integer, parameter :: IDXL_FIRST_REDTYPE=1520000000 00011 integer, parameter :: IDXL_SUM=(IDXL_FIRST_REDTYPE+0) 00012 integer, parameter :: IDXL_PROD=(IDXL_FIRST_REDTYPE+1) 00013 integer, parameter :: IDXL_MAX=(IDXL_FIRST_REDTYPE+2) 00014 integer, parameter :: IDXL_MIN=(IDXL_FIRST_REDTYPE+3) 00015 00016 external IDXL_Comm_sendrecv 00017 external IDXL_Comm_sendsum 00018 00019 external IDXL_Comm_send 00020 external IDXL_Comm_recv 00021 external IDXL_Comm_sum 00022 00023 00024 interface 00025 subroutine IDXL_Init(mpi_comm) 00026 integer,intent (in) :: mpi_comm 00027 end subroutine 00028 integer function IDXL_Create() 00029 end function 00030 subroutine IDXL_Print(l) 00031 integer,intent (in) :: l 00032 end subroutine 00033 subroutine IDXL_Copy(l,src) 00034 integer,intent (in) :: l, src 00035 end subroutine 00036 subroutine IDXL_Shift(l,startSend,startRecv) 00037 integer, intent (in) :: l 00038 integer, intent(in) :: startSend, startRecv 00039 end subroutine 00040 subroutine IDXL_Combine(l,src,startSend,startRecv) 00041 integer, intent (in) :: l, src 00042 integer, intent(in) :: startSend, startRecv 00043 end subroutine 00044 subroutine IDXL_Add_entity(l,newIdx,nBetween,between) 00045 integer, intent (in) :: l 00046 integer, intent(in) :: newIdx, nBetween 00047 integer, intent(in) :: between(nBetween) 00048 end subroutine 00049 subroutine IDXL_Sort_2d(l,coord2d) 00050 integer, intent (in) :: l 00051 double precision, intent(in) :: coord2d(:) 00052 end subroutine 00053 subroutine IDXL_Sort_3d(l,coord3d) 00054 integer, intent (in) :: l 00055 double precision, intent(in) :: coord3d(:) 00056 end subroutine 00057 subroutine IDXL_Destroy(l) 00058 integer,intent (in) :: l 00059 end subroutine 00060 00061 integer function IDXL_Get_send(l) 00062 integer,intent(in) :: l 00063 end function 00064 integer function IDXL_Get_recv(l) 00065 integer,intent(in) :: l 00066 end function 00067 integer function IDXL_Get_partners(s) 00068 integer,intent(in) :: s 00069 end function 00070 integer function IDXL_Get_partner(s,partnerNo) 00071 integer,intent(in) :: s, partnerNo 00072 end function 00073 integer function IDXL_Get_count(s,partnerNo) 00074 integer,intent(in) :: s, partnerNo 00075 end function 00076 subroutine IDXL_Get_list(s,partnerNo,list) 00077 integer,intent(in) :: s, partnerNo 00078 integer,intent(out) :: list(*) 00079 end subroutine 00080 integer function IDXL_Get_index(s,partnerNo,index) 00081 integer,intent(in) :: s, partnerNo, index 00082 end function 00083 subroutine IDXL_Get_end(s) 00084 integer,intent(in) :: s 00085 end subroutine 00086 integer function IDXL_Get_source(l,localNo) 00087 integer, intent(in) :: l,localNo 00088 end function 00089 00090 integer function IDXL_Layout_create(type,width) 00091 integer, intent(in) :: type, width 00092 end function 00093 integer function IDXL_Layout_offset(type,width,off,dist,skew) 00094 integer, intent(in) :: type, width, off, dist, skew 00095 end function 00096 integer function IDXL_Get_layout_type(l) 00097 integer, intent(in) :: l 00098 end function 00099 integer function IDXL_Get_layout_width(l) 00100 integer, intent(in) :: l 00101 end function 00102 integer function IDXL_Get_layout_distance(l) 00103 integer, intent(in) :: l 00104 end function 00105 subroutine IDXL_Layout_destroy(l) 00106 integer,intent (in) :: l 00107 end subroutine 00108 00109 integer function IDXL_Comm_begin(tag,context) 00110 integer,intent (in) :: tag,context 00111 end function 00112 subroutine IDXL_Comm_flush(comm) 00113 integer,intent (in) :: comm 00114 end subroutine 00115 subroutine IDXL_Comm_wait(comm) 00116 integer,intent (in) :: comm 00117 end subroutine 00118 00119 end interface