The TELEMAC-MASCARET system  trunk
c_binding.F
Go to the documentation of this file.
1 ! ****************
2  MODULE c_binding
3 ! ****************
4 !
5 !***********************************************************************
6 ! PARTEL
7 !***********************************************************************
8 !
9 !brief call to the partionning software
10 !
11 !history Y.AUDOUIN
12 !+
13 !+
14 !+ created
15 !
16 !
17 !
18  use, INTRINSIC :: iso_c_binding
19 !
20  IMPLICIT NONE
21 !
22  INTERFACE
23 !
24  ! Metis function
25  SUBROUTINE c_mymetis_partmeshdual
26  & (nelem, npoin, eptr, eind, vwgt,
27  & vsize, ncommonnodes, nparts, tpwgts,
28  & option, edgecut, epart, npart)
29 #if defined HAVE_MPI
30  & bind(c, name='METIS_PartMeshDual')
31 #endif
32 
33  use,INTRINSIC :: iso_c_binding
34  IMPLICIT NONE
35  TYPE(c_ptr),VALUE :: NELEM
36  TYPE(c_ptr),VALUE :: NPOIN
37  INTEGER(C_INT) :: EPTR(*)
38  INTEGER(C_INT) :: EIND(*)
39  TYPE(c_ptr), VALUE :: VWGT
40  TYPE(c_ptr), VALUE :: VSIZE
41  TYPE(c_ptr),VALUE :: NCOMMONNODES
42  TYPE(c_ptr),VALUE :: NPARTS
43  TYPE(c_ptr), VALUE :: TPWGTS
44  TYPE(c_ptr), VALUE :: OPTION
45  TYPE(c_ptr),VALUE :: EDGECUT
46  INTEGER(C_INT) :: EPART(*)
47  INTEGER(C_INT) :: NPART(*)
48 !
49  END SUBROUTINE
50  END INTERFACE
51  CONTAINS
52  SUBROUTINE mymetis_partmeshdual
53  & (nelem, npoin, eptr, eind,
54  & ncommonnodes, nparts,
55  & edgecut, epart, npart)
56 
57  use,INTRINSIC :: iso_c_binding
58  IMPLICIT NONE
59  INTEGER(C_INT),TARGET :: NELEM
60  INTEGER(C_INT),TARGET :: NPOIN
61  INTEGER(C_INT),TARGET :: EPTR(*)
62  INTEGER(C_INT),TARGET :: EIND(*)
63  INTEGER(C_INT),TARGET :: NCOMMONNODES
64  INTEGER(C_INT),TARGET :: NPARTS
65  INTEGER(C_INT),TARGET :: EDGECUT
66  INTEGER(C_INT),TARGET :: EPART(*)
67  INTEGER(C_INT),TARGET :: NPART(*)
68 !
69 #if defined HAVE_MPI
70  CALL c_mymetis_partmeshdual
71  & (c_loc(nelem), c_loc(npoin), eptr,
72  & eind, c_null_ptr,
73  & c_null_ptr, c_loc(ncommonnodes), c_loc(nparts),
74  & c_null_ptr,
75  & c_null_ptr, c_loc(edgecut), epart, npart)
76 #endif
77  END SUBROUTINE
78 
79  END MODULE c_binding
subroutine mymetis_partmeshdual(NELEM, NPOIN, EPTR, EIND, NCOMMONNODES, NPARTS, EDGECUT, EPART, NPART)
Definition: c_binding.F:55