The TELEMAC-MASCARET system  trunk
parcom_bord.f
Go to the documentation of this file.
1 ! **********************
2  SUBROUTINE parcom_bord
3 ! **********************
4 !
5  &( x , icom , mesh )
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief COMPLEMENTS A VECTOR AT THE INTERFACES BETWEEN
12 !+ SUB-DOMAINS. HERE BOUNDARY VECTOR OF TYPE 1.
13 !
14 !history J-M HERVOUET (LNHE)
15 !+ 24/10/2008
16 !+ V5P9
17 !+ First version, inspired from parcom.
18 !
19 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
20 !+ 13/07/2010
21 !+ V6P0
22 !+ Translation of French comments within the FORTRAN sources into
23 !+ English comments
24 !
25 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
26 !+ 21/08/2010
27 !+ V6P0
28 !+ Creation of DOXYGEN tags for automated documentation and
29 !+ cross-referencing of the FORTRAN sources
30 !
31 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32 !| ICOM |-->| COMMUNICATION MODE
33 !| | | = 1 : VALUE WITH MAXIMUM ABSOLUTE VALUE TAKEN
34 !| | | = 2 : CONTRIBUTIONS ADDED
35 !| | | = 3 : MAXIMUM CONTRIBUTION RETAINED
36 !| | | = 4 : MINIMUM CONTRIBUTION RETAINED
37 !| MESH |-->| MESH STRUCTURE
38 !| X |<->| VECTOR OR BLOCK OF VECTORS
39 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 !
41  USE bief, ex_parcom_bord => parcom_bord
42 !
44  IMPLICIT NONE
45 !
46 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
47 !
48  INTEGER, INTENT(IN) :: ICOM
49 !
50 ! STRUCTURES: VECTORS OR BLOCKS
51 !
52  TYPE(bief_mesh), INTENT(INOUT) :: MESH
53  DOUBLE PRECISION, INTENT(INOUT) :: X(*)
54 !
55 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 !
57  INTEGER NPTFR,I,TELM,TDIM1,TDIM2,TDIMDISC
58 !
59 !***********************************************************************
60 !
61  nptfr=bief_nbpts(1,mesh)
62 !
63  telm = mesh%T%ELM
64  tdim1 = mesh%T%DIM1
65  tdim2 = mesh%T%DIM2
66  tdimdisc = mesh%T%DIMDISC
67 !
68  mesh%T%ELM = 11
69  mesh%T%DIM1 = bief_nbpts(11,mesh)
70  mesh%T%DIM2 = 1
71  mesh%T%DIMDISC = 0
72 !
73  CALL os('X=0 ',x=mesh%T)
74 !
75  DO i=1,nptfr
76  mesh%T%R(mesh%NBOR%I(i))=x(i)
77  ENDDO
78 !
79  CALL parcom(mesh%T,icom,mesh)
80 !
81  DO i=1,nptfr
82  x(i)=mesh%T%R(mesh%NBOR%I(i))
83  ENDDO
84 !
85  mesh%T%ELM = telm
86  mesh%T%DIM1 = tdim1
87  mesh%T%DIM2 = tdim2
88  mesh%T%DIMDISC = tdimdisc
89 !
90 !-----------------------------------------------------------------------
91 !
92  RETURN
93  END
integer function bief_nbpts(IELM, MESH)
Definition: bief_nbpts.f:7
subroutine parcom_bord(X, ICOM, MESH)
Definition: parcom_bord.f:7
subroutine os(OP, X, Y, Z, C, IOPT, INFINI, ZERO)
Definition: os.f:7
subroutine parcom(X, ICOM, MESH)
Definition: parcom.f:7
Definition: bief.f:3