The TELEMAC-MASCARET system  trunk
rescue_sisyphe_notperma.f
Go to the documentation of this file.
1 ! **********************************
2  SUBROUTINE rescue_sisyphe_notperma
3 ! **********************************
4 !
5  &(qu,qv,q,u,v,h,s,zf,hw,tw,thetaw,npoin,trouve,alire,icf,entet,
6  & maxvar)
7 !
8 !***********************************************************************
9 ! SISYPHE V6P1 21/07/2011
10 !***********************************************************************
11 !
12 !brief COMPUTES MISSING DATA/VARIABLES FOR HYDRODYNAMIC
13 !+ AND/OR SEDIMENTOLOGICAL CONTINUATION RUN.
14 !
15 !note RESCUE_SISYPHE MUST BE MODIFIED FOR UNSTEADY SIMULATIONS
16 !+ TO TAKE THE BED EVOLUTIONS INTO ACCOUNT.
17 !note THE WATER DEPTH NEEDS TO BE COMPUTED FROM THE BED ELEVATION
18 !+ (SISYPHE) AND THE FREE SURFACE ELEVATION (HYDRO FILE).
19 !
20 !history C.VILLARET
21 !+
22 !+ V5P7
23 !+
24 !
25 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
26 !+ 13/07/2010
27 !+ V6P0
28 !+ Translation of French comments within the FORTRAN sources into
29 !+ English comments
30 !
31 !history N.DURAND (HRW), S.E.BOURBAN (HRW)
32 !+ 21/08/2010
33 !+ V6P0
34 !+ Creation of DOXYGEN tags for automated documentation and
35 !+ cross-referencing of the FORTRAN sources
36 !
37 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
38 !| ALIRE |-->| LIST VARIABLES TO BE READ
39 !| H |<->| WATER DEPTH
40 !| HW |<->| WAVE DEPTH
41 !| ICF |-->| BED-LOAD OR TOTAL LOAD TRANSPORT FORMULAS
42 !| LISTI |-->| LOGICAL, IF YES PRINT MESSAGES
43 !| MAXVAR |-->| MAXIMUM NUMBER OF OUTPUT VARIABLES
44 !| NPOIN |-->| NUMBER OF MESH NODES
45 !| PASS |-->| LOGICAL, IF YES BEGIN OF COMPUTATION
46 !| Q |<->| LIQUID DISCHARGE
47 !| QU |<->| LIQUID DISCHARGE X
48 !| QV |<->| LIQUID DISCHARGE Y
49 !| S |<->| WATER SURFACE ELEVATION
50 !| THETAW |<->| ANGLE BETWEEN WAVE AND CURRENT
51 !| TROUVE |-->| LOGIQUE INDIQUANT LES VARIABLES TROUVEES
52 !| | | DANS LE SOUS-PROGRAMME SUITE
53 !| TW |<->| WAVE PERIOD
54 !| U |<->| VELOCITY COMPONENT X
55 !| V |<->| VELOCITY COMPONENT Y
56 !| ZF |<->| BED LEVEL
57 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58 !
59  USE interface_sisyphe, ex_rescue_sisyphe_notperma
61  USE bief, ONLY: ov
62 !
64  IMPLICIT NONE
65 !
66 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
67 !
68  INTEGER, INTENT(IN) :: MAXVAR
69  INTEGER, INTENT(IN) :: TROUVE(maxvar),ALIRE(maxvar),NPOIN,ICF
70 !
71  DOUBLE PRECISION, INTENT(INOUT) :: QU(npoin), QV(npoin), Q(npoin)
72  DOUBLE PRECISION, INTENT(INOUT) :: U(npoin) , V(npoin)
73  DOUBLE PRECISION, INTENT(INOUT) :: S(npoin) , ZF(npoin), H(npoin)
74  DOUBLE PRECISION, INTENT(INOUT) :: HW(npoin), TW(npoin)
75  DOUBLE PRECISION, INTENT(INOUT) :: THETAW(npoin)
76  LOGICAL, INTENT(IN) :: ENTET
77 !
78 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
79 !
80 ! THE ESSENTIAL VARIABLES NOT MODIFIED BY THE BED EVOLUTIONS
81 ! ARE THE FREE SURFACE AND THE FLOW
82 !
83 ! COMPUTES THE FREE SURFACE(4) FROM THE NON-MODIFIED WATER DEPTH
84 ! AND THE NON-MODIFIED BED ELEVATION
85 !
86  IF(trouve(4).EQ.0.AND.alire(4).EQ.1) THEN
87  IF(trouve(3).EQ.1.AND.trouve(5).EQ.1) THEN
88  CALL ov('X=Y+Z ', x=s, y=h, z=zf, dim1=npoin)
89  ELSE
90  WRITE(lu,*) 'UNABLE TO BUILD FREE SURFACE'
91  CALL plante(1)
92  stop
93  ENDIF
94  ENDIF
95 !
96 ! COMPUTES THE TELEMAC WATER DEPTH(3) FROM THE NON-MODIFIED
97 ! BED ELEVATION AND THE FREE SURFACE
98 !
99  IF(trouve(3).EQ.0.AND.alire(3).EQ.1) THEN
100  IF(trouve(5).EQ.1) THEN
101  CALL ov('X=Y-Z ', x=h, y=s, z=zf, dim1=npoin)
102  ELSE
103  WRITE(lu,*) 'MISSING BOTTOM OR WATER DEPTH'
104  CALL plante(1)
105  stop
106  ENDIF
107  ENDIF
108 !
109 ! FLOWRATE ALONG X: QU
110 !
111  IF (alire(7).EQ.1.AND.trouve(7).EQ.0) THEN
112  IF (trouve(1).EQ.1) THEN
113  IF(entet) THEN
114  WRITE(lu,151)
115 151 FORMAT(1x,'DISCHARGE /X COMPUTED WITH DEPTH AND VELOCITY')
116  ENDIF
117  CALL ov('X=YZ ', x=qu, y=u, z=h, dim1=npoin)
118  ELSE
119  IF(entet) THEN
120  WRITE(lu,191)
121 191 FORMAT(1x,'PREVIOUS COMPUTATION WITHOUT VELOCITY U: U IS
122  & EQUAL TO ZERO')
123  ENDIF
124  CALL ov('X=C ', x=qu, c=0.d0, dim1=npoin)
125  ENDIF
126  ENDIF
127 !
128 !-----------------------------------------------------------------------
129 !
130 ! FLOWRATE ALONG Y : QV
131 !
132  IF (alire(8).EQ.1.AND.trouve(8).EQ.0) THEN
133  IF (trouve(2).EQ.1) THEN
134  IF(entet) THEN
135  WRITE(lu,161)
136 161 FORMAT(1x,'DISCHARGE /Y COMPUTED WITH DEPTH AND VELOCITY')
137  ENDIF
138  CALL ov('X=YZ ', x=qv, y=v, z=h,dim1=npoin)
139  ELSE
140  IF(entet) THEN
141  WRITE(lu,211)
142 211 FORMAT(1x,'PREVIOUS COMPUTATION WITHOUT VELOCITY V:
143  & FIXED TO ZERO')
144  ENDIF
145  CALL ov('X=C ', x=qv, c=0.d0, dim1=npoin)
146  ENDIF
147  ENDIF
148 !
149 !-----------------------------------------------------------------------
150 !
151 ! FLOWRATE (M2/S)
152 !
153  IF ((alire(6).EQ.1).AND.(trouve(6).EQ.0)) THEN
154  CALL ov('X=N(Y,Z)', x=q, y=qu, z=qv, dim1=npoin)
155  ENDIF
156 !
157 !-----------------------------------------------------------------------
158 ! WAVE HEIGHT AND PERIOD
159 !
160  IF ((icf==4).OR.(icf==5).OR.
161  & (icf==8).OR.(icf==9) ) THEN
162 !
163  IF ((alire(12).EQ.1).AND.(trouve(12).EQ.0)) THEN
164  WRITE(lu,901)
165  CALL ov('X=C ', x=hw, c=0.d0, dim1=npoin)
166  ENDIF
167 !
168 901 FORMAT(1x,'PREVIOUS COMPUTATION WITHOUT WAVE HEIGHT : IT IS',
169  & ' FIXED TO ZERO')
170 !
171  IF ((alire(13).EQ.1).AND.(trouve(13).EQ.0)) THEN
172  WRITE(lu,903)
173  CALL ov('X=C ', x=tw, c=0.d0, dim1=npoin)
174  ENDIF
175 903 FORMAT(1x,'PREVIOUS COMPUTATION WITHOUT WAVE PERIOD : IT IS',
176  & ' FIXED TO ZERO')
177 !
178  IF ((alire(14).EQ.1).AND.(trouve(14).EQ.0)) THEN
179  WRITE(lu,910)
180  CALL ov('X=C ', x=thetaw , c=90.d0, dim1=npoin)
181  ENDIF
182  ENDIF
183 910 FORMAT(1x,'PREVIOUS COMPUTATION WITHOUT WAVE ANGLE : IT IS',
184  & ' FIXED TO ZERO')
185 !
186 !-----------------------------------------------------------------------
187 !
188  RETURN
189  END SUBROUTINE rescue_sisyphe_notperma
subroutine ov(OP, X, Y, Z, C, DIM1)
Definition: ov.f:7
subroutine rescue_sisyphe_notperma(QU, QV, Q, U, V, H, S, ZF, HW, TW, THETAW, NPOIN, TROUVE, ALIRE, ICF, ENTET, MAXVAR)
double precision function q(I)
Definition: q.f:7
Definition: bief.f:3