Newer
Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
! *****************
SUBROUTINE RESCUE
! *****************
!
&(U,V,H,S,ZF,T,TRAC0,NTRAC,ITURB,NPOIN,AKEP,TROUVE)
!
!***********************************************************************
! TELEMAC2D V7P1
!***********************************************************************
!
! Modifié pour éviter d'écraser la salinité dans le calcul précédent.
! (cf. indice 34)
!
!***********************************************************************
!
!brief COMPUTES MISSING DATA/VARIABLES (WHEN RESUMING SIMULATION).
!
!history J-M HERVOUET (LNH)
!+ 31/08/2007
!+ V5P8
!+ First version.
!
!history N.DURAND (HRW), S.E.BOURBAN (HRW)
!+ 13/07/2010
!+ V6P0
!+ Translation of French comments within the FORTRAN sources into
!+ English comments
!
!history N.DURAND (HRW), S.E.BOURBAN (HRW)
!+ 21/08/2010
!+ V6P0
!+ Creation of DOXYGEN tags for automated documentation and
!+ cross-referencing of the FORTRAN sources
!
!history D WANG & P TASSI (LNHE)
!+ 10/07/2014
!+ V7P0
!+ Tracers ranks shifted due to secondary currents variables.
!
!history J-M HERVOUET (EDF LAB, LNHE)
!+ 24/07/2015
!+ V5P8
!+ English message corrected.
!
!history R. ATA (EDF LAB, LNHE)
!+ 18/05/2018
!+ V7P3
!+ remove shifting of tracer since secondary current is
!+ already considered in the index 34
!
!history R. ATA (EDF LAB, LNHE)
!+ 18/06/2018
!+ V8P0
!+ Add a clipping of water depth
!
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!| AKEP |-->| IF YES, K AND EPSILON TO BE INITIALISED
!| H |<--| WATER DEPTH
!| ITURB |-->| TURBULENCE MODEL
!| NPOIN |-->| NUMBER OF POINTS
!| NTRAC |-->| NUMBER OF TRACERS
!| S |<--| FREE SURFACE
!| T |<--| BLOCK OF TRACERS
!| TRAC0 |-->| INITIAL VALUES OF TRACERS
!| TROUVE |-->| INTEGER ARRAY SAYING IF VARIABLES HAVE BEEN FOUND
!| ZF |-->| ELEVATION OF BOTTOM
!~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
!
USE BIEF
!
USE DECLARATIONS_SPECIAL
IMPLICIT NONE
!
!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!
INTEGER, INTENT(IN) :: TROUVE(*),ITURB,NPOIN,NTRAC
LOGICAL, INTENT(INOUT) :: AKEP
DOUBLE PRECISION, INTENT(INOUT) :: U(NPOIN),V(NPOIN),H(NPOIN)
DOUBLE PRECISION, INTENT(INOUT) :: S(NPOIN),ZF(NPOIN)
DOUBLE PRECISION, INTENT(IN) :: TRAC0(NTRAC)
TYPE(BIEF_OBJ) , INTENT(INOUT) :: T
!
!+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
!
INTEGER ITRAC
!
!-----------------------------------------------------------------------
!
! VELOCITY U-COMPONENT
!
print *, 'coucou rescue'
IF(TROUVE(1).NE.1 ) THEN
WRITE(LU,191)
191 FORMAT(1X,'RESCUE : PREVIOUS COMPUTATION RESULTS FILE',
& /,1X,' WITHOUT VELOCITY U, WE FIX IT TO ZERO')
CALL OV('X=C ', X=U, C=0.D0, DIM1=NPOIN)
ENDIF
!
!-----------------------------------------------------------------------
!
! VELOCITY V-COMPONENT
!
IF(TROUVE(2).NE.1 ) THEN
WRITE(LU,201)
201 FORMAT(1X,'RESCUE : PREVIOUS COMPUTATION RESULTS FILE',
& /,1X,' WITHOUT VELOCITY V, WE FIX IT TO ZERO')
CALL OV('X=C ', X=V, C=0.D0, DIM1=NPOIN)
ENDIF
!
!-----------------------------------------------------------------------
!
! WATER DEPTH
!
IF(TROUVE(4).NE.1) THEN
IF(TROUVE(5).EQ.1) THEN
WRITE(LU,401)
401 FORMAT(1X,'RESCUE : WATER DEPTH COMPUTED WITH BATHYMETRY',
& /,1X,' AND SURFACE ELEVATION')
CALL OV('X=Y-Z ', X=H, Y=S, Z=ZF, DIM1=NPOIN)
!
! CLIP WATER DEPTH IN CASE OF NEGATIVE VALUES
!
CALL OV('X=+(Y,C)', X=H, Y=H, C=0.D0,DIM1=NPOIN)
!
ELSE
WRITE(LU,421)
421 FORMAT(1X,'RESCUE : WATER DEPTH CANNOT BE COMPUTED')
CALL PLANTE(1)
STOP
ENDIF
ENDIF
!
!-----------------------------------------------------------------------
!
! TRACER
!
IF(NTRAC.GT.0) THEN
DO ITRAC=1,NTRAC
IF(TROUVE(34+ITRAC).EQ.0) THEN
WRITE(LU,901)
901 FORMAT(1X,'RESCUE : PREVIOUS CALCULATION WITHOUT TRACER',
& /,1X,' WE FIX IT TO TRAC0')
CALL OS( 'X=C ' , X=T%ADR(ITRAC)%P,C=TRAC0(ITRAC))
ENDIF
ENDDO
ENDIF
!
!-----------------------------------------------------------------------
!
! K AND EPSILON
!
IF(ITURB.EQ.3.AND.TROUVE(10).EQ.1.AND.TROUVE(11).EQ.1) THEN
AKEP=.FALSE.
ENDIF
IF(ITURB.EQ.3.AND.(TROUVE(10).EQ.0.OR.TROUVE(11).EQ.0)) THEN
WRITE(LU,951)
951 FORMAT(1X,'RESCUE : K AND EPSILON WILL BE SET AGAIN')
ENDIF
!
!-----------------------------------------------------------------------
!
RETURN
END