The TELEMAC-MASCARET system  trunk
cpikle2.f
Go to the documentation of this file.
1 ! ******************
2  SUBROUTINE cpikle2
3 ! ******************
4 !
5  &(ikle3,klei3,ikles,nelem2,nelmax2,npoin2,nplan)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief EXTENDS THE CONNECTIVITY TABLE.
12 !+ CASE OF A MESH OF PRISMS, IKLE BUILT FROM THE
13 !+ CONNECTIVITY OF THE TRIANGLE MESH.
14 !
15 !history J-M HERVOUET (LNH)
16 !+ 23/08/99
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 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
33 !| IKLE3 |<->| 3D CONNECTIVITY TABLE
34 !| IKLES |-->| 2D CONNECTIVITY TABLE WITH DIMENSION (3,NELEM2)
35 !| KLEI3 |<--| LIKE IKLE3 BUT WITH SWAPPED DIMENSIONS
36 !| NELEM2 |-->| NUMBER OF ELEMENTS IN 2D
37 !| NELMAX2 |-->| MAXIMUM NUMBER OF ELEMENTS IN 2D
38 !| NPLAN |-->| NUMBER OF PLANES
39 !| NPOIN2 |-->| NUMBER OF POINTS IN 2D
40 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
41 !
43  IMPLICIT NONE
44 !
45 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
46 !
47  INTEGER, INTENT(IN) :: NELEM2,NELMAX2,NPOIN2,NPLAN
48  INTEGER, INTENT(IN) :: IKLES(3,nelem2)
49  INTEGER, INTENT(INOUT) :: IKLE3(nelmax2,nplan-1,6)
50  INTEGER, INTENT(INOUT) :: KLEI3(6,nelmax2,nplan-1)
51 !
52 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53 !
54  INTEGER IELEM,I
55 !
56 !-----------------------------------------------------------------------
57 !
58 ! BOTTOM AND TOP OF ALL LAYERS
59 !
60  IF(nplan.GE.2) THEN
61  DO i = 1,nplan-1
62  DO ielem = 1,nelem2
63  ikle3(ielem,i,1) = ikles(1,ielem) + (i-1)*npoin2
64  ikle3(ielem,i,2) = ikles(2,ielem) + (i-1)*npoin2
65  ikle3(ielem,i,3) = ikles(3,ielem) + (i-1)*npoin2
66  ikle3(ielem,i,4) = ikles(1,ielem) + i *npoin2
67  ikle3(ielem,i,5) = ikles(2,ielem) + i *npoin2
68  ikle3(ielem,i,6) = ikles(3,ielem) + i *npoin2
69  klei3(1,ielem,i) = ikles(1,ielem) + (i-1)*npoin2
70  klei3(2,ielem,i) = ikles(2,ielem) + (i-1)*npoin2
71  klei3(3,ielem,i) = ikles(3,ielem) + (i-1)*npoin2
72  klei3(4,ielem,i) = ikles(1,ielem) + i *npoin2
73  klei3(5,ielem,i) = ikles(2,ielem) + i *npoin2
74  klei3(6,ielem,i) = ikles(3,ielem) + i *npoin2
75  ENDDO
76  ENDDO
77  ELSE
78  WRITE(lu,*) 'CPIKLE2 : MINIMUM OF 2 PLANES NEEDED'
79  CALL plante(1)
80  stop
81  ENDIF
82 !
83 !-----------------------------------------------------------------------
84 !
85  RETURN
86  END
subroutine cpikle2(IKLE3, KLEI3, IKLES, NELEM2, NELMAX2, NPOIN2, NPLAN)
Definition: cpikle2.f:7