Salome HOME
Homard executable
[modules/homard.git] / src / tool / AP_Conversion / pcstr2_3.h
1 c                   .                         .
2 c                  ...                       . .
3 c                 . . .                     .   .
4 c                .  .  .                   . +i  .
5 c             j .   .   . k    ===>     j ......... k
6 c              .    .    .               . .     . .
7 c             . +a  . +b  .             .   .+0 .   .
8 c            .      .      .           . +k  . . +j  .
9 c           .................         .................
10 c                   i                        i
11 c
12           elseif ( etanp1.eq.4 .or.
13      >             etanp1.eq.6 .or. etanp1.eq.7 .or. etanp1.eq.8 ) then
14 c
15 #ifdef _DEBUG_HOMARD_
16       write (ulsort,texte(langue,1)) 'Entree', 'pcstr2_3'
17       write (ulsort,*) 'etanp1 = ',etanp1
18       write (ulsort,*) 'etan   = ',etan
19 #endif
20             f1hp = filtri(trhnp1)
21             f1cp = ntrsca(f1hp)
22             f2cp = ntrsca(f1hp+1)
23             f3cp = ntrsca(f1hp+2)
24             f4cp = ntrsca(f1hp+3)
25             prfcap(f1cp) = 1
26 cgn            print *,'triangle fils NF = ',f1hp
27 cgn            print *,'triangle fils en calcul 1 = ',f1cp
28 cgn            print *,'triangle fils en calcul 2 = ',f2cp
29 cgn            print *,'triangle fils en calcul 3 = ',f3cp
30 cgn            print *,'triangle fils en calcul 4 = ',f4cp
31
32 c        Decoupage en 4 d'un triangle predecoupe en 2 par l'arete a1
33 c
34             if ( etan.eq.1 ) then
35 c
36             do 23411 , nrofon = 1 , nbfonc
37 c
38 c           Pour le fils aine (centre)
39 c
40               vafott(nrofon,q1,f1cp) =
41      >        unsde*(vafoen(nrofon,q2,prf1cn)+vafoen(nrofon,q3,prf2cn))
42 c
43               vafott(nrofon,q2,f1cp) = vafoen(nrofon,q6,prf1cn)
44 c
45               vafott(nrofon,q3,f1cp) = vafoen(nrofon,q4,prf2cn)
46 c
47               vafott(nrofon,q4,f1cp) = 
48      >        -unshu*(vafoen(nrofon,q1,prf1cn)+
49      >                vafoen(nrofon,q3,prf1cn))+
50      >         unsde*(vafoen(nrofon,q4,prf1cn)+
51      >                vafoen(nrofon,q5,prf1cn))+
52      >         unsqu*vafoen(nrofon,q6,prf1cn)
53 c
54               vafott(nrofon,q5,f1cp) =
55      >         unsde*(vafoen(nrofon,q4,prf1cn)+
56      >                vafoen(nrofon,q6,prf2cn))
57 c
58               vafott(nrofon,q6,f1cp) =
59      >        -unshu*(vafoen(nrofon,q1,prf2cn)+
60      >                vafoen(nrofon,q2,prf2cn))+
61      >         unsde*(vafoen(nrofon,q5,prf2cn)+
62      >                vafoen(nrofon,q6,prf2cn))+
63      >         unsqu*vafoen(nrofon,q4,prf2cn)
64 c
65 c           Pour le triangle fils NF+1
66 c
67               prfcap(f2cp) = 1
68 c
69               vafott(nrofon,q1,f2cp) =
70      >        unsde*(vafoen(nrofon,q1,prf1cn)+vafoen(nrofon,q1,prf2cn))
71 c
72               vafott(nrofon,q2,f2cp) = vafoen(nrofon,q4,prf2cn)
73 c
74               vafott(nrofon,q3,f2cp) = vafoen(nrofon,q6,prf1cn)
75 c
76               vafott(nrofon,q4,f2cp) =
77      >         trshu*vafoen(nrofon,q1,prf2cn)-
78      >         unshu*vafoen(nrofon,q2,prf2cn)+
79      >         trsqu*vafoen(nrofon,q4,prf2cn)
80 c
81               vafott(nrofon,q5,f2cp) = vafott(nrofon,q5,f1cp)
82 c
83               vafott(nrofon,q6,f2cp) =
84      >         trshu*vafoen(nrofon,q1,prf1cn)-
85      >         unshu*vafoen(nrofon,q3,prf1cn)+
86      >         trsqu*vafoen(nrofon,q6,prf1cn)     
87 c
88 c           Pour le triangle fils NF+2 (eventuellement redecoupe en 2)
89 c
90               if ( mod(hettri(f1hp+2),10).eq.0 ) then
91 c
92                 prfcap(f3cp) = 1
93 c
94                 vafott(nrofon,q1,f3cp) = vafoen(nrofon,q4,prf2cn)
95 c
96                 vafott(nrofon,q2,f3cp) = vafoen(nrofon,q2,prf2cn)
97 c
98                 vafott(nrofon,q3,f3cp) = vafoen(nrofon,q3,prf2cn)
99 c
100                 vafott(nrofon,q4,f3cp) =
101      >          -unshu*vafoen(nrofon,q1,prf2cn)+
102      >           trshu*vafoen(nrofon,q2,prf2cn)+
103      >           trsqu*vafoen(nrofon,q4,prf2cn)     
104 c
105                 vafott(nrofon,q5,f3cp) = vafoen(nrofon,q5,prf2cn)
106 c
107                 vafott(nrofon,q6,f3cp) = vafott(nrofon,q6,f1cp)
108 c
109               elseif ( mod(hettri(f1hp+2),10).eq.etan ) then
110 c
111                 fihp = filtri(f1hp+2)
112                 g2 = ntrsca(fihp)
113                 g1 = ntrsca(fihp+1)
114                 prfcap(g1) = 1
115                 prfcap(g2) = 1
116 cgn            print *,'triangle petit-fils en calcul g1 = ',g1
117 cgn            print *,'triangle petit-fils en calcul g2 = ',g2
118 c
119 c           Pour le fils G1
120 c            
121                 vafott(nrofon,q1,g1) = vafoen(nrofon,q4,prf2cn)
122 c
123                 vafott(nrofon,q2,g1) = vafoen(nrofon,q2,prf2cn)
124 c
125                 vafott(nrofon,q3,g1) = vafoen(nrofon,q5,prf2cn)
126 c
127                 vafott(nrofon,q4,g1) = 
128      >           trshu*vafoen(nrofon,q2,prf2cn)
129      >          -unshu*vafoen(nrofon,q1,prf2cn)
130      >          +trsqu*vafoen(nrofon,q4,prf2cn) 
131 c
132                 vafott(nrofon,q5,g1) =
133      >           trshu*vafoen(nrofon,q2,prf2cn)
134      >          -unshu*vafoen(nrofon,q3,prf2cn)
135      >          +trsqu*vafoen(nrofon,q5,prf2cn) 
136 c
137                 vafott(nrofon,q6,g1) =
138      >        -unshu*(vafoen(nrofon,q1,prf2cn)+vafoen(nrofon,q3,prf2cn))
139      >        +unsde*(vafoen(nrofon,q4,prf2cn)+vafoen(nrofon,q5,prf2cn))
140      >        +unsqu*vafoen(nrofon,q6,prf2cn)
141 c
142 c           Pour le fils G2
143 c                        
144                 vafott(nrofon,q1,g2) = vafoen(nrofon,q4,prf2cn)
145 c
146                 vafott(nrofon,q2,g2) = vafoen(nrofon,q5,prf2cn)
147 c
148                 vafott(nrofon,q3,g2) = vafoen(nrofon,q3,prf2cn)
149 c
150                 vafott(nrofon,q4,g2) = vafott(nrofon,q6,g1)
151 c
152                 vafott(nrofon,q5,g2) =
153      >           trshu*vafoen(nrofon,q3,prf2cn)
154      >          -unshu*vafoen(nrofon,q2,prf2cn)
155      >          +trsqu*vafoen(nrofon,q5,prf2cn) 
156 c
157                 vafott(nrofon,q6,g2) =
158      >        -unshu*(vafoen(nrofon,q1,prf2cn)+vafoen(nrofon,q2,prf2cn))
159      >        +unsde*(vafoen(nrofon,q5,prf2cn)+vafoen(nrofon,q6,prf2cn))
160      >        +unsqu*vafoen(nrofon,q4,prf2cn)
161 c
162               else
163 c
164                 codret = codret + 1
165                 write (ulsort,texte(langue,4)) 'n+1', f1hp+2
166                 write (ulsort,texte(langue,5)) 'n+1', hettri(f1hp+2)
167 c
168               endif
169 c
170 c           Pour le triangle fils NF+3 (eventuellement redecoupe en 2)
171 c
172 cgn              print *,'triangle fils NF+3 = ',f1hp+3
173 cgn              print *,'  Etat = ',hettri(f1hp+3)
174               if ( mod(hettri(f1hp+3),10).eq.0 ) then
175 c
176                 prfcap(f4cp) = 1
177 c
178                 vafott(nrofon,q1,f4cp) = vafoen(nrofon,q6,prf1cn)
179 c
180                 vafott(nrofon,q2,f4cp) = vafoen(nrofon,q2,prf1cn)
181 c
182                 vafott(nrofon,q3,f4cp) = vafoen(nrofon,q3,prf1cn)
183 c
184                 vafott(nrofon,q4,f4cp) = vafott(nrofon,q4,f1cp)
185 c
186                 vafott(nrofon,q5,f4cp) = vafoen(nrofon,q5,prf1cn)
187 c
188                 vafott(nrofon,q6,f4cp) = 
189      >            trshu*vafoen(nrofon,q3,prf1cn)
190      >           -unshu*vafoen(nrofon,q1,prf1cn)+
191      >            trsqu*vafoen(nrofon,q6,prf1cn)
192 c
193               elseif ( mod(hettri(f1hp+3),10).eq.etan ) then
194 c
195                 fihp = filtri(f1hp+3)
196                 d2 = ntrsca(fihp)
197                 d1 = ntrsca(fihp+1)
198                 prfcap(d1) = 1
199                 prfcap(d2) = 1
200 cgn              print *,'  Fils HOMARD = ',fihp, ' et ',fihp+1
201 cgn              print *,'  Fils Calcul = ',d2, ' et ',d1
202 cgn              print *,' q1, q2, q3, q4, q5, q6 = ',q1,q2,q3,q4,q5,q6
203 c
204 c           Pour le fils D1            
205 c
206                 vafott(nrofon,q1,d1) = vafoen(nrofon,q6,prf1cn)
207 c
208                 vafott(nrofon,q2,d1) = vafoen(nrofon,q2,prf1cn)
209 c
210                 vafott(nrofon,q3,d1) = vafoen(nrofon,q5,prf1cn)
211 c
212                 vafott(nrofon,q4,d1) = 
213      >        -unshu*(vafoen(nrofon,q1,prf1cn)+vafoen(nrofon,q3,prf1cn))
214      >        +unsde*(vafoen(nrofon,q4,prf1cn)+vafoen(nrofon,q5,prf1cn))
215      >        +unsqu*vafoen(nrofon,q6,prf1cn)              
216 c
217                 vafott(nrofon,q5,d1) =
218      >           trshu*vafoen(nrofon,q2,prf1cn)
219      >          -unshu*vafoen(nrofon,q3,prf1cn)
220      >          +trsqu*vafoen(nrofon,q5,prf1cn) 
221 c
222                 vafott(nrofon,q6,d1) =
223      >        -unshu*(vafoen(nrofon,q1,prf1cn)+vafoen(nrofon,q2,prf1cn))
224      >        +unsde*(vafoen(nrofon,q5,prf1cn)+vafoen(nrofon,q6,prf1cn))
225      >        +unsqu*vafoen(nrofon,q4,prf1cn)
226 cgn            print *,'vafott(nrofon,',q1,',',d1,')=',vafott(nrofon,q1,d1)
227 cgn            print *,'vafott(nrofon,',q2,',',d1,')=',vafott(nrofon,q2,d1)
228 cgn            print *,'vafott(nrofon,',q3,',',d1,')=',vafott(nrofon,q3,d1)
229 cgn            print *,'vafott(nrofon,',q4,',',d1,')=',vafott(nrofon,q4,d1)
230 cgn            print *,'vafott(nrofon,',q5,',',d1,')=',vafott(nrofon,q5,d1)
231 cgn            print *,'vafott(nrofon,',q6,',',d1,')=',vafott(nrofon,q6,d1)
232 c            
233 c           Pour le fils D2            
234 c
235                 vafott(nrofon,q1,d2) = vafoen(nrofon,q6,prf1cn)
236 c
237                 vafott(nrofon,q2,d2) = vafoen(nrofon,q5,prf1cn)
238 c
239                 vafott(nrofon,q3,d2) = vafoen(nrofon,q3,prf1cn)
240 c
241                 vafott(nrofon,q4,d2) = vafott(nrofon,q6,d1)
242 c
243                 vafott(nrofon,q5,d2) =
244      >           trshu*vafoen(nrofon,q3,prf1cn)
245      >          -unshu*vafoen(nrofon,q2,prf1cn)
246      >          +trsqu*vafoen(nrofon,q5,prf1cn) 
247 c
248                 vafott(nrofon,q6,d2) =
249      >           trshu*vafoen(nrofon,q3,prf1cn)
250      >          -unshu*vafoen(nrofon,q1,prf1cn)
251      >          +trsqu*vafoen(nrofon,q6,prf1cn) 
252 cgn            print *,'vafott(nrofon,',q1,',',d2,')=',vafott(nrofon,q1,d2)
253 cgn            print *,'vafott(nrofon,',q2,',',d2,')=',vafott(nrofon,q2,d2)
254 cgn            print *,'vafott(nrofon,',q3,',',d2,')=',vafott(nrofon,q3,d2)
255 cgn            print *,'vafott(nrofon,',q4,',',d2,')=',vafott(nrofon,q4,d2)
256 cgn            print *,'vafott(nrofon,',q5,',',d2,')=',vafott(nrofon,q5,d2)
257 cgn            print *,'vafott(nrofon,',q6,',',d2,')=',vafott(nrofon,q6,d2)
258 c
259               else
260 c
261                 codret = codret + 1
262                 write (ulsort,texte(langue,4)) 'n+1', f1hp+3
263                 write (ulsort,texte(langue,5)) 'n+1', hettri(f1hp+3)
264 c
265               endif
266 c
267 23411       continue
268 c
269             elseif ( etan.eq.2 ) then
270 c
271             do 23412 , nrofon = 1 , nbfonc            
272 c
273 c        Decoupage en 4 d'un triangle predecoupe en 2 par l'arete a2
274 c
275 c           Pour le fils aine NF (centre)
276 c
277                 vafott(nrofon,q1,f1cp) = vafoen(nrofon,q5,prf1cn)
278 c
279               vafott(nrofon,q2,f1cp) = 
280      >        unsde*(vafoen(nrofon,q1,prf1cn)+vafoen(nrofon,q3,prf2cn))
281 c
282               vafott(nrofon,q3,f1cp) =  vafoen(nrofon,q4,prf2cn)
283 c
284               vafott(nrofon,q4,f1cp) = 
285      >        -unshu*(vafoen(nrofon,q2,prf1cn)+
286      >                vafoen(nrofon,q3,prf1cn))+
287      >         unsde*(vafoen(nrofon,q4,prf1cn)+
288      >                vafoen(nrofon,q6,prf1cn))+
289      >         unsqu*vafoen(nrofon,q5,prf1cn)
290 c
291               vafott(nrofon,q5,f1cp) =
292      >        -unshu*(vafoen(nrofon,q1,prf2cn)+
293      >                vafoen(nrofon,q2,prf2cn))+
294      >         unsde*(vafoen(nrofon,q5,prf2cn)+
295      >                vafoen(nrofon,q6,prf2cn))+
296      >         unsqu*vafoen(nrofon,q4,prf2cn)
297 c
298               vafott(nrofon,q6,f1cp) =
299      >         unsde*(vafoen(nrofon,q4,prf1cn)+
300      >                vafoen(nrofon,q5,prf2cn))
301 c
302 c           Pour le triangle fils NF+1    (eventuellement redecoupe en 2)
303 c
304               if ( mod(hettri(f1hp+1),10).eq.0 ) then
305 c
306               prfcap(f2cp) = 1
307 c
308               vafott(nrofon,q1,f2cp) = vafoen(nrofon,q1,prf2cn)
309 c
310               vafott(nrofon,q2,f2cp) = vafoen(nrofon,q4,prf2cn)
311 c
312               vafott(nrofon,q3,f2cp) = vafoen(nrofon,q3,prf2cn)
313 c
314               vafott(nrofon,q4,f2cp) =
315      >         trshu*vafoen(nrofon,q1,prf2cn)-
316      >         unshu*vafoen(nrofon,q2,prf2cn)+
317      >         trsqu*vafoen(nrofon,q4,prf2cn)
318 c
319               vafott(nrofon,q5,f2cp) = vafott(nrofon,q5,f1cp)
320 c
321               vafott(nrofon,q6,f2cp) = vafoen(nrofon,q6,prf2cn)     
322 c
323               elseif ( mod(hettri(f1hp+1),10).eq.etan ) then
324 c
325                 fihp = filtri(f1hp+1)
326                 d2 = ntrsca(fihp+1)
327                 d1 = ntrsca(fihp)
328                 prfcap(d1) = 1
329                 prfcap(d2) = 1
330 c
331 c
332 c           Pour le fils D1            
333 c
334               vafott(nrofon,q1,d1) = vafoen(nrofon,q6,prf2cn)
335 c
336               vafott(nrofon,q2,d1) = vafoen(nrofon,q4,prf2cn)
337 c
338               vafott(nrofon,q3,d1) = vafoen(nrofon,q3,prf2cn)
339 c
340               vafott(nrofon,q4,d1) = 
341      >        -unshu*(vafoen(nrofon,q2,prf2cn)+vafoen(nrofon,q3,prf2cn))
342      >        +unsde*(vafoen(nrofon,q4,prf2cn)+vafoen(nrofon,q6,prf2cn))
343      >        +unsqu*vafoen(nrofon,q5,prf2cn)
344 c
345               vafott(nrofon,q5,d1) =
346      >        -unshu*(vafoen(nrofon,q1,prf2cn)+vafoen(nrofon,q2,prf2cn))
347      >        +unsde*(vafoen(nrofon,q5,prf2cn)+vafoen(nrofon,q6,prf2cn))
348      >        +unsqu*vafoen(nrofon,q4,prf2cn)
349 c
350               vafott(nrofon,q6,d1) =
351      >         trshu*vafoen(nrofon,q3,prf2cn)
352      >        -unshu*vafoen(nrofon,q1,prf2cn)
353      >        +trsqu*vafoen(nrofon,q6,prf2cn)                         
354 c            
355 c           Pour le fils D2            
356 c
357               vafott(nrofon,q1,d2) = vafoen(nrofon,q1,prf2cn)
358 c
359               vafott(nrofon,q2,d2) = vafoen(nrofon,q4,prf2cn)
360 c
361               vafott(nrofon,q3,d2) = vafoen(nrofon,q6,prf2cn)
362 c
363               vafott(nrofon,q4,d2) = 
364      >         trshu*vafoen(nrofon,q1,prf2cn)
365      >        -unshu*vafoen(nrofon,q2,prf2cn)
366      >        +trsqu*vafoen(nrofon,q4,prf2cn)                         
367 c
368               vafott(nrofon,q5,d2) = vafott(nrofon,q4,d1)
369 c
370               vafott(nrofon,q6,d2) =
371      >         trshu*vafoen(nrofon,q1,prf2cn)
372      >        -unshu*vafoen(nrofon,q3,prf2cn)
373      >        +trsqu*vafoen(nrofon,q6,prf2cn)                         
374 c            
375               else
376 c
377                 codret = codret + 1
378                 write (ulsort,texte(langue,4)) 'n+1', f1hp+1
379                 write (ulsort,texte(langue,5)) 'n+1', hettri(f1hp+1)
380 c
381               endif
382
383 c           Pour le triangle fils NF+2
384 c
385               prfcap(f3cp) = 1
386 c
387               vafott(nrofon,q1,f3cp) = vafoen(nrofon,q4,prf2cn)
388 c
389               vafott(nrofon,q2,f3cp) = 
390      >         unsde*(vafoen(nrofon,q2,prf1cn)+
391      >                vafoen(nrofon,q2,prf2cn))
392 c
393               vafott(nrofon,q3,f3cp) = vafoen(nrofon,q5,prf1cn)
394 c
395               vafott(nrofon,q4,f3cp) =
396      >        -unshu*vafoen(nrofon,q1,prf2cn)+
397      >         trshu*vafoen(nrofon,q2,prf2cn)+
398      >         trsqu*vafoen(nrofon,q4,prf2cn)
399 c    
400               vafott(nrofon,q5,f3cp) =
401      >        -unshu*vafoen(nrofon,q3,prf1cn)+
402      >         trshu*vafoen(nrofon,q2,prf1cn)+
403      >         trsqu*vafoen(nrofon,q5,prf1cn)
404 c
405               vafott(nrofon,q6,f3cp) = vafott(nrofon,q6,f1cp)
406 c
407 c           Pour le triangle fils NF+3  (eventuellement redecoupe en 2)
408 c
409               if ( mod(hettri(f1hp+3),10).eq.0 ) then
410 c
411               prfcap(f4cp) = 1
412 c
413               vafott(nrofon,q1,f4cp) = vafoen(nrofon,q1,prf1cn)
414 c
415               vafott(nrofon,q2,f4cp) = vafoen(nrofon,q5,prf1cn)
416 c
417               vafott(nrofon,q3,f4cp) = vafoen(nrofon,q3,prf1cn)
418 c
419               vafott(nrofon,q4,f4cp) = vafott(nrofon,q4,f1cp)
420 c
421               vafott(nrofon,q5,f4cp) =
422      >          trshu*vafoen(nrofon,q3,prf1cn)
423      >         -unshu*vafoen(nrofon,q2,prf1cn)+
424      >          trsqu*vafoen(nrofon,q5,prf1cn)
425 c
426               vafott(nrofon,q6,f4cp) = vafoen(nrofon,q6,prf1cn)
427 c
428               elseif ( mod(hettri(f1hp+3),10).eq.etan ) then
429 c
430                 fihp = filtri(f1hp+3)
431                 g2 = ntrsca(fihp+1)
432                 g1 = ntrsca(fihp)
433                 prfcap(g1) = 1
434                 prfcap(g2) = 1
435 c
436 c           Pour le fils G1 
437 c           
438               vafott(nrofon,q1,g1) = vafoen(nrofon,q6,prf1cn)
439 c
440               vafott(nrofon,q2,g1) = vafoen(nrofon,q5,prf1cn)
441 c
442               vafott(nrofon,q3,g1) = vafoen(nrofon,q3,prf1cn)
443 c
444               vafott(nrofon,q4,g1) = 
445      >        -unshu*(vafoen(nrofon,q1,prf1cn)+vafoen(nrofon,q2,prf1cn))
446      >        +unsde*(vafoen(nrofon,q5,prf1cn)+vafoen(nrofon,q6,prf1cn))
447      >        +unsqu*vafoen(nrofon,q4,prf1cn)
448 c
449               vafott(nrofon,q5,g1) =
450      >         trshu*vafoen(nrofon,q3,prf1cn)
451      >        -unshu*vafoen(nrofon,q2,prf1cn)
452      >        +trsqu*vafoen(nrofon,q5,prf1cn) 
453 c
454               vafott(nrofon,q6,g1) =
455      >         trshu*vafoen(nrofon,q3,prf1cn)
456      >        -unshu*vafoen(nrofon,q1,prf1cn)
457      >        +trsqu*vafoen(nrofon,q6,prf1cn)                         
458 c
459 c           Pour le fils G2                        
460 c           
461               vafott(nrofon,q1,g2) = vafoen(nrofon,q1,prf1cn)
462 c
463               vafott(nrofon,q2,g2) = vafoen(nrofon,q5,prf1cn)
464 c
465               vafott(nrofon,q3,g2) = vafoen(nrofon,q6,prf1cn)
466 c
467               vafott(nrofon,q4,g2) = 
468      >        -unshu*(vafoen(nrofon,q2,prf1cn)+vafoen(nrofon,q3,prf1cn))
469      >        +unsde*(vafoen(nrofon,q4,prf1cn)+vafoen(nrofon,q6,prf1cn))
470      >        +unsqu*vafoen(nrofon,q5,prf1cn)
471 c
472               vafott(nrofon,q5,g2) = vafott(nrofon,q4,g1)
473 c
474               vafott(nrofon,q6,g2) =
475      >         trshu*vafoen(nrofon,q1,prf1cn)
476      >        -unshu*vafoen(nrofon,q3,prf1cn)
477      >        +trsqu*vafoen(nrofon,q6,prf1cn)                         
478 c
479               else
480 c
481                 codret = codret + 1
482                 write (ulsort,texte(langue,4)) 'n+1', f1hp+3
483                 write (ulsort,texte(langue,5)) 'n+1', hettri(f1hp+3)
484 c
485               endif
486      
487 23412       continue
488 c
489             elseif ( etan.eq.3 ) then
490 c
491             do 23413 , nrofon = 1 , nbfonc            
492 c
493 c
494 c        Decoupage en 4 d'un triangle predecoupe en 2 par l'arete a3
495 c
496 c           Pour le fils aine (centre)
497 c
498               vafott(nrofon,q1,f1cp) = vafoen(nrofon,q5,prf1cn)
499 c
500               vafott(nrofon,q2,f1cp) = vafoen(nrofon,q6,prf2cn)
501 c
502               vafott(nrofon,q3,f1cp) = 
503      >        unsde*(vafoen(nrofon,q1,prf1cn)+
504      >               vafoen(nrofon,q2,prf2cn))
505 c
506               vafott(nrofon,q4,f1cp) = 
507      >         unsde*(vafoen(nrofon,q6,prf1cn)+
508      >                vafoen(nrofon,q5,prf2cn))
509 c
510               vafott(nrofon,q5,f1cp) =
511      >        -unshu*(vafoen(nrofon,q1,prf2cn)+
512      >                vafoen(nrofon,q3,prf2cn))+
513      >         unsde*(vafoen(nrofon,q4,prf2cn)+
514      >                vafoen(nrofon,q5,prf2cn))+
515      >         unsqu*vafoen(nrofon,q6,prf2cn)
516 c
517               vafott(nrofon,q6,f1cp) =
518      >        -unshu*(vafoen(nrofon,q2,prf1cn)+
519      >                vafoen(nrofon,q3,prf1cn))+
520      >         unsde*(vafoen(nrofon,q4,prf1cn)+
521      >                vafoen(nrofon,q6,prf1cn))+
522      >         unsqu*vafoen(nrofon,q5,prf1cn)
523 c
524 c           Pour le triangle fils NF+1   (eventuellement redecoupe en 2)
525 cgn              print *,'triangle fils NF+1 = ',f1hp+1
526 cgn              print *,'  Etat = ',hettri(f1hp+1)
527 cgn              print *,' q1, q2, q3, q4, q5, q6 = ',q1,q2,q3,q4,q5,q6
528 c
529               if ( mod(hettri(f1hp+1),10).eq.0 ) then
530 c
531               prfcap(f2cp) = 1
532 c
533               vafott(nrofon,q1,f2cp) = vafoen(nrofon,q1,prf2cn)
534 c
535               vafott(nrofon,q2,f2cp) = vafoen(nrofon,q2,prf2cn)
536 c
537               vafott(nrofon,q3,f2cp) = vafoen(nrofon,q6,prf2cn)
538 c
539               vafott(nrofon,q4,f2cp) = vafoen(nrofon,q4,prf2cn)
540 c
541               vafott(nrofon,q5,f2cp) = vafott(nrofon,q5,f1cp)
542 c
543               vafott(nrofon,q6,f2cp) =
544      >        -unshu*vafoen(nrofon,q3,prf2cn)+    
545      >         trshu*vafoen(nrofon,q1,prf2cn)+
546      >         trsqu*vafoen(nrofon,q6,prf2cn)     
547 c
548               elseif ( mod(hettri(f1hp+1),10).eq.etan ) then
549 c
550                 fihp = filtri(f1hp+1)
551                 g2 = ntrsca(fihp)
552                 g1 = ntrsca(fihp+1)
553                 prfcap(g1) = 1
554                 prfcap(g2) = 1
555 cgn              print *,'   --> fils g1 = ',g1
556 cgn              print *,'   --> fils g2 = ',g2
557 c
558 c           Pour le fils G1            
559 c           
560               vafott(nrofon,q1,g1) = vafoen(nrofon,q1,prf2cn)
561 c
562               vafott(nrofon,q2,g1) = vafoen(nrofon,q4,prf2cn)
563 c
564               vafott(nrofon,q3,g1) = vafoen(nrofon,q6,prf2cn)
565 c
566               vafott(nrofon,q4,g1) = 
567      >         trshu*vafoen(nrofon,q1,prf2cn)
568      >        -unshu*vafoen(nrofon,q2,prf2cn)
569      >        +trsqu*vafoen(nrofon,q4,prf2cn)                         
570 c
571               vafott(nrofon,q5,g1) =
572      >        -unshu*(vafoen(nrofon,q2,prf2cn)+vafoen(nrofon,q3,prf2cn))
573      >        +unsde*(vafoen(nrofon,q4,prf2cn)+vafoen(nrofon,q6,prf2cn))
574      >        +unsqu*vafoen(nrofon,q5,prf2cn)
575 c
576               vafott(nrofon,q6,g1) =
577      >         trshu*vafoen(nrofon,q1,prf2cn)
578      >        -unshu*vafoen(nrofon,q3,prf2cn)
579      >        +trsqu*vafoen(nrofon,q6,prf2cn)                         
580 cgn            print *,'vafott(nrofon,',q1,',',g1,')=',vafott(nrofon,q1,g1)
581 cgn            print *,'vafott(nrofon,',q2,',',g1,')=',vafott(nrofon,q2,g1)
582 cgn            print *,'vafott(nrofon,',q3,',',g1,')=',vafott(nrofon,q3,g1)
583 cgn            print *,'vafott(nrofon,',q4,',',g1,')=',vafott(nrofon,q4,g1)
584 cgn            print *,'vafott(nrofon,',q5,',',g1,')=',vafott(nrofon,q5,g1)
585 cgn            print *,'vafott(nrofon,',q6,',',g1,')=',vafott(nrofon,q6,g1)
586 c
587 c           Pour le fils G2                        
588 c
589               vafott(nrofon,q1,g2) = vafoen(nrofon,q4,prf2cn)
590 c
591               vafott(nrofon,q2,g2) = vafoen(nrofon,q2,prf2cn)
592 c
593               vafott(nrofon,q3,g2) = vafoen(nrofon,q6,prf2cn)
594 c
595               vafott(nrofon,q4,g2) = 
596      >         trshu*vafoen(nrofon,q2,prf2cn)
597      >        -unshu*vafoen(nrofon,q1,prf2cn)
598      >        +trsqu*vafoen(nrofon,q4,prf2cn)                         
599 c
600               vafott(nrofon,q5,g2) =
601      >        -unshu*(vafoen(nrofon,q1,prf2cn)+vafoen(nrofon,q3,prf2cn))
602      >        +unsde*(vafoen(nrofon,q4,prf2cn)+vafoen(nrofon,q5,prf2cn))
603      >        +unsqu*vafoen(nrofon,q6,prf2cn)
604 c
605               vafott(nrofon,q6,g2) = vafott(nrofon,q5,g1)
606 cgn            print *,'vafott(nrofon,',q1,',',g2,')=',vafott(nrofon,q1,g2)
607 cgn            print *,'vafott(nrofon,',q2,',',g2,')=',vafott(nrofon,q2,g2)
608 cgn            print *,'vafott(nrofon,',q3,',',g2,')=',vafott(nrofon,q3,g2)
609 cgn            print *,'vafott(nrofon,',q4,',',g2,')=',vafott(nrofon,q4,g2)
610 cgn            print *,'vafott(nrofon,',q5,',',g2,')=',vafott(nrofon,q5,g2)
611 cgn            print *,'vafott(nrofon,',q6,',',g2,')=',vafott(nrofon,q6,g2)
612 c
613               else
614 c
615                 codret = codret + 1
616                 write (ulsort,texte(langue,4)) 'n+1', f1hp+1
617                 write (ulsort,texte(langue,5)) 'n+1', hettri(f1hp+1)
618 c
619               endif
620 c
621 c           Pour le triangle fils NF+2   (eventuellement redecoupe en 2)
622 cgn              print *,'triangle fils NF+2 = ',f1hp+2
623 cgn              print *,'  Etat = ',hettri(f1hp+2)
624 c
625               if ( mod(hettri(f1hp+2),10).eq.0 ) then
626 c
627               prfcap(f3cp) = 1
628 c
629               vafott(nrofon,q1,f3cp) = vafoen(nrofon,q1,prf1cn)
630 c
631               vafott(nrofon,q2,f3cp) = vafoen(nrofon,q2,prf1cn)
632 c
633               vafott(nrofon,q3,f3cp) = vafoen(nrofon,q5,prf1cn)
634 c
635               vafott(nrofon,q4,f3cp) = vafoen(nrofon,q4,prf1cn)
636      
637               vafott(nrofon,q5,f3cp) =
638      >        -unshu*vafoen(nrofon,q3,prf1cn)+
639      >         trshu*vafoen(nrofon,q2,prf1cn)+
640      >         trsqu*vafoen(nrofon,q5,prf1cn)     
641
642               vafott(nrofon,q6,f3cp) = vafott(nrofon,q6,f1cp)
643 c
644               elseif ( mod(hettri(f1hp+2),10).eq.etan ) then
645 c
646                 fihp = filtri(f1hp+2)
647                 d2 = ntrsca(fihp)
648                 d1 = ntrsca(fihp+1)
649                 prfcap(d1) = 1
650                 prfcap(d2) = 1
651 c
652 c           Pour le fils D1            
653 c
654               vafott(nrofon,q1,d1) = vafoen(nrofon,q1,prf1cn)
655 c
656               vafott(nrofon,q2,d1) = vafoen(nrofon,q4,prf1cn)
657 c
658               vafott(nrofon,q3,d1) = vafoen(nrofon,q5,prf1cn)
659 c
660               vafott(nrofon,q4,d1) = 
661      >         trshu*vafoen(nrofon,q1,prf1cn)
662      >        -unshu*vafoen(nrofon,q2,prf1cn)
663      >        +trsqu*vafoen(nrofon,q4,prf1cn)                         
664 c
665               vafott(nrofon,q5,d1) =
666      >        -unshu*(vafoen(nrofon,q1,prf1cn)+vafoen(nrofon,q3,prf1cn))
667      >        +unsde*(vafoen(nrofon,q4,prf1cn)+vafoen(nrofon,q5,prf1cn))
668      >        +unsqu*vafoen(nrofon,q6,prf1cn)
669 c
670               vafott(nrofon,q6,d1) = 
671      >        -unshu*(vafoen(nrofon,q2,prf1cn)+vafoen(nrofon,q3,prf1cn))
672      >        +unsde*(vafoen(nrofon,q4,prf1cn)+vafoen(nrofon,q6,prf1cn))
673      >        +unsqu*vafoen(nrofon,q5,prf1cn)
674 c            
675 c           Pour le fils D2            
676 c
677               vafott(nrofon,q1,d2) = vafoen(nrofon,q4,prf1cn)
678 c
679               vafott(nrofon,q2,d2) = vafoen(nrofon,q2,prf1cn)
680 c
681               vafott(nrofon,q3,d2) = vafoen(nrofon,q5,prf1cn)
682 c
683               vafott(nrofon,q4,d2) = 
684      >         trshu*vafoen(nrofon,q2,prf1cn)
685      >        -unshu*vafoen(nrofon,q1,prf1cn)
686      >        +trsqu*vafoen(nrofon,q4,prf1cn)                         
687 c
688               vafott(nrofon,q5,d2) =
689      >         trshu*vafoen(nrofon,q2,prf1cn)
690      >        -unshu*vafoen(nrofon,q3,prf1cn)
691      >        +trsqu*vafoen(nrofon,q5,prf1cn)                         
692 c
693               vafott(nrofon,q6,d2) = vafott(nrofon,q5,d1) 
694 c                                    
695 c
696               else
697 c
698                 codret = codret + 1
699                 write (ulsort,texte(langue,4)) 'n+1', f1hp+2
700                 write (ulsort,texte(langue,5)) 'n+1', hettri(f1hp+2)
701 c
702               endif
703 c
704 c           Pour le triangle fils NF+3
705 c
706               prfcap(f4cp) = 1
707 c
708               vafott(nrofon,q1,f4cp) = vafoen(nrofon,q6,prf2cn)
709 c
710               vafott(nrofon,q2,f4cp) = vafoen(nrofon,q5,prf1cn)
711 c
712               vafott(nrofon,q3,f4cp) = 
713      >         unsde*(vafoen(nrofon,q3,prf1cn)+
714      >                vafoen(nrofon,q3,prf2cn))
715 c     
716               vafott(nrofon,q4,f4cp) = vafott(nrofon,q4,f1cp)
717 c
718               vafott(nrofon,q5,f4cp) =
719      >          trshu*vafoen(nrofon,q3,prf1cn)
720      >         -unshu*vafoen(nrofon,q2,prf1cn)+
721      >          trsqu*vafoen(nrofon,q5,prf1cn)
722 c
723               vafott(nrofon,q6,f4cp) =
724      >          trshu*vafoen(nrofon,q3,prf2cn)
725      >         -unshu*vafoen(nrofon,q1,prf2cn)+
726      >          trsqu*vafoen(nrofon,q6,prf2cn)
727 c
728 23413       continue
729 c
730             endif
731 c
732 #ifdef _DEBUG_HOMARD_
733       write (ulsort,texte(langue,1)) 'Sortie', 'pcstr2_3'
734 #endif