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