The TELEMAC-MASCARET system  trunk
parcom2.f
Go to the documentation of this file.
1 ! ******************
2  SUBROUTINE parcom2
3 ! ******************
4 !
5  &( x1 , x2 , x3 , npoin , nplan , icom , ian , mesh )
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief COMPLEMENTS A VECTOR AT THE INTERFACES BETWEEN
12 !+ SUB-DOMAINS.
13 !+
14 !+ X CAN BE A BLOCK OF VECTORS. IN THIS CASE, ALL THE
15 !+ VECTORS IN THE BLOCK ARE TREATED.
16 !
17 !note IMPORTANT : FROM RELEASE 5.9 ON, IDENTICAL VALUES ARE
18 !+ ENSURED AT INTERFACE POINTS SO THAT DIFFERENT
19 !+ PROCESSORS WILL ALWAYS MAKE THE SAME DECISION
20 !+ IN TESTS ON REAL NUMBERS.
21 !
22 !warning IF THE VECTORS HAVE A SECOND DIMENSION, IT IS
23 !+ IGNORED FOR THE TIME BEING
24 !
25 !history J-M HERVOUET (LNHE)
26 !+ 13/08/08
27 !+ V5P9
28 !+ AFTER REINHARD HINKELMANN (HANNOVER UNI.)
29 !
30 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
31 !+ 13/07/2010
32 !+ V6P0
33 !+ Translation of French comments within the FORTRAN sources into
34 !+ English comments
35 !
36 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
37 !+ 21/08/2010
38 !+ V6P0
39 !+ Creation of DOXYGEN tags for automated documentation and
40 !+ cross-referencing of the FORTRAN sources
41 !
42 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 !| IAN |-->| NUMBER OF VECTORS TO BE CONDIDERED (1, 2 OR 3)
44 !| ICOM |-->| COMMUNICATION MODE
45 !| | | = 1 : VALUE WITH MAXIMUM ABSOLUTE VALUE TAKEN
46 !| | | = 2 : CONTRIBUTIONS ADDED
47 !| | | = 3 : MAXIMUM CONTRIBUTION RETAINED
48 !| | | = 4 : MINIMUM CONTRIBUTION RETAINED
49 !| MESH |-->| MESH STRUCTURE
50 !| NPLAN |-->| NUMBER OF PLANES IN THE 3D MESH OF PRISMS
51 !| NPOIN |-->| NUMBER OF POINTS
52 !| X1 |<->| VECTOR TO BE COMPLETED
53 !| X2 |<->| VECTOR TO BE COMPLETED
54 !| X3 |<->| VECTOR TO BE COMPLETED
55 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
56 !
57  USE bief, ex_parcom2 => parcom2
58 !
60  IMPLICIT NONE
61 !
62 !-----------------------------------------------------------------------
63 !
64  INTEGER, INTENT(IN) :: ICOM,NPOIN,NPLAN,IAN
65 !
66 ! STRUCTURES: VECTORS OR BLOCKS
67 !
68  TYPE(bief_mesh) , INTENT(INOUT) :: MESH
69  DOUBLE PRECISION, INTENT(INOUT) :: X1(npoin,nplan)
70  DOUBLE PRECISION, INTENT(INOUT) :: X2(npoin,nplan)
71  DOUBLE PRECISION, INTENT(INOUT) :: X3(npoin,nplan)
72 !
73 !-----------------------------------------------------------------------
74 !
75  CALL paraco(x1,x2,x3,npoin,icom,ian,nplan,
76  & mesh%NB_NEIGHB,mesh%NB_NEIGHB_PT%I,mesh%LIST_SEND%I,
77  & mesh%NH_COM%I,mesh%NH_COM%DIM1,mesh%BUF_SEND%R,
78  & mesh%BUF_RECV%R,mesh%BUF_SEND%DIM1)
79 !
80 ! RELEASE 5.9 : ENSURES SAME VALUES AT INTERFACE POINTS
81 ! SHARED BY SEVERAL SUB-DOMAINS
82 !
83  IF(icom.EQ.2.AND.ncsize.GT.2) THEN
84 !
85  CALL paraco(x1,x2,x3,npoin,1,ian,nplan,
86  & mesh%NB_NEIGHB,mesh%NB_NEIGHB_PT%I,mesh%LIST_SEND%I,
87  & mesh%NH_COM%I,mesh%NH_COM%DIM1,mesh%BUF_SEND%R,
88  & mesh%BUF_RECV%R,mesh%BUF_SEND%DIM1)
89 !
90  ENDIF
91 !
92 !-----------------------------------------------------------------------
93 !
94  RETURN
95  END
subroutine parcom2(X1, X2, X3, NPOIN, NPLAN, ICOM, IAN, MESH)
Definition: parcom2.f:7
subroutine paraco(V1, V2, V3, NPOIN, ICOM, IAN, NPLAN, NB_NEIGHB, NB_NEIGHB_PT, LIST_SEND, NH_COM, DIMNHCOM, BUF_SEND, BUF_RECV, DIMBUF)
Definition: paraco.f:8
Definition: bief.f:3