The TELEMAC-MASCARET system  trunk
f1f1f1.f
Go to the documentation of this file.
1 ! *****************
2  SUBROUTINE f1f1f1
3 ! *****************
4 !
5  &(f1sf,nf1,iq_om1)
6 !
7 !***********************************************************************
8 ! TOMAWAC V6P3 15/06/2011
9 !***********************************************************************
10 !
11 !brief SUBROUTINE CALLED BY PRENL3
12 !+ COMPUTES VALUES OF RATIO F1/F AS FUNCTION OF THE IQ_OM1
13 !+ INDICATOR
14 !
15 !history E. GAGNAIRE-RENOU
16 !+ 04/2011
17 !+ V6P1
18 !+ CREATED
19 !
20 !history G.MATTAROLO (EDF - LNHE)
21 !+ 15/06/2011
22 !+ V6P1
23 !+ Translation of French names of the variables in argument
24 !
25 !history E. GAGNAIRE-RENOU
26 !+ 12/03/2013
27 !+ V6P3
28 !+ Better formatted: WRITE(LU,*), etc.
29 !
30 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
31 !| F1SF |-->|
32 !| IQ_OM1 |-->| SETTING FOR INTEGRATION ON OMEGA1
33 !| NF1 |-->|
34 !~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
35 !
37  USE interface_tomawac, ex_f1f1f1 => f1f1f1
38  IMPLICIT NONE
39 !
40 !
41 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
42 !
43  INTEGER, INTENT(IN) :: IQ_OM1
44  INTEGER, INTENT(INOUT) :: NF1
45  DOUBLE PRECISION, INTENT(INOUT) :: F1SF(*)
46 !
47 !+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
48 !
49  INTEGER I,M
50  DOUBLE PRECISION RAISON
51 !
52 !-----------------------------------------------------------------------
53 !
54  IF(iq_om1.EQ.1) THEN
55  IF(nf1.NE.14) THEN
56  WRITE(lu,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
57  WRITE(lu,*) 'IQ_OM1 = ',iq_om1,' AND NF1 = ',nf1
58  CALL plante(1)
59  stop
60  ENDIF
61  f1sf( 1)=0.30d0
62  f1sf( 2)=0.40d0
63  f1sf( 3)=0.50d0
64  f1sf( 4)=0.60d0
65  f1sf( 5)=0.70d0
66  f1sf( 6)=0.80d0
67  f1sf( 7)=0.90d0
68  f1sf( 8)=1.00d0
69  f1sf( 9)=1.11d0
70  f1sf(10)=1.25d0
71  f1sf(11)=1.42d0
72  f1sf(12)=1.67d0
73  f1sf(13)=2.00d0
74  f1sf(14)=2.50d0
75  f1sf(15)=3.30d0
76  ELSEIF(iq_om1.EQ.2) THEN
77  IF (nf1.NE.26) THEN
78  WRITE(lu,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
79  WRITE(lu,*) 'IQ_OM1 = ',iq_om1,' AND NF1 = ',nf1
80  CALL plante(1)
81  stop
82  ENDIF
83  f1sf( 1)=0.32d0
84  f1sf( 2)=0.35d0
85  f1sf( 3)=0.39d0
86  f1sf( 4)=0.44d0
87  f1sf( 5)=0.50d0
88  f1sf( 6)=0.56d0
89  f1sf( 7)=0.63d0
90  f1sf( 8)=0.70d0
91  f1sf( 9)=0.78d0
92  f1sf(10)=0.86d0
93  f1sf(11)=0.92d0
94  f1sf(12)=0.97d0
95  f1sf(13)=1.00d0
96  f1sf(14)=1.03d0
97  f1sf(15)=1.08d0
98  f1sf(16)=1.13d0
99  f1sf(17)=1.20d0
100  f1sf(18)=1.28d0
101  f1sf(19)=1.37d0
102  f1sf(20)=1.48d0
103  f1sf(21)=1.50d0
104  f1sf(22)=1.65d0
105  f1sf(23)=1.85d0
106  f1sf(24)=2.10d0
107  f1sf(25)=2.40d0
108  f1sf(26)=2.70d0
109  f1sf(27)=3.20d0
110  ELSEIF(iq_om1.EQ.3) THEN
111  IF(nf1.NE.11) THEN
112  WRITE(lu,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
113  WRITE(lu,*) 'IQ_OM1 = ',iq_om1,' AND NF1 = ',nf1
114  CALL plante(1)
115  stop
116  ENDIF
117  f1sf( 1)=0.30d0
118  f1sf( 2)=0.48d0
119  f1sf( 3)=0.64d0
120  f1sf( 4)=0.78d0
121  f1sf( 5)=0.90d0
122  f1sf( 6)=1.00d0
123  f1sf( 7)=1.12d0
124  f1sf( 8)=1.28d0
125  f1sf( 9)=1.50d0
126  f1sf(10)=1.80d0
127  f1sf(11)=2.40d0
128  f1sf(12)=3.40d0
129  ELSEIF(iq_om1.EQ.4) THEN
130  IF(nf1.NE.40) THEN
131  WRITE(lu,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
132  WRITE(lu,*) 'IQ_OM1 = ',iq_om1,' AND NF1 = ',nf1
133  CALL plante(1)
134  stop
135  ENDIF
136  nf1=20
137  m=10
138  raison=9.d0**(1.d0/dble(nf1))
139  f1sf(m+1)=1.0d0/3.0d0
140  nf1=2*m+nf1
141  DO i=m+2,nf1+1
142  f1sf(i)=f1sf(i-1)*raison
143  ENDDO
144  DO i=m,1,-1
145  f1sf(i)=f1sf(i+1)/raison
146  ENDDO
147  ELSEIF(iq_om1.EQ.5) THEN
148  raison=9.d0**(1.d0/dble(nf1))
149  f1sf(1)=1.d0/3.d0
150  DO i=2,nf1+1
151  f1sf(i)=f1sf(i-1)*raison
152  ENDDO
153  ELSEIF(iq_om1.EQ.6) THEN
154  raison=(3.d0-1.d0/3.d0)/dble(nf1)
155  f1sf(1)=1.d0/3.d0
156  DO i=2,nf1+1
157  f1sf(i)=f1sf(i-1)+raison
158  ENDDO
159  ELSEIF(iq_om1.EQ.7) THEN
160  IF(nf1.NE.20) THEN
161  WRITE(lu,*) 'PROGRAM STOP IN F1F1F1 : WRONG VALUE FOR NF1'
162  WRITE(lu,*) 'IQ_OM1 = ',iq_om1,' AND NF1 = ',nf1
163  CALL plante(1)
164  stop
165  ENDIF
166  f1sf( 1)=1.d0/3.d0
167  f1sf( 2)=0.40d0
168  f1sf( 3)=0.46d0
169  f1sf( 4)=0.52d0
170  f1sf( 5)=0.60d0
171  f1sf( 6)=0.70d0
172  f1sf( 7)=0.79d0
173  f1sf( 8)=0.86d0
174  f1sf( 9)=0.92d0
175  f1sf(10)=0.97d0
176  f1sf(11)=1.00d0
177  f1sf(12)=1.04d0
178  f1sf(13)=1.10d0
179  f1sf(14)=1.18d0
180  f1sf(15)=1.28d0
181  f1sf(16)=1.42d0
182  f1sf(17)=1.60d0
183  f1sf(18)=1.84d0
184  f1sf(19)=2.14d0
185  f1sf(20)=2.52d0
186  f1sf(21)=3.00d0
187  ENDIF
188 !
189 !-----------------------------------------------------------------------
190 !
191  RETURN
192  END
subroutine f1f1f1(F1SF, NF1, IQ_OM1)
Definition: f1f1f1.f:7