The TELEMAC-MASCARET system  trunk
cpik13.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE cpik13
3 ! *****************
4 !
5  &(ikle,iklbor,eltseg,nbor,nelbor,nulone,nelem,nelmax,npoin,nptfr,
6  & neleb,nelebx)
7 !
8 !***********************************************************************
9 ! BIEF V7P0 28/03/2014
10 !***********************************************************************
11 !
12 !brief EXTENDS THE CONNECTIVITY TABLE.
13 !+ CASE OF AN EXTENSION TO QUADRATIC ELEMENTS.
14 !
15 !history J-M HERVOUET (LNH)
16 !+ 20/03/08
17 !+ V5P9
18 !+
19 !
20 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
21 !+ 13/07/2010
22 !+ V6P0
23 !+ Translation of French comments within the FORTRAN sources into
24 !+ English comments
25 !
26 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
27 !+ 21/08/2010
28 !+ V6P0
29 !+ Creation of DOXYGEN tags for automated documentation and
30 !+ cross-referencing of the FORTRAN sources
31 !
32 !history J-M HERVOUET (LNHE)
33 !+ 16/05/2012
34 !+ V6P2
35 !+ Bug corrected in parallel
36 !
37 !history J-M HERVOUET (EDF LAB, LNHE)
38 !+ 28/03/2014
39 !+ V7P0
40 !+ Adapted to new numbering of boundary segments.
41 !
42 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 !| ELTSEG |-->| SEGMENTS NUMBERS IN EVERY ELEMENT
44 !| IKLBOR |-->| CONNECTIVITY TABLE OF BOUNDARY ELEMENTS
45 !| IKLE |<->| CONNECTIVITY TABLE
46 !| NBOR |-->| GLOBAL NUMBERS OF BOUNDARY POINTS
47 !| NELBOR |-->| BOUNDARY ELEMENT THAT CONTAINS SEGMENT K
48 !| NELEB |-->| NUMBER OF BOUNDARY SEGMENTS
49 !| NELEBX |-->| MAXIMUM NUMBER OF BOUNDARY SEGMENTS
50 !| NULONE |-->| LOCAL NUMBER OF K IN ELEMENT NELBOR
51 !| NELEM |-->| NUMBER OF ELEMENTS
52 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
53 !| NPOIN |-->| NUMBER OF POINTS IN THE MESH
54 !| NPTFR |-->| NUMBER OF BOUNDARY POINTS
55 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
56 !
57  USE bief, ONLY : ncsize
58 !
60  IMPLICIT NONE
61 !
62 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
63 !
64  INTEGER, INTENT(IN) :: NELEM,NELMAX,NPOIN,NPTFR,NELEB,NELEBX
65  INTEGER, INTENT(IN) :: ELTSEG(nelmax,3)
66  INTEGER, INTENT(IN) :: NELBOR(nelebx),NULONE(nelebx)
67  INTEGER, INTENT(INOUT) :: IKLE(nelmax,6),IKLBOR(nelebx,3),NBOR(*)
68 !
69 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
70 !
71  INTEGER IELEM,K,IELEB
72 !
73 !-----------------------------------------------------------------------
74 !
75 ! CONNECTIVITY TABLE OF QUADRATIC GLOBAL POINTS
76 !
77  DO ielem = 1 , nelem
78 !
79 ! NUMBER=NPOIN+NUMBER OF THE SEGMENT CONTAINING THE POINT
80 !
81  ikle(ielem,4) = npoin + eltseg(ielem,1)
82  ikle(ielem,5) = npoin + eltseg(ielem,2)
83  ikle(ielem,6) = npoin + eltseg(ielem,3)
84 !
85  ENDDO
86 !
87 !-----------------------------------------------------------------------
88 !
89 ! CONNECTIVITY TABLE OF QUADRATIC BOUNDARY POINTS
90 ! GLOBAL NUMBERS OF BOUNDARY QUADRATIC POINTS
91 !
92  DO ieleb=1,neleb
93  k=iklbor(ieleb,1)
94 ! WE DECIDE HERE THE BOUNDARY NUMBERING OF QUADRATIC POINTS
95  iklbor(ieleb,3)=k+nptfr
96  ielem=nelbor(ieleb)
97  nbor(iklbor(ieleb,3))=ikle(ielem,nulone(ieleb)+3)
98  ENDDO
99 !
100 !-----------------------------------------------------------------------
101 !
102 ! SECURITY CHECK IN SCALAR MODE
103 !
104  IF(ncsize.LE.1) THEN
105  DO ieleb=1,neleb
106  k=iklbor(ieleb,1)
107  IF(nbor(iklbor(ieleb,3)).NE.k+npoin) THEN
108  WRITE(lu,*) 'CPIK13: PROBLEM OF NUMBERING FOR K=',k
109  CALL plante(1)
110  stop
111  ENDIF
112  ENDDO
113  ENDIF
114 !
115 !-----------------------------------------------------------------------
116 !
117  RETURN
118  END
subroutine cpik13(IKLE, IKLBOR, ELTSEG, NBOR, NELBOR, NULONE, NELEM, NELMAX, NPOIN, NPTFR, NELEB, NELEBX)
Definition: cpik13.f:8
Definition: bief.f:3