The TELEMAC-MASCARET system  trunk
decv21.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE decv21
3 ! *****************
4 !
5  &(teta,sl,zf,ikle,nelem,nelmax)
6 !
7 !***********************************************************************
8 ! BIEF V6P1 21/08/2010
9 !***********************************************************************
10 !
11 !brief IDENTIFIES TIDAL FLATS.
12 !+
13 !+ DRYING ELEMENT : TETA = 0,
14 !+
15 !+ NORMAL ELEMENT : TETA = 1.
16 !+
17 !+ THE CRITERION FOR DRYING ELEMENTS IS THAT OF
18 !+ J.-M. JANIN : BOTTOM ELEVATION OF A POINT IN AN
19 !+ ELEMENT BEING HIGHER THAN THE FREE SURFACE
20 !+ ELEVATION OF ANOTHER.
21 !
22 !history J-M HERVOUET (LNH)
23 !+ 09/12/94
24 !+ V5P1
25 !+
26 !
27 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
28 !+ 13/07/2010
29 !+ V6P0
30 !+ Translation of French comments within the FORTRAN sources into
31 !+ English comments
32 !
33 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
34 !+ 21/08/2010
35 !+ V6P0
36 !+ Creation of DOXYGEN tags for automated documentation and
37 !+ cross-referencing of the FORTRAN sources
38 !
39 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
40 !| IKLE |-->| CONNECTIVITY TABLE
41 !| NELEM |-->| NUMBER OF ELEMENTS IN THE MESH
42 !| NELMAX |-->| MAXIMUM NUMBER OF ELEMENTS IN THE MESH
43 !| SL |-->| FREE SURFACE
44 !| TETA |<--| STATES IF AN ELEMENT IS DRY OR NOT
45 !| ZF |-->| BOTTOM ELEVATION
46 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47 !
49  USE bief, ex_decv21 => decv21
50  IMPLICIT NONE
51 !
52 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53 !
54  INTEGER , INTENT(IN) :: NELEM,NELMAX
55  INTEGER , INTENT(IN) :: IKLE(nelmax,*)
56  DOUBLE PRECISION, INTENT(OUT) :: TETA(nelem)
57  DOUBLE PRECISION, INTENT(IN) :: SL(*),ZF(*)
58 !
59 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
60 !
61  INTEGER IELEM
62 !
63  DOUBLE PRECISION SL1,SL2,SL3,SL4,ZF1,ZF2,ZF3,ZF4
64 !
65  INTRINSIC max,min
66 !
67 !-----------------------------------------------------------------------
68 !
69  CALL ov('X=C ', x=teta, c=1.d0, dim1=nelem)
70 !
71 !-----------------------------------------------------------------------
72 !
73  DO ielem = 1 , nelem
74 !
75  sl1 = sl(ikle(ielem,1))
76  sl2 = sl(ikle(ielem,2))
77  sl3 = sl(ikle(ielem,3))
78  sl4 = sl(ikle(ielem,4))
79 !
80  zf1 = zf(ikle(ielem,1))
81  zf2 = zf(ikle(ielem,2))
82  zf3 = zf(ikle(ielem,3))
83  zf4 = zf(ikle(ielem,4))
84 !
85  IF(max(zf1,zf2,zf3,zf4).GT.min(sl1,sl2,sl3,sl4)) THEN
86  teta(ielem) = 0.d0
87  ENDIF
88 !
89  ENDDO ! IELEM
90 !
91 !-----------------------------------------------------------------------
92 !
93  RETURN
94  END
subroutine ov(OP, X, Y, Z, C, DIM1)
Definition: ov.f:7
subroutine decv21(TETA, SL, ZF, IKLE, NELEM, NELMAX)
Definition: decv21.f:7
double precision function sl(I, N)
Definition: sl.f:7
Definition: bief.f:3