The TELEMAC-MASCARET system  trunk
comp_fac.f
Go to the documentation of this file.
1 ! *******************
2  SUBROUTINE comp_fac
3 ! *******************
4 !
5  &(eltseg,oriseg,ifabor,nelem,npoin,ifac)
6 !
7 !***********************************************************************
8 ! BIEF V7P1
9 !***********************************************************************
10 !
11 !brief COMPLETES THE ARRAY IFAC FOR QUADRATIC POINTS
12 !+ AT THE INTERFACE BETWEEN 2 SUBDOMAINS.
13 !+
14 !
15 !history J-M HERVOUET (LNHE)
16 !+ 24/10/08
17 !+ V5P9
18 !+ First version
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 (EDF LAB, LNHE)
33 !+ 30/07/2015
34 !+ V7P1
35 !+ FAC replaced by IFAC
36 !
37 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38 !| ELTSEG |-->| GIVES THE SEGMENT NUMBER OF EDGES OF ELEMENTS
39 !| ORISEG |-->| ORIENTATION OF SEGMENTS (1 OR 2).
40 !| FAC |<->| COEFFICIENT FOR COMPUTING DOT PRODUCTS IN //
41 !| IFABOR |-->| -2 MEANS INTERFACE WITH ANOTHER SUB-DOMAIN
42 !| NELEM |-->| NUMBER OF ELEMENTS
43 !| NPOIN |-->| NUMBER OF POINTS
44 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 !
46  USE bief, ex_comp_fac => comp_fac
47 !
49  IMPLICIT NONE
50 !
51 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
52 !
53  INTEGER, INTENT(IN) :: NELEM,NPOIN
54  INTEGER, INTENT(IN) :: IFABOR(nelem,3),ELTSEG(nelem,3)
55  INTEGER, INTENT(IN) :: ORISEG(nelem,3)
56  TYPE(bief_obj), INTENT(INOUT) :: IFAC
57 !
58 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
59 !
60  INTEGER IELEM
61 !
62 !-----------------------------------------------------------------------
63 !
64  DO ielem=1,nelem
65 !
66 ! ALL INITIALISED WITH 1
67 !
68  ifac%I(npoin+eltseg(ielem,1))=1
69  ifac%I(npoin+eltseg(ielem,2))=1
70  ifac%I(npoin+eltseg(ielem,3))=1
71 !
72 ! ON PARALLEL INTERFACES, SEGMENTS WITH ORISEG=2 ARE SET TO 0
73 ! THE SEGMENT ON THE OTHER SIDE WILL HAVE 1
74 !
75  IF(ifabor(ielem,1).EQ.-2.AND.oriseg(ielem,1).EQ.2) THEN
76  ifac%I(npoin+eltseg(ielem,1))=0
77  ENDIF
78  IF(ifabor(ielem,2).EQ.-2.AND.oriseg(ielem,2).EQ.2) THEN
79  ifac%I(npoin+eltseg(ielem,2))=0
80  ENDIF
81  IF(ifabor(ielem,3).EQ.-2.AND.oriseg(ielem,3).EQ.2) THEN
82  ifac%I(npoin+eltseg(ielem,3))=0
83  ENDIF
84 !
85  ENDDO
86 !
87 !-----------------------------------------------------------------------
88 !
89  RETURN
90  END
subroutine comp_fac(ELTSEG, ORISEG, IFABOR, NELEM, NPOIN, IFAC)
Definition: comp_fac.f:7
Definition: bief.f:3