The TELEMAC-MASCARET system  trunk
q3.f
Go to the documentation of this file.
1 ! ****************************
2  DOUBLE PRECISION FUNCTION q3
3 ! ****************************
4 !
5  &( i , time , entet )
6 !
7 !***********************************************************************
8 ! TELEMAC3D V7P1
9 !***********************************************************************
10 !
11 !brief PRESCRIBES THE DISCHARGE FOR FLOW IMPOSED
12 !+ LIQUID BOUNDARIES.
13 !
14 !history J-M HERVOUET (LNHE)
15 !+ 08/04/09
16 !+ V6P0
17 !+ Original version.
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 !history C. COULET (ARTELIA GROUP)
32 !+ 08/11/2011
33 !+ V6P2
34 !+ Modification of FCT size due to modification of TRACER numbering
35 !
36 !history J-M HERVOUET (LNHE)
37 !+ 28/09/2015
38 !+ V7P1
39 !+ Removing hardcoded array OK.
40 !
41 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42 !| ENTET |-->| IF YES, LISTING PRINTOUTS ALLOWED
43 !| I |-->| NUMBER OF THE LIQUID BOUNDARY
44 !| TIME |-->| TIME OF TIME STEP
45 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 !
47  USE interface_telemac3d, ex_q3 => q3
49  USE bief
52 !
53  IMPLICIT NONE
54 !
55 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 !
57  INTEGER , INTENT(IN) :: I
58  DOUBLE PRECISION , INTENT(IN) :: TIME
59  LOGICAL , INTENT(IN) :: ENTET
60 !
61 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
62 !
63  CHARACTER(LEN=9) :: FCT
64 !
65 !-----------------------------------------------------------------------
66 !
67 ! IF LIQUID BOUNDARY FILE EXISTS, ATTEMPTS TO FIND
68 ! THE VALUE IN IT. IF YES, OKQ3 REMAINS TO .TRUE. FOR NEXT CALLS
69 ! IF NO, OKQ3 IS SET TO .FALSE.
70 !
71  IF(okq3(i).AND.t3d_files(t3dimp)%NAME(1:1).NE.' ') THEN
72 !
73 ! FCT WILL BE Q(1), Q(2), ETC, Q(99), DEPENDING ON I
74  fct='Q( '
75  IF(i.LT.10) THEN
76  WRITE(fct(3:3),fmt='(I1)') i
77  fct(4:4)=')'
78  ELSEIF(i.LT.100) THEN
79  WRITE(fct(3:4),fmt='(I2)') i
80  fct(5:5)=')'
81  ELSE
82  WRITE(lu,*) 'Q3 NOT PROGRAMMED FOR MORE
83  & THAN 99 BOUNDARIES'
84  CALL plante(1)
85  stop
86  ENDIF
87  CALL read_fic_frliq(q3,fct,time,t3d_files(t3dimp)%LU,
88  & entet,okq3(i))
89 !
90  ENDIF
91 !
92  IF(.NOT.okq3(i).OR.t3d_files(t3dimp)%NAME(1:1).EQ.' ') THEN
93 !
94 ! Q IS TAKEN FROM THE STEERING FILE, BUT MAY BE CHANGED
95 !
96  q3 = debimp(i)
97 
98  ! USER UPDATE
99  CALL user_q3(q3, i, time, entet)
100 !
101  ENDIF
102 !
103 !-----------------------------------------------------------------------
104 !
105  RETURN
106  END
type(bief_file), dimension(maxlu_t3d), target t3d_files
logical, dimension(:), allocatable okq3
subroutine user_q3(Q3, I, TIME, ENTET)
Definition: user_q3.f:7
double precision, dimension(:), allocatable, target debimp
subroutine read_fic_frliq(Q, WHAT, AT, NFIC, LISTIN, FOUND)
Definition: read_fic_frliq.f:7
double precision function q3(I, TIME, ENTET)
Definition: q3.f:7
Definition: bief.f:3