The TELEMAC-MASCARET system  trunk
filp10.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE filp10
3 ! *****************
4 !
5  &( f , c , xsom , ysom , nsom , x , y , nelem , nelmax , ikle )
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief INITIALISES A FUNCTION TO A CONSTANT VALUE
12 !+ INSIDE OF A POLYGON.
13 !
14 !history C MOULIN (LNH)
15 !+ 06/12/94
16 !+ V5P1
17 !+
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 !| C |-->| THE CONSTANT VALUE
33 !| F |<->| THE FUNCTION
34 !| IKLE |-->| CONNECTIVITY TABLE.
35 !| NELEM |-->| NUMBER OF ELEMENTS
36 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS
37 !| NSOM |-->| NUMBER OF VERTICES IN THE POLYGON
38 !| X |-->| ABSCISSAE OF POINTS IN THE MESH
39 !| XSOM |-->| ABSCISSAE OF POINTS IN THE POLYGON
40 !| Y |-->| ORDINATES OF POINTS IN THE MESH
41 !| YSOM |-->| ORDINATES OF POINTS IN THE POLYGON
42 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 !
44  USE bief, ex_filp10 => filp10
45 !
47  IMPLICIT NONE
48 !
49 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
50 !
51  INTEGER, INTENT(IN) :: NSOM,NELEM,NELMAX
52  DOUBLE PRECISION, INTENT(INOUT) :: F(*)
53  DOUBLE PRECISION, INTENT(IN) :: X(*) , Y(*)
54  DOUBLE PRECISION, INTENT(IN) :: XSOM(nsom) , YSOM(nsom) , C
55  INTEGER, INTENT(IN) :: IKLE(nelmax,3)
56 !
57 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
58 !
59  INTEGER IELEM , I1 , I2 , I3
60 !
61 !-----------------------------------------------------------------------
62 !
63  DO ielem = 1 , nelem
64 !
65  i1 = ikle(ielem,1)
66  i2 = ikle(ielem,2)
67  i3 = ikle(ielem,3)
68  IF( inpoly(x(i1),y(i1),xsom,ysom,nsom) .AND.
69  & inpoly(x(i2),y(i2),xsom,ysom,nsom) .AND.
70  & inpoly(x(i3),y(i3),xsom,ysom,nsom) ) f(ielem) = c
71 !
72  ENDDO ! IELEM
73 !
74 !-----------------------------------------------------------------------
75 !
76  RETURN
77  END
logical function inpoly(X, Y, XSOM, YSOM, NSOM)
Definition: inpoly.f:7
subroutine filp10(F, C, XSOM, YSOM, NSOM, X, Y, NELEM, NELMAX, IKLE)
Definition: filp10.f:7
Definition: bief.f:3