The TELEMAC-MASCARET system  trunk
noerod.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE noerod
3 ! *****************
4 !
5  & (h , zf , zr , z , x , y , npoin , choix , nliss )
6 !
7 !***********************************************************************
8 ! SISYPHE
9 !***********************************************************************
10 !
11 !brief FIXES THE NON-ERODABLE BED ELEVATION ZR.
12 !
13 !note METHODS OF TREATMENT OF NON-ERODABLE BEDS CAN LEAD TO ZF.
14 !note CHOOSE TO SMOOTH THE SOLUTION WITH NLISS > 0.
15 !
16 !history C. LENORMANT
17 !+
18 !+ V5P1
19 !+
20 !
21 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
22 !+ 13/07/2010
23 !+ V6P0
24 !+ Translation of French comments within the FORTRAN sources into
25 !+ English comments
26 !
27 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
28 !+ 21/08/2010
29 !+ V6P0
30 !+ Creation of DOXYGEN tags for automated documentation and
31 !+ cross-referencing of the FORTRAN sources
32 !
33 !history J-M HERVOUET (EDF R&D, LNHE)
34 !+ 21/06/2013
35 !+ V6P3
36 !+ Now ZR=ZF-100.D0 by default
37 !+ previous versions was erronneously ZR=-100.D0
38 !
39 !history Y. AUDOUIN (LNHE)
40 !+ 22/10/18
41 !+ V8P1
42 !+ Call of USER_NOEROD User Fortran where the modifications are done
43 !
44 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
45 !| CHOIX |-->| SELECTED METHOD FOR THE TREATMENT OF RIGID BEDS
46 !| H |-->| WATER DEPTH
47 !| NLISS |<->| NUMBER OF SMOOTHINGS
48 !| NPOIN |-->| NUMBER OF 2D POINTS
49 !| X,Y |-->| 2D COORDINATES
50 !| Z |-->| FREE SURFACE
51 !| ZF |-->| BED LEVEL
52 !| ZR |<--| RIGID BED LEVEL
53 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54 !
55  USE bief
56 !
58  IMPLICIT NONE
59 !
60 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
61 !
62  INTEGER, INTENT(IN):: NPOIN , CHOIX
63  INTEGER, INTENT(INOUT):: NLISS
64 !
65  DOUBLE PRECISION, INTENT(IN):: Z(npoin) , ZF(npoin)
66  DOUBLE PRECISION , INTENT(IN):: X(npoin) , Y(npoin), H(npoin)
67  DOUBLE PRECISION , INTENT(INOUT):: ZR(npoin)
68 !
69 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
70 !
71 ! INTEGER I
72 !
73 !---------------------
74 ! RIGID BEDS POSITION
75 !---------------------
76 !
77 ! DEFAULT VALUE: ZR=ZF-100.D0
78 !
79  CALL ov('X=Y+C ', x=zr, y=zf, c=-100.d0, dim1=npoin)
80 !
81 !------------------
82 ! SMOOTHING OPTION
83 !------------------
84 !
85 ! NLISS : NUMBER OF SMOOTHING IF (ZF - ZR ) NEGATIVE
86 ! DEFAULT VALUE : NLISS = 0 (NO SMOOTHING)
87 !
88  nliss = 0
89 !
90 !--------------------------------------------------
91 ! CONTROL (CAN BE ACTIVATED IF ZR USER DEFINED...)
92 !--------------------------------------------------
93 !
94 ! DO I=1,NPOIN
95 ! IF(ZR(I).GT.ZF(I)) THEN
96 ! WRITE(LU,*) 'POINT ',I,' NON ERODABLE BED HIGHER THAN BED'
97 ! CALL PLANTE(1)
98 ! STOP
99 ! ENDIF
100 ! ENDDO
101 !
102 !-----------------------------------------------------------------------
103 !
104  ! USER FUNCTION
105  CALL user_noerod
106  & (h , zf , zr , z , x , y , npoin , choix , nliss )
107 !
108 !-----------------------------------------------------------------------
109 !
110  RETURN
111  END
subroutine ov(OP, X, Y, Z, C, DIM1)
Definition: ov.f:7
subroutine noerod(H, ZF, ZR, Z, X, Y, NPOIN, CHOIX, NLISS)
Definition: noerod.f:7
subroutine user_noerod(H, ZF, ZR, Z, X, Y, NPOIN, CHOIX, NLISS)
Definition: user_noerod.f:7
Definition: bief.f:3