The TELEMAC-MASCARET system  trunk
filpol.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE filpol
3 ! *****************
4 !
5  &( f , c , xsom , ysom , nsom , mesh )
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief THE POINTS OF VECTOR F, WHICH ARE INSIDE OF THE
12 !+ POLYGON DEFINED BY VERTICES XSOM AND YSOM, ARE
13 !+ INITIALISED TO CONSTANT C.
14 !
15 !note THE POLYGON IS READ ANTI-CLOCKWISE.
16 !
17 !history J-M HERVOUET (LNH)
18 !+ 08/12/94
19 !+ V5P1
20 !+
21 !
22 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
23 !+ 13/07/2010
24 !+ V6P0
25 !+ Translation of French comments within the FORTRAN sources into
26 !+ English comments
27 !
28 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
29 !+ 21/08/2010
30 !+ V6P0
31 !+ Creation of DOXYGEN tags for automated documentation and
32 !+ cross-referencing of the FORTRAN sources
33 !
34 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35 !| C |-->| CONSTANT TO BE PRESCRIBED INSIDE THE POLYGON.
36 !| F |<->| THE RESULT (VECTOR)
37 !| MESH |-->| MESH STRUCTURE
38 !| NSOM |-->| NUMBER OF VERTICES IN THE POLYGON
39 !| XSOM |-->| ABSCISSAE OF VERTICES IN THE POLYGON
40 !| YSOM |-->| ORDINATES OF VERTICES IN THE POLYGON
41 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42 !
43  USE bief, ex_filpol => filpol
44 !
46  IMPLICIT NONE
47 !
48 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
49 !
50  INTEGER, INTENT(IN) :: NSOM
51  DOUBLE PRECISION, INTENT(IN) :: C,XSOM(*),YSOM(*)
52  TYPE(bief_obj), INTENT(INOUT) :: F
53  TYPE(bief_mesh), INTENT(IN) :: MESH
54 !
55 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 !
57  INTEGER NPOIN,IELM
58 !
59 !-----------------------------------------------------------------------
60 !
61 ! TYPE OF ELEMENT FOR VELOCITY
62 !
63  ielm = f%ELM
64 !
65 !-----------------------------------------------------------------------
66 !
67  IF(ielm.EQ.10) THEN
68 !
69  CALL filp10( f%R , c , xsom , ysom , nsom ,
70  & mesh%X%R,mesh%Y%R,mesh%NELEM,mesh%NELMAX,mesh%IKLE%I)
71 !
72  ELSEIF(ielm.EQ.11) THEN
73 !
74  npoin = f%DIM1
75  CALL filp11(f%R,c,xsom,ysom,nsom,mesh%X%R,mesh%Y%R,npoin)
76 !
77  ELSEIF(ielm.EQ.12) THEN
78 !
79  npoin = f%DIM1 - mesh%NELEM
80  CALL filp12( f%R , c , xsom , ysom , nsom , mesh%X%R , mesh%Y%R,
81  & npoin , mesh%NELEM , mesh%NELMAX , mesh%IKLE%I)
82 !
83  ELSE
84 !
85 ! ELM NOT IMPLEMENTED: ERROR
86 !
87  WRITE(lu,101) ielm
88 101 FORMAT(1x,'FILPOL (BIEF): IELM = ',1i6,' ELEMENT NOT AVAILABLE')
89  CALL plante(1)
90  stop
91 !
92  ENDIF
93 !
94 !-----------------------------------------------------------------------
95 !
96  RETURN
97  END
subroutine filpol(F, C, XSOM, YSOM, NSOM, MESH)
Definition: filpol.f:7
subroutine filp12(F, C, XSOM, YSOM, NSOM, X, Y, NPOIN, NELEM, NELMAX, IKLE)
Definition: filp12.f:7
subroutine filp10(F, C, XSOM, YSOM, NSOM, X, Y, NELEM, NELMAX, IKLE)
Definition: filp10.f:7
subroutine filp11(F, C, XSOM, YSOM, NSOM, X, Y, NPOIN)
Definition: filp11.f:7
Definition: bief.f:3