The TELEMAC-MASCARET system  trunk
qgl.f
Go to the documentation of this file.
1 ! *****************************
2  DOUBLE PRECISION FUNCTION qgl
3 ! *****************************
4 !
5  &(i,at)
6 !
7 !***********************************************************************
8 ! SISYPHE
9 !***********************************************************************
10 !
11 !brief PRESCRIBES THE SOLID DISCHARGE FOR IMPOSED
12 !+ LIQUID BOUNDARIES.
13 !
14 !history J-M HERVOUET (LNHE)
15 !+ 17/08/1994
16 !+ V6P0
17 !+
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 size FCT due to modification of TRACER numbering
35 !
36 !history P. TASSI (EDF)
37 !+ 17/03/2017
38 !+ V7P3
39 !+ Modification of the error message when the prescribed number
40 !+ of solid discharge(s) is not enough
41 !
42 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
43 !| I |-->| NUMBER OF LIQUID BOUNDARY
44 !| N |-->| GLOBAL NUMBER OF POINT
45 !| | | IN PARALLEL NUMBER IN THE ORIGINAL MESH
46 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
47 !
48  USE bief
51 !
52 !
53  IMPLICIT NONE
54 !
55 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
56 !
57  INTEGER, INTENT(IN) :: I
58  DOUBLE PRECISION, INTENT(IN):: AT
59 !
60 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
61 !
62  CHARACTER(LEN=9) FCT
63 !
64 !-----------------------------------------------------------------------
65 !
66 ! IF THE LIQUID BOUNDARY FILE EXISTS, ATTEMPTS TO FIND
67 ! THE VALUE IN IT. IF YES, OK REMAINS TO .TRUE. FOR NEXT CALLS
68 ! IF NO, OK IS SET TO .FALSE.
69 !
70  IF(okqgl(i).AND.sis_files(sisliq)%NAME(1:1).NE.' ') THEN
71 !
72 ! FCT WILL BE QGL(1), QGL(2), ETC, QGL(9), DEPENDING ON I
73  fct='QG( '
74  IF(i.LT.10) THEN
75  WRITE(fct(4:4),fmt='(I1)') i
76  fct(5:5)=')'
77  ELSEIF(i.LT.100) THEN
78  WRITE(fct(4:5),fmt='(I2)') i
79  fct(6:6)=')'
80  ELSE
81  WRITE(lu,*)'I=',i
82  WRITE(lu,*) 'QGL NOT PROGRAMMED FOR MORE THAN 99 BOUNDARIES'
83  CALL plante(1)
84  stop
85  ENDIF
86 !
87  CALL read_fic_conc(qgl,fct,at,sis_files(sisliq)%LU,
88  & okqgl(i))
89 !
90  ENDIF
91 !
92  IF(.NOT.okqgl(i).OR.sis_files(sisliq)%NAME(1:1).EQ.' ') THEN
93 ! USER DEFINED
94  CALL user_qgl(qgl,i,at)
95  ENDIF
96 !
97 !
98 !-----------------------------------------------------------------------
99 !
100  RETURN
101  END
subroutine read_fic_conc(CGL, WHAT, AT, NFIC, FOUND)
Definition: read_fic_conc.f:7
subroutine user_qgl(QGL, I, AT)
Definition: user_qgl.f:7
double precision function qgl(I, AT)
Definition: qgl.f:7
logical, dimension(:), allocatable okqgl
type(bief_file), dimension(maxlu_sis), target sis_files
Definition: bief.f:3