OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
spmd_i7xvcom2.F File Reference
#include "implicit_f.inc"
#include "spmd.inc"
#include "assert.inc"
#include "scr05_c.inc"
#include "scr18_c.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "com08_c.inc"
#include "param_c.inc"
#include "task_c.inc"
#include "impl1_c.inc"
#include "spmd_c.inc"
#include "sms_c.inc"
#include "rad2r_c.inc"

Go to the source code of this file.

Macros

#define TO1D(i, j, k, s1, s2)

Functions/Subroutines

subroutine spmd_i7xvcom2 (ipari, x, v, ms, imsch, i2msch, dt2prev, intlist, nbintc, islen7, irlen7, islen11, irlen11, islen17, irlen17, ixs, ixs16, nsensor, igrbric, temp, iflag, irlen7t, islen7t, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, ikine, diag_sms, sensor_tab, intbuf_tab, int24e2euse, forneqs, multi_fvm, interfaces, ish_offset)

Macro Definition Documentation

◆ TO1D

#define TO1D ( i,
j,
k,
s1,
s2 )
Value:
1i+(j-1)*s1+(k-1)*s1*s2

Function/Subroutine Documentation

◆ spmd_i7xvcom2()

subroutine spmd_i7xvcom2 ( integer, dimension(npari,*) ipari,
x,
v,
ms,
integer imsch,
integer i2msch,
dt2prev,
integer, dimension(*) intlist,
integer nbintc,
integer islen7,
integer irlen7,
integer islen11,
integer irlen11,
integer islen17,
integer irlen17,
integer, dimension(nixs,*) ixs,
integer, dimension(8,*) ixs16,
integer, intent(in) nsensor,
type (group_), dimension(ngrbric) igrbric,
temp,
integer iflag,
integer irlen7t,
integer islen7t,
integer irlen20,
integer islen20,
integer irlen20t,
integer islen20t,
integer irlen20e,
integer islen20e,
integer, dimension(*) ikine,
diag_sms,
type (sensor_str_), dimension(nsensor) sensor_tab,
type(intbuf_struct_), dimension(*) intbuf_tab,
integer int24e2euse,
forneqs,
type(multi_fvm_struct), intent(inout) multi_fvm,
type (interfaces_), intent(in) interfaces,
integer, intent(in) ish_offset )

Definition at line 48 of file spmd_i7xvcom2.F.

57C-----------------------------------------------
58C M o d u l e s
59C-----------------------------------------------
60 USE tri25ebox
61 USE tri7box
62 USE message_mod
63 USE intbufdef_mod
64 USE groupdef_mod
65 USE multi_fvm_mod
66 USE sensor_mod
67 USE interfaces_mod
68 use element_mod , only : nixs
69C-----------------------------------------------
70C I m p l i c i t T y p e s
71C-----------------------------------------------
72 USE spmd_comm_world_mod, ONLY : spmd_comm_world
73#include "implicit_f.inc"
74C-----------------------------------------------
75C M e s s a g e P a s s i n g
76C-----------------------------------------------
77#include "spmd.inc"
78C-----------------------------------------------
79C C o m m o n B l o c k s
80C-----------------------------------------------
81#include "assert.inc"
82#include "scr05_c.inc"
83#include "scr18_c.inc"
84#include "com01_c.inc"
85#include "com04_c.inc"
86#include "com08_c.inc"
87#include "param_c.inc"
88#include "task_c.inc"
89#include "impl1_c.inc"
90#include "spmd_c.inc"
91#include "sms_c.inc"
92#include "rad2r_c.inc"
93C-----------------------------------------------
94C D u m m y A r g u m e n t s
95C-----------------------------------------------
96 INTEGER ,INTENT(IN) :: NSENSOR,ISH_OFFSET
97 INTEGER IMSCH, I2MSCH, IFLAG, NBINTC,
98 . ISLEN7, IRLEN7, ISLEN11, IRLEN11, ISLEN17, IRLEN17,
99 . IRLEN7T, ISLEN7T,IRLEN20,ISLEN20,IRLEN20T,ISLEN20T,
100 . IRLEN20E,ISLEN20E,
101 . IPARI(NPARI,*), INTLIST(*),
102 . IXS(NIXS,*), IXS16(8,*),IKINE(*),INT24E2EUSE
103 my_real
104 . x(3,*), v(3,*), ms(*), temp(*),
105 . dt2prev, diag_sms(*),forneqs(3,*)
106
107 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
108 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
109 TYPE(MULTI_FVM_STRUCT), INTENT(INOUT) :: MULTI_FVM
110 TYPE (SENSOR_STR_) ,DIMENSION(NSENSOR) :: SENSOR_TAB
111 TYPE (INTERFACES_) ,INTENT(IN) :: INTERFACES
112C-----------------------------------------------
113C L o c a l V a r i a b l e s
114C-----------------------------------------------
115#ifdef MPI
116 INTEGER P, L, ADD, NB, LEN, SIZ, LOC_PROC, I, NOD,
117 . NIN, IDEB, N, MSGTYP, IERROR, DT_CST, II,
118 . N1, N2, LENI, LEN11, NTY, IALLOCS, IALLOCR, INACTI,
119 . LEN17, IGN, IGE, NMES, NME, NN, IES, LEN7T,
120 . LEN20, LEN20T, NLN, LEN20E, INC,LEN11T,
121 . IL, IL1, IL2, MSGOFF,INTNITSCHE,NISUB,
122 . STATUS(MPI_STATUS_SIZE),
123C parasiz car variable en save
124 . DEBUT(NINTER), DEBUTE(NINTER),
125 . ADDS(PARASIZ+1), ADDR(PARASIZ+1),
126 . REQ_SI(PARASIZ),REQ_RI(PARASIZ),ISTOCOM,INTTH,IRBY,
127 . ISENS,INTERACT,POINT,LSAV
128 INTEGER :: LOC_NOD
129C Type 25 E2E:
130C
131 my_real
132 . vdt, x1, x2, x3, x4,x9, x10, x11, x12, xc, an, ax,
133 . d4, bn, bx, cn, cx, d8, dn, dx, startt, stopt, ts
134 my_real ,DIMENSION(:), ALLOCATABLE :: bbufs, bbufr
135C type 25
136 INTEGER IEDGE,LEN25E,INCLUD_X
137 double precision
138 * zerodp
139 DATA msgoff/161/
140 DATA istocom/0/
141 SAVE adds,addr,req_si,req_ri,istocom,
142 . iallocs,iallocr,bbufs,bbufr
143 LOGICAL IFSUB_CAREA
144C-----------------------------------------------
145C S o u r c e L i n e s
146C-----------------------------------------------
147 zerodp=0.0
148C
149 loc_proc = ispmd + 1
150 dt_cst = 0
151 IF(nbi18 /= 0)dt_cst = 1
152 IF (idtmin(11)==3.OR.idtmin(11)==8.OR.idtmin(10)==3) THEN
153 IF(imsch>0) dt_cst = 1
154 ENDIF
155 IF ((irad2r==1).AND.(ncycle<2)) dt_cst = 1
156 IF(i2msch==1) dt_cst = 1
157! S/R directly X
158 includ_x = 0
159 IF (iresp==1.OR.impl_s==1.OR.nbi18>0.OR.int24e2euse==1.OR.ish_offset>0) includ_x=1
160 len = 3 + 3*includ_x + dt_cst
161C type 7 + heat
162 len7t = len + 1
163C NITSCHE
164 IF(nitsche > 0) len = len +3
165 IF(nitsche > 0) len7t = len7t +3
166C
167 len11 = 2*len
168C type 11 + heat
169 len11t = 2*len+2
170 len17 = 100
171C type 20
172 len20 = 3 + 3 + dt_cst + 18*(1+iresp) + 6 + 3 +1 ! car X tjrs envoye
173 IF(idtmins > 0 .OR. idtmins_int /= 0) len20 = len20 + 1
174C type 20 + heat
175 len20t = len20 + 1
176C type 20 edge
177 len20e = 2 * (3 + 3 + dt_cst + 18*(1+iresp) + 6 + 3 +1) + 3 ! Base on 2 times int11 + specific size 20
178 IF(idtmins > 0 .OR. idtmins_int /= 0 ) len20e = len20e + 2
179
180C type 25
181 len25e = 14 ! 2 x [ X(3) + V(3) + MS(1) ] +
182
183C
184 ifsub_carea = .false.
185 DO ii = 1, nbintc
186 nin = intlist(ii)
187 nty = ipari(7,nin)
188 nisub = ipari(36,nin)
189 IF(nty == 25.AND.interfaces%PARAMETERS%INTCAREA > 0.AND.nisub > 0) THEN ! if Carea output for TH and subinterfaces
190 ifsub_carea = .true.
191 ELSEIF(nty==24.AND.interfaces%PARAMETERS%INTCAREA > 0) THEN ! if Carea output for TH and subinterfaces
192 ifsub_carea = .true.
193 ENDIF
194 ENDDO
195C
196 IF(iflag==1)THEN
197C
198C Partie 1 envoi et preparation buffer reception
199C
200
201C
202C Init
203C
204 DO ii = 1, nbintc
205 nin = intlist(ii)
206 debut(nin) = 0
207 debute(nin) = 0
208 ENDDO
209C
210 iallocs = len *(islen25+islen7) + len7t*(islen25t+islen7t)
211 . + len11t*islen11 + len17*islen17
212 . + len20*islen20 + len20t*islen20t + len20e*islen20e
213 . + len25e*islen25e
214 IF(ifsub_carea ) iallocs = iallocs +islen25+islen7
215
216 ierror=0
217 IF(iallocs>0)
218 + ALLOCATE(bbufs(iallocs),stat=ierror)
219 IF(ierror/=0) THEN
220 CALL ancmsg(msgid=20,anmode=aninfo)
221 CALL arret(2)
222 END IF
223C
224 iallocr = len*(irlen7+irlen25) + len7t*(irlen7t+irlen25t)
225 . + len11t*irlen11 + len17*irlen17
226 . + len20*irlen20 + len20t*irlen20t + len20e*irlen20e
227 . + len25e*irlen25e
228
229 IF(ifsub_carea ) iallocr = iallocr +irlen25+irlen7
230
231 ierror=0
232 IF(iallocr>0)
233 + ALLOCATE(bbufr(iallocr),stat=ierror)
234 IF(ierror/=0) THEN
235 CALL ancmsg(msgid=20,anmode=aninfo)
236 CALL arret(2)
237 END IF
238C
239C Receive
240C
241 l = 0
242 DO p = 1, nspmd
243 add = l+1
244 addr(p) = add
245 siz = 0
246 IF(p/=loc_proc)THEN
247 DO ii = 1, nbintc
248 nin = intlist(ii)
249 nb = nsnfi(nin)%P(p)
250C
251 nty =ipari(7,nin)
252 intth = ipari(47,nin)
253 inacti = ipari(22,nin)
254 intnitsche = ipari(86,nin)
255 iedge = ipari(58,nin)
256 nisub = ipari(36,nin)
257C
258 isens = 0
259 interact = 1
260 IF(nty == 7.OR.nty == 11.OR.nty == 24.OR.
261 . nty == 21.OR.nty == 5.OR.nty == 19 .OR.
262 . nty == 25) isens = ipari(64,nin)
263
264 IF (isens > 0) THEN ! IF INTERFACE IS ACTIVATED BY SENSOR
265 ts = sensor_tab(isens)%TSTART
266 IF (ts>tt-dt2) interact = 0
267 ELSE
268 IF(nty/=25.AND.(nty==23.OR.inacti==5.OR.inacti==6.OR.inacti==7))THEN ! IF INACTI : check TSTART
269 startt = intbuf_tab(nin)%VARIABLES(3)
270 stopt = intbuf_tab(nin)%VARIABLES(11)
271 IF (startt>tt-dt2) interact = 0
272 ENDIF
273 END IF
274
275 ! Number of entities to send set to 0 when interface is deactivated
276 IF (interact==0) nb=0
277
278
279 leni = len
280 IF(nty==11)leni=len11
281 IF(nty==17)leni=len17
282 IF(nty == 7 .AND. intth > 0 ) leni = len7t
283 IF(nty == 22 .AND. intth > 0 ) leni = len7t
284 IF(nty == 23 .AND. intth > 0 ) leni = len7t
285 IF(nty == 24 .AND. intth > 0 ) leni = len7t
286 IF(nty == 25 .AND. intth > 0 ) leni = len7t
287 IF(nty==20) leni = len20
288 IF(nty == 20 .AND. intth > 0) leni = len20t
289 IF(nty==11 .AND. intth > 0) leni=len11t
290c IF(NTY == 24 .AND. INTNITSCHE > 0 ) LENI = LENI + 3
291 IF(nb>0) THEN
292 l = l + nb*leni
293 ENDIF
294 IF(((nty == 25.AND.nisub > 0).OR.nty==24).AND.interfaces%PARAMETERS%INTCAREA > 0) THEN
295 ifsub_carea = .true.
296 IF(nb>0) THEN
297 l = l + nb
298 ENDIF
299 ENDIF
300
301C Add part of Edge for Type 20
302 IF(nty==20)THEN
303 nb = nsnfie(nin)%P(p)
304 IF(nb>0) l = l + nb*len20e
305 END IF
306C Add part of Edge for Type 25
307 IF(nty==25 .AND. iedge /= 0)THEN
308 nb = nsnfie(nin)%P(p)
309 IF(nb>0) l = l + nb*len25e
310 END IF
311
312 ENDDO
313 siz = l+1-add
314 IF(siz>0)THEN
315 msgtyp = msgoff
316C BUFS: Shipping Part Force and Reception Speed Party
317 CALL mpi_irecv(
318 . bbufr(add),siz,real ,it_spmd(p),msgtyp,
319 . spmd_comm_world,req_ri(p),ierror )
320 ENDIF
321 ENDIF
322 ENDDO
323 addr(nspmd+1) = addr(nspmd)+siz
324 IF(l>0) THEN
325 istocom = 1
326 dt2prev =dt2
327 ENDIF
328C
329C Send
330C
331 l = 0
332 DO p = 1, nspmd
333 add = l+1
334 adds(p) = add
335 siz = 0
336 IF(p/=loc_proc)THEN
337 DO ii = 1, nbintc
338 nin = intlist(ii)
339 ideb = debut(nin)
340 nb = nsnsi(nin)%P(p)
341
342 isens = 0
343 interact = 1
344 IF(nty == 7.OR.nty == 11.OR.nty == 24.OR.
345 . nty == 21.OR.nty == 5.OR.nty == 19 .OR.
346 . nty == 25) isens = ipari(64,nin)
347
348 IF (isens > 0) THEN ! IF INTERFACE IS ACTIVATED BY SENSOR
349 ts = sensor_tab(isens)%TSTART
350 IF (ts>tt-dt2) interact = 0
351 ELSE
352 IF(nty/=25.AND.(nty==23.OR.inacti==5.OR.inacti==6.OR.inacti==7))THEN ! TSTART
353 startt = intbuf_tab(nin)%VARIABLES(3)
354 stopt = intbuf_tab(nin)%VARIABLES(11)
355 IF (startt>tt-dt2) interact = 0
356 ENDIF
357 ENDIF
358 ! Number of entities to send set to 0 when interface is deactivated
359 IF (interact==0) nb=0
360
361 IF(nb>0) THEN
362 nty =ipari(7,nin)
363 intth = ipari(47,nin)
364 inacti = ipari(22,nin)
365 intnitsche = ipari(86,nin)
366 ifsub_carea = .false.
367 IF(nty == 25.AND.interfaces%PARAMETERS%INTCAREA > 0.AND.nisub > 0) THEN ! if Carea output for TH and subinterfaces
368 ifsub_carea = .true.
369 ELSEIF(nty==24.AND.interfaces%PARAMETERS%INTCAREA > 0) THEN ! if Carea output for TH and subinterfaces
370 ifsub_carea = .true.
371 ENDIF
372
373 lsav=l
374 IF((nty==7 .AND. intth ==0 ).OR.nty==10.OR.
375 . (nty==22 .AND. intth ==0) .OR.
376 . (nty==23 .AND. intth ==0) .OR.
377 . (nty==24 .AND. intth ==0.AND.intnitsche == 0) .OR.
378 . (nty==25 .AND. intth ==0)) THEN
379 ! ---------------------------------
380 IF(dt_cst/=0)THEN
381 ! ---------------------------------
382 IF(includ_x==1) THEN
383 DO i = 1, nb
384 n = nsvsi(nin)%P(ideb+i)
385 nod = intbuf_tab(nin)%NSV(n)
386 ! ---------------------------------
387 ! Type 24
388 IF(nod > numnod)THEN
389C This is for Type24 E2E
390C T24 E2E fictive nodes have ID higher than Numnod. Position & Mass are stored in interface buffer
391 bbufs(l+1) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+1)
392 bbufs(l+2) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+2)
393 bbufs(l+3) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+3)
394 bbufs(l+4) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
395 bbufs(l+5) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
396 bbufs(l+6) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
397 bbufs(l+7) = intbuf_tab(nin)%MSFIC(nod-numnod)
398 ! ---------------------------------
399 ELSEIF( multi_fvm%IS_INT18_LAW151.AND. ((nty==7).AND.(inacti ==7)) ) THEN
400 ! Type 18 + Law 151
401 loc_nod = nod + numnod - 1
402 bbufs(l+1) = multi_fvm%X_APPEND( 3*loc_nod+1 )
403 bbufs(l+2) = multi_fvm%X_APPEND( 3*loc_nod+2 )
404 bbufs(l+3) = multi_fvm%X_APPEND( 3*loc_nod+3 )
405 bbufs(l+4) = multi_fvm%V_APPEND( 3*loc_nod+1 )
406 bbufs(l+5) = multi_fvm%V_APPEND( 3*loc_nod+2 )
407 bbufs(l+6) = multi_fvm%V_APPEND( 3*loc_nod+3 )
408 bbufs(l+7) = multi_fvm%MASS_APPEND( loc_nod+1 )
409 ! ---------------------------------
410 ELSE
411 bbufs(l+1) = x(1,nod)
412 bbufs(l+2) = x(2,nod)
413 bbufs(l+3) = x(3,nod)
414 bbufs(l+4) = v(1,nod)
415 bbufs(l+5) = v(2,nod)
416 bbufs(l+6) = v(3,nod)
417 bbufs(l+7) = ms(nod)
418 ENDIF
419 ! ---------------------------------
420 l = l + len
421 ENDDO
422 point = 7
423 ! ---------------------------------
424 ELSE ! IRESP==1.OR.IMPL_S==1.OR.NBI18>0.OR.I ...
425 DO i = 1, nb
426 n =nsvsi(nin)%P(ideb+i)
427 nod = intbuf_tab(nin)%NSV(n)
428 bbufs(l+1) = v(1,nod)
429 bbufs(l+2) = v(2,nod)
430 bbufs(l+3) = v(3,nod)
431 bbufs(l+4) = ms(nod)
432 l = l + len
433 ENDDO
434 point = 4
435 ENDIF
436 ! ---------------------------------
437 ELSE ! dt_cst/=0
438 ! ---------------------------------
439 IF (includ_x==1) THEN
440 DO i = 1, nb
441 n=nsvsi(nin)%P(ideb+i)
442 nod = intbuf_tab(nin)%NSV(n)
443 ! ---------------------------------
444 ! Type 24
445 IF(nod > numnod)THEN
446 bbufs(l+1) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+1)
447 bbufs(l+2) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+2)
448 bbufs(l+3) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+3)
449 bbufs(l+4) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
450 bbufs(l+5) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
451 bbufs(l+6) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
452 ! ---------------------------------
453 ELSEIF( multi_fvm%IS_INT18_LAW151.AND. ((nty==7).AND.(inacti ==7)) ) THEN
454 ! Type 18 + Law 151
455 loc_nod = nod + numnod - 1
456 bbufs(l+1) = multi_fvm%X_APPEND( 3*loc_nod+1 )
457 bbufs(l+2) = multi_fvm%X_APPEND( 3*loc_nod+2 )
458 bbufs(l+3) = multi_fvm%X_APPEND( 3*loc_nod+3 )
459 bbufs(l+4) = multi_fvm%V_APPEND( 3*loc_nod+1 )
460 bbufs(l+5) = multi_fvm%V_APPEND( 3*loc_nod+2 )
461 bbufs(l+6) = multi_fvm%V_APPEND( 3*loc_nod+3 )
462 ! ---------------------------------
463 ELSE
464 bbufs(l+1) = x(1,nod)
465 bbufs(l+2) = x(2,nod)
466 bbufs(l+3) = x(3,nod)
467 bbufs(l+4) = v(1,nod)
468 bbufs(l+5) = v(2,nod)
469 bbufs(l+6) = v(3,nod)
470 ENDIF
471 ! ---------------------------------
472 l = l + len
473 ENDDO
474 point = 6
475 ! ---------------------------------
476 ELSE ! IRESP==1.OR.IMPL_S==1.OR.NBI18>0.OR.INT24
477 DO i = 1, nb
478 n=nsvsi(nin)%P(ideb+i)
479 nod = intbuf_tab(nin)%NSV(n)
480 ! ---------------------------------
481 ! Type 24
482 IF (nod > numnod)THEN
483 bbufs(l+1) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
484 bbufs(l+2) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
485 bbufs(l+3) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
486 ! ---------------------------------
487 ELSE
488 bbufs(l+1) = v(1,nod)
489 bbufs(l+2) = v(2,nod)
490 bbufs(l+3) = v(3,nod)
491 ENDIF
492 ! ---------------------------------
493 l = l + len
494 ENDDO
495 point = 3
496 ENDIF
497 ! ---------------------------------
498 ENDIF
499
500 IF(ifsub_carea) THEN
501 DO i = 1, nb
502 n=nsvsi(nin)%P(ideb+i)
503 nod = intbuf_tab(nin)%NSV(n)
504 IF(nod <= numnod)THEN
505 bbufs(l+1) = interfaces%PARAMETERS%INTAREAN(nod)
506 l = l +1
507 ENDIF
508 ENDDO
509
510 ENDIF
511C
512 ELSEIF((nty== 7.AND.intth>0).OR.
513 . (nty==25.AND.intth>0).OR.
514 . (nty==24.AND.intth>0.AND.intnitsche == 0).OR.
515 . (nty==23.AND.intth>0).OR.
516 . (nty==22.AND.intth>0) )THEN
517 ! ---------------------------------
518 IF(dt_cst/=0)THEN
519 ! ---------------------------------
520 IF (includ_x==1) THEN
521 DO i = 1, nb
522 n = nsvsi(nin)%P(ideb+i)
523 nod = intbuf_tab(nin)%NSV(n)
524 ! ---------------------------------
525 ! Type 24
526 IF(nod > numnod)THEN
527 bbufs(l+1) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+1)
528 bbufs(l+2) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+2)
529 bbufs(l+3) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+3)
530 bbufs(l+4) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
531 bbufs(l+5) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
532 bbufs(l+6) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
533 bbufs(l+7) = intbuf_tab(nin)%MSFIC(nod-numnod)
534 ! ---------------------------------
535 ELSEIF( multi_fvm%IS_INT18_LAW151.AND. ((nty==7).AND.(inacti ==7)) ) THEN
536 ! Type 18 + Law 151
537 loc_nod = nod + numnod - 1
538 bbufs(l+1) = multi_fvm%X_APPEND( 3*loc_nod+1 )
539 bbufs(l+2) = multi_fvm%X_APPEND( 3*loc_nod+2 )
540 bbufs(l+3) = multi_fvm%X_APPEND( 3*loc_nod+3 )
541 bbufs(l+4) = multi_fvm%V_APPEND( 3*loc_nod+1 )
542 bbufs(l+5) = multi_fvm%V_APPEND( 3*loc_nod+2 )
543 bbufs(l+6) = multi_fvm%V_APPEND( 3*loc_nod+3 )
544 bbufs(l+7) = multi_fvm%MASS_APPEND( loc_nod+1 )
545 ! ---------------------------------
546 ELSE
547 bbufs(l+1) = x(1,nod)
548 bbufs(l+2) = x(2,nod)
549 bbufs(l+3) = x(3,nod)
550 bbufs(l+4) = v(1,nod)
551 bbufs(l+5) = v(2,nod)
552 bbufs(l+6) = v(3,nod)
553 bbufs(l+7) = ms(nod)
554 ENDIF
555 ! ---------------------------------
556 bbufs(l+8) = temp(nod)
557 l = l + len7t
558 ENDDO
559 point=8
560 ! ---------------------------------
561 ELSE ! IRESP==1.OR.IMPL_S==1.OR.NBI18>0.OR.INT
562 DO i = 1, nb
563 n =nsvsi(nin)%P(ideb+i)
564 nod = intbuf_tab(nin)%NSV(n)
565 bbufs(l+1) = v(1,nod)
566 bbufs(l+2) = v(2,nod)
567 bbufs(l+3) = v(3,nod)
568 bbufs(l+4) = ms(nod)
569 bbufs(l+5) = temp(nod)
570 l = l + len7t
571 ENDDO
572 point = 5
573 ENDIF
574 ! ---------------------------------
575 ! ---------------------------------
576 ELSE ! dt_cst /=0
577 IF (includ_x==1) THEN
578 ! ---------------------------------
579 DO i = 1, nb
580 n=nsvsi(nin)%P(ideb+i)
581 nod = intbuf_tab(nin)%NSV(n)
582 ! ---------------------------------
583 ! Type 24
584 IF(nod > numnod)THEN
585 bbufs(l+1) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+1)
586 bbufs(l+2) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+2)
587 bbufs(l+3) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+3)
588 bbufs(l+4) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
589 bbufs(l+5) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
590 bbufs(l+6) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
591 ! ---------------------------------
592 ELSE
593 bbufs(l+1) = x(1,nod)
594 bbufs(l+2) = x(2,nod)
595 bbufs(l+3) = x(3,nod)
596 bbufs(l+4) = v(1,nod)
597 bbufs(l+5) = v(2,nod)
598 bbufs(l+6) = v(3,nod)
599 ENDIF
600 ! ---------------------------------
601 bbufs(l+7) = temp(nod)
602 l = l + len7t
603 ENDDO
604 point = 7
605 ! ---------------------------------
606 ELSE ! IRESP==1.OR.IMPL_S==1.OR.NBI18>0.OR.INT
607 DO i = 1, nb
608 n=nsvsi(nin)%P(ideb+i)
609 nod = intbuf_tab(nin)%NSV(n)
610 bbufs(l+1) = v(1,nod)
611 bbufs(l+2) = v(2,nod)
612 bbufs(l+3) = v(3,nod)
613 bbufs(l+4) = temp(nod)
614 l = l + len7t
615 ENDDO
616 point = 4
617 ENDIF
618 ! ---------------------------------
619 ENDIF ! dst_cst /=0
620 ! ---------------------------------
621
622 IF(ifsub_carea) THEN
623 DO i = 1, nb
624 n=nsvsi(nin)%P(ideb+i)
625 nod = intbuf_tab(nin)%NSV(n)
626 IF(nod <= numnod)THEN
627 bbufs(l+1) = interfaces%PARAMETERS%INTAREAN(nod)
628 l = l +1
629 ENDIF
630 ENDDO
631
632 ENDIF
633C--------Nitsche
634 ELSEIF(nty==24 .AND. intth ==0.AND.intnitsche > 0) THEN
635 IF(dt_cst/=0)THEN
636 IF(includ_x==1) THEN
637 DO i = 1, nb
638 n = nsvsi(nin)%P(ideb+i)
639 nod = intbuf_tab(nin)%NSV(n)
640 IF(nod > numnod)THEN
641C This is for Type24 E2E
642C T24 E2E fictive nodes have ID higher than Numnod. Position & Mass are stored in interface buffer
643 bbufs(l+1) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+1)
644 bbufs(l+2) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+2)
645 bbufs(l+3) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+3)
646 bbufs(l+4) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
647 bbufs(l+5) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
648 bbufs(l+6) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
649 bbufs(l+7) = intbuf_tab(nin)%MSFIC(nod-numnod)
650 ELSE
651 bbufs(l+1) = x(1,nod)
652 bbufs(l+2) = x(2,nod)
653 bbufs(l+3) = x(3,nod)
654 bbufs(l+4) = v(1,nod)
655 bbufs(l+5) = v(2,nod)
656 bbufs(l+6) = v(3,nod)
657 bbufs(l+7) = ms(nod)
658 ENDIF
659 bbufs(l+8) = forneqs(1,nod)
660 bbufs(l+9) = forneqs(2,nod)
661 bbufs(l+10) = forneqs(3,nod)
662 l = l + len !+ 3
663 ENDDO
664 point = 10
665 ELSE
666 DO i = 1, nb
667 n =nsvsi(nin)%P(ideb+i)
668 nod = intbuf_tab(nin)%NSV(n)
669 bbufs(l+1) = v(1,nod)
670 bbufs(l+2) = v(2,nod)
671 bbufs(l+3) = v(3,nod)
672 bbufs(l+4) = ms(nod)
673 bbufs(l+5) = forneqs(1,nod)
674 bbufs(l+6) = forneqs(2,nod)
675 bbufs(l+7) = forneqs(3,nod)
676 l = l + len !+ 3
677 ENDDO
678 point = 7
679 ENDIF
680 ELSE
681 IF (includ_x==1) THEN
682 DO i = 1, nb
683 n=nsvsi(nin)%P(ideb+i)
684 nod = intbuf_tab(nin)%NSV(n)
685 IF(nod > numnod)THEN
686 bbufs(l+1) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+1)
687 bbufs(l+2) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+2)
688 bbufs(l+3) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+3)
689 bbufs(l+4) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
690 bbufs(l+5) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
691 bbufs(l+6) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
692 ELSE
693 bbufs(l+1) = x(1,nod)
694 bbufs(l+2) = x(2,nod)
695 bbufs(l+3) = x(3,nod)
696 bbufs(l+4) = v(1,nod)
697 bbufs(l+5) = v(2,nod)
698 bbufs(l+6) = v(3,nod)
699 ENDIF
700 bbufs(l+7) = forneqs(1,nod)
701 bbufs(l+8) = forneqs(2,nod)
702 bbufs(l+9) = forneqs(3,nod)
703 l = l + len !+ 3
704 ENDDO
705 point = 9
706 ELSE
707 DO i = 1, nb
708 n=nsvsi(nin)%P(ideb+i)
709 nod = intbuf_tab(nin)%NSV(n)
710 IF (nod > numnod)THEN
711 bbufs(l+1) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
712 bbufs(l+2) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
713 bbufs(l+3) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
714 ELSE
715 bbufs(l+1) = v(1,nod)
716 bbufs(l+2) = v(2,nod)
717 bbufs(l+3) = v(3,nod)
718 ENDIF
719 bbufs(l+4) = forneqs(1,nod)
720 bbufs(l+5) = forneqs(2,nod)
721 bbufs(l+6) = forneqs(3,nod)
722 l = l + len !+ 3
723 ENDDO
724 point = 6
725 ENDIF
726 ENDIF
727
728 IF(ifsub_carea) THEN
729 DO i = 1, nb
730 n=nsvsi(nin)%P(ideb+i)
731 nod = intbuf_tab(nin)%NSV(n)
732 IF(nod <= numnod)THEN
733 bbufs(l+1) = interfaces%PARAMETERS%INTAREAN(nod)
734 l = l +1
735 ENDIF
736 ENDDO
737
738 ENDIF
739C
740
741C----Nitsche
742C
743 ELSEIF(nty==24.AND.intth>0.AND.intnitsche > 0) THEN
744 IF(dt_cst/=0)THEN
745 IF (includ_x==1) THEN
746 DO i = 1, nb
747 n = nsvsi(nin)%P(ideb+i)
748 nod = intbuf_tab(nin)%NSV(n)
749 IF(nod > numnod)THEN
750 bbufs(l+1) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+1)
751 bbufs(l+2) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+2)
752 bbufs(l+3) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+3)
753 bbufs(l+4) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
754 bbufs(l+5) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
755 bbufs(l+6) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
756 bbufs(l+7) = intbuf_tab(nin)%MSFIC(nod-numnod)
757 ELSE
758 bbufs(l+1) = x(1,nod)
759 bbufs(l+2) = x(2,nod)
760 bbufs(l+3) = x(3,nod)
761 bbufs(l+4) = v(1,nod)
762 bbufs(l+5) = v(2,nod)
763 bbufs(l+6) = v(3,nod)
764 bbufs(l+7) = ms(nod)
765 ENDIF
766 bbufs(l+8) = temp(nod)
767 bbufs(l+9) = forneqs(1,nod)
768 bbufs(l+10) = forneqs(2,nod)
769 bbufs(l+11) = forneqs(3,nod)
770 l = l + len7t !+ 3
771 ENDDO
772 point=11
773 ELSE
774 DO i = 1, nb
775 n =nsvsi(nin)%P(ideb+i)
776 nod = intbuf_tab(nin)%NSV(n)
777 bbufs(l+1) = v(1,nod)
778 bbufs(l+2) = v(2,nod)
779 bbufs(l+3) = v(3,nod)
780 bbufs(l+4) = ms(nod)
781 bbufs(l+5) = temp(nod)
782 bbufs(l+6) = forneqs(1,nod)
783 bbufs(l+7) = forneqs(2,nod)
784 bbufs(l+8) = forneqs(3,nod)
785 l = l + len7t !+ 3
786 ENDDO
787 point = 8
788 ENDIF
789 ELSE
790 IF (includ_x==1) THEN
791 DO i = 1, nb
792 n=nsvsi(nin)%P(ideb+i)
793 nod = intbuf_tab(nin)%NSV(n)
794 IF(nod > numnod)THEN
795 bbufs(l+1) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+1)
796 bbufs(l+2) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+2)
797 bbufs(l+3) = intbuf_tab(nin)%XFIC(3*(nod-numnod-1)+3)
798 bbufs(l+4) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+1)
799 bbufs(l+5) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+2)
800 bbufs(l+6) = intbuf_tab(nin)%VFIC(3*(nod-numnod-1)+3)
801 ELSE
802 bbufs(l+1) = x(1,nod)
803 bbufs(l+2) = x(2,nod)
804 bbufs(l+3) = x(3,nod)
805 bbufs(l+4) = v(1,nod)
806 bbufs(l+5) = v(2,nod)
807 bbufs(l+6) = v(3,nod)
808 ENDIF
809 bbufs(l+7) = temp(nod)
810 bbufs(l+8) = forneqs(1,nod)
811 bbufs(l+9) = forneqs(2,nod)
812 bbufs(l+10)= forneqs(3,nod)
813 l = l + len7t !+ 3
814 ENDDO
815 point = 10
816 ELSE
817 DO i = 1, nb
818 n=nsvsi(nin)%P(ideb+i)
819 nod = intbuf_tab(nin)%NSV(n)
820 bbufs(l+1) = v(1,nod)
821 bbufs(l+2) = v(2,nod)
822 bbufs(l+3) = v(3,nod)
823 bbufs(l+4) = temp(nod)
824 bbufs(l+5) = forneqs(1,nod)
825 bbufs(l+6) = forneqs(2,nod)
826 bbufs(l+7) = forneqs(3,nod)
827 l = l + len7t !+ 3
828 ENDDO
829 point = 7
830 ENDIF
831 ENDIF
832
833 IF(ifsub_carea) THEN
834 DO i = 1, nb
835 n=nsvsi(nin)%P(ideb+i)
836 nod = intbuf_tab(nin)%NSV(n)
837 IF(nod <= numnod)THEN
838 bbufs(l+1) = interfaces%PARAMETERS%INTAREAN(nod)
839 l = l +1
840 ENDIF
841 ENDDO
842
843 ENDIF
844C
845 ELSEIF(nty==11.AND.intth==0)THEN
846C type 11
847 IF(dt_cst/=0)THEN
848 IF (iresp == 1.OR.impl_s==1.OR.nbi18>0) THEN
849 DO i = 1, nb
850 n = nsvsi(nin)%P(ideb+i)
851 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+1)
852 bbufs(l+1) = x(1,nod)
853 bbufs(l+2) = x(2,nod)
854 bbufs(l+3) = x(3,nod)
855 bbufs(l+4) = v(1,nod)
856 bbufs(l+5) = v(2,nod)
857 bbufs(l+6) = v(3,nod)
858 bbufs(l+7) = ms(nod)
859 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+2)
860 bbufs(l+8) = x(1,nod)
861 bbufs(l+9) = x(2,nod)
862 bbufs(l+10) = x(3,nod)
863 bbufs(l+11) = v(1,nod)
864 bbufs(l+12) = v(2,nod)
865 bbufs(l+13) = v(3,nod)
866 bbufs(l+14) = ms(nod)
867 l = l + len11
868 ENDDO
869 ELSE
870 DO i = 1, nb
871 n =nsvsi(nin)%P(ideb+i)
872 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+1)
873 bbufs(l+1) = v(1,nod)
874 bbufs(l+2) = v(2,nod)
875 bbufs(l+3) = v(3,nod)
876 bbufs(l+4) = ms(nod)
877 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+2)
878 bbufs(l+5) = v(1,nod)
879 bbufs(l+6) = v(2,nod)
880 bbufs(l+7) = v(3,nod)
881 bbufs(l+8) = ms(nod)
882 l = l + len11
883 ENDDO
884 ENDIF
885 ELSE
886 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
887 DO i = 1, nb
888 n=nsvsi(nin)%P(ideb+i)
889 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+1)
890 bbufs(l+1) = x(1,nod)
891 bbufs(l+2) = x(2,nod)
892 bbufs(l+3) = x(3,nod)
893 bbufs(l+4) = v(1,nod)
894 bbufs(l+5) = v(2,nod)
895 bbufs(l+6) = v(3,nod)
896 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+2)
897 bbufs(l+7) = x(1,nod)
898 bbufs(l+8) = x(2,nod)
899 bbufs(l+9) = x(3,nod)
900 bbufs(l+10) = v(1,nod)
901 bbufs(l+11) = v(2,nod)
902 bbufs(l+12) = v(3,nod)
903 l = l + len11
904 ENDDO
905 ELSE
906 DO i = 1, nb
907 n=nsvsi(nin)%P(ideb+i)
908 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+1)
909 bbufs(l+1) = v(1,nod)
910 bbufs(l+2) = v(2,nod)
911 bbufs(l+3) = v(3,nod)
912 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+2)
913 bbufs(l+4) = v(1,nod)
914 bbufs(l+5) = v(2,nod)
915 bbufs(l+6) = v(3,nod)
916 l = l + len11
917 ENDDO
918 ENDIF
919 ENDIF
920 ELSEIF(nty==11.AND.intth > 0)THEN
921C type 11 + thermal exchange
922 IF(dt_cst/=0)THEN
923 IF (iresp == 1.OR.impl_s==1.OR.nbi18>0) THEN
924 DO i = 1, nb
925 n = nsvsi(nin)%P(ideb+i)
926 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+1)
927 bbufs(l+1) = x(1,nod)
928 bbufs(l+2) = x(2,nod)
929 bbufs(l+3) = x(3,nod)
930 bbufs(l+4) = v(1,nod)
931 bbufs(l+5) = v(2,nod)
932 bbufs(l+6) = v(3,nod)
933 bbufs(l+7) = ms(nod)
934 bbufs(l+8) = temp(nod)
935 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+2)
936 bbufs(l+9) = x(1,nod)
937 bbufs(l+10) = x(2,nod)
938 bbufs(l+11) = x(3,nod)
939 bbufs(l+11) = v(1,nod)
940 bbufs(l+12) = v(2,nod)
941 bbufs(l+13) = v(3,nod)
942 bbufs(l+14) = ms(nod)
943 bbufs(l+15) = temp(nod)
944 l = l + len11t
945 ENDDO
946 ELSE
947 DO i = 1, nb
948 n =nsvsi(nin)%P(ideb+i)
949 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+1)
950 bbufs(l+1) = v(1,nod)
951 bbufs(l+2) = v(2,nod)
952 bbufs(l+3) = v(3,nod)
953 bbufs(l+4) = ms(nod)
954 bbufs(l+5) = temp(nod)
955 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+2)
956 bbufs(l+6) = v(1,nod)
957 bbufs(l+7) = v(2,nod)
958 bbufs(l+8) = v(3,nod)
959 bbufs(l+9) = ms(nod)
960 bbufs(l+10) = temp(nod)
961 l = l + len11t
962 ENDDO
963 ENDIF
964 ELSE
965 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
966 DO i = 1, nb
967 n=nsvsi(nin)%P(ideb+i)
968 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+1)
969 bbufs(l+1) = x(1,nod)
970 bbufs(l+2) = x(2,nod)
971 bbufs(l+3) = x(3,nod)
972 bbufs(l+4) = v(1,nod)
973 bbufs(l+5) = v(2,nod)
974 bbufs(l+6) = v(3,nod)
975 bbufs(l+7) = temp(nod)
976 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+2)
977 bbufs(l+8) = x(1,nod)
978 bbufs(l+9) = x(2,nod)
979 bbufs(l+10) = x(3,nod)
980 bbufs(l+11) = v(1,nod)
981 bbufs(l+12) = v(2,nod)
982 bbufs(l+13) = v(3,nod)
983 bbufs(l+14) = temp(nod)
984 l = l + len11t
985 ENDDO
986 ELSE
987 DO i = 1, nb
988 n=nsvsi(nin)%P(ideb+i)
989 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+1)
990 bbufs(l+1) = v(1,nod)
991 bbufs(l+2) = v(2,nod)
992 bbufs(l+3) = v(3,nod)
993 bbufs(l+4) = temp(nod)
994 nod = intbuf_tab(nin)%IRECTS(2*(n-1)+2)
995 bbufs(l+5) = v(1,nod)
996 bbufs(l+6) = v(2,nod)
997 bbufs(l+7) = v(3,nod)
998 bbufs(l+8) = temp(nod)
999 l = l + len11t
1000 ENDDO
1001 ENDIF
1002 ENDIF
1003
1004C type 17
1005 ELSEIF(nty==17)THEN
1006 ige = ipari(34,nin)
1007 ign = ipari(36,nin)
1008 nmes=igrbric(ign)%NENTITY
1009 nme =igrbric(ige)%NENTITY
1010C
1011 DO i = 1, nb
1012 n = nsvsi(nin)%P(ideb+i)
1013 ies = igrbric(ign)%ENTITY(n)
1014 nod = ixs(2,ies)
1015 bbufs(l+1) = x(1,nod)
1016 bbufs(l+2) = x(2,nod)
1017 bbufs(l+3) = x(3,nod)
1018 bbufs(l+4) = v(1,nod)
1019 bbufs(l+5) = v(2,nod)
1020 bbufs(l+6) = v(3,nod)
1021 nod = ixs(3,ies)
1022 bbufs(l+7) = x(1,nod)
1023 bbufs(l+8) = x(2,nod)
1024 bbufs(l+9) = x(3,nod)
1025 bbufs(l+10)= v(1,nod)
1026 bbufs(l+11)= v(2,nod)
1027 bbufs(l+12)= v(3,nod)
1028 nod = ixs(4,ies)
1029 bbufs(l+13) = x(1,nod)
1030 bbufs(l+14) = x(2,nod)
1031 bbufs(l+15) = x(3,nod)
1032 bbufs(l+16)= v(1,nod)
1033 bbufs(l+17)= v(2,nod)
1034 bbufs(l+18)= v(3,nod)
1035 nod = ixs(5,ies)
1036 bbufs(l+19)= x(1,nod)
1037 bbufs(l+20)= x(2,nod)
1038 bbufs(l+21)= x(3,nod)
1039 bbufs(l+22)= v(1,nod)
1040 bbufs(l+23)= v(2,nod)
1041 bbufs(l+24)= v(3,nod)
1042 nod = ixs(6,ies)
1043 bbufs(l+25)= x(1,nod)
1044 bbufs(l+26)= x(2,nod)
1045 bbufs(l+27)= x(3,nod)
1046 bbufs(l+28)= v(1,nod)
1047 bbufs(l+29)= v(2,nod)
1048 bbufs(l+30)= v(3,nod)
1049 nod = ixs(7,ies)
1050 bbufs(l+31)= x(1,nod)
1051 bbufs(l+32)= x(2,nod)
1052 bbufs(l+33)= x(3,nod)
1053 bbufs(l+34)= v(1,nod)
1054 bbufs(l+35)= v(2,nod)
1055 bbufs(l+36)= v(3,nod)
1056 nod = ixs(8,ies)
1057 bbufs(l+37)= x(1,nod)
1058 bbufs(l+38)= x(2,nod)
1059 bbufs(l+39)= x(3,nod)
1060 bbufs(l+40)= v(1,nod)
1061 bbufs(l+41)= v(2,nod)
1062 bbufs(l+42)= v(3,nod)
1063 nod = ixs(9,ies)
1064 bbufs(l+43)= x(1,nod)
1065 bbufs(l+44)= x(2,nod)
1066 bbufs(l+45)= x(3,nod)
1067 bbufs(l+46)= v(1,nod)
1068 bbufs(l+47)= v(2,nod)
1069 bbufs(l+48)= v(3,nod)
1070 nod = ixs16(1,ies)
1071 bbufs(l+49)= x(1,nod)
1072 bbufs(l+50)= x(2,nod)
1073 bbufs(l+51)= x(3,nod)
1074 bbufs(l+52)= v(1,nod)
1075 bbufs(l+53)= v(2,nod)
1076 bbufs(l+54)= v(3,nod)
1077 nod = ixs16(2,ies)
1078 bbufs(l+55)= x(1,nod)
1079 bbufs(l+56)= x(2,nod)
1080 bbufs(l+57)= x(3,nod)
1081 bbufs(l+58)= v(1,nod)
1082 bbufs(l+59)= v(2,nod)
1083 bbufs(l+60)= v(3,nod)
1084 nod = ixs16(3,ies)
1085 bbufs(l+61)= x(1,nod)
1086 bbufs(l+62)= x(2,nod)
1087 bbufs(l+63)= x(3,nod)
1088 bbufs(l+64)= v(1,nod)
1089 bbufs(l+65)= v(2,nod)
1090 bbufs(l+66)= v(3,nod)
1091 nod = ixs16(4,ies)
1092 bbufs(l+67)= x(1,nod)
1093 bbufs(l+68)= x(2,nod)
1094 bbufs(l+69)= x(3,nod)
1095 bbufs(l+70)= v(1,nod)
1096 bbufs(l+71)= v(2,nod)
1097 bbufs(l+72)= v(3,nod)
1098 nod = ixs16(5,ies)
1099 bbufs(l+73)= x(1,nod)
1100 bbufs(l+74)= x(2,nod)
1101 bbufs(l+75)= x(3,nod)
1102 bbufs(l+76)= v(1,nod)
1103 bbufs(l+77)= v(2,nod)
1104 bbufs(l+78)= v(3,nod)
1105 nod = ixs16(6,ies)
1106 bbufs(l+79)= x(1,nod)
1107 bbufs(l+80)= x(2,nod)
1108 bbufs(l+81)= x(3,nod)
1109 bbufs(l+82)= v(1,nod)
1110 bbufs(l+83)= v(2,nod)
1111 bbufs(l+84)= v(3,nod)
1112 nod = ixs16(7,ies)
1113 bbufs(l+85)= x(1,nod)
1114 bbufs(l+86)= x(2,nod)
1115 bbufs(l+87)= x(3,nod)
1116 bbufs(l+88)= v(1,nod)
1117 bbufs(l+89)= v(2,nod)
1118 bbufs(l+90)= v(3,nod)
1119 nod = ixs16(8,ies)
1120 bbufs(l+91)= x(1,nod)
1121 bbufs(l+92)= x(2,nod)
1122 bbufs(l+93)= x(3,nod)
1123 bbufs(l+94)= v(1,nod)
1124 bbufs(l+95)= v(2,nod)
1125 bbufs(l+96)= v(3,nod)
1126C FROTS(1..4)
1127 bbufs(l+97) = intbuf_tab(nin)%FROTS((n-1)*7+1)
1128 bbufs(l+98) = intbuf_tab(nin)%FROTS((n-1)*7+2)
1129 bbufs(l+99) = intbuf_tab(nin)%FROTS((n-1)*7+3)
1130 bbufs(l+100)= intbuf_tab(nin)%FROTS((n-1)*7+4)
1131C
1132 l = l + len17
1133 ENDDO
1134C fin type 17
1135 ELSEIF(nty==20 .AND. intth == 0 )THEN
1136 nln = ipari(35,nin)
1137 IF(dt_cst/=0)THEN
1138 IF(idtmins==0.AND.idtmins_int==0)THEN
1139
1140C besoin de tjrs envoyer X
1141C IF (IRESP==1.OR.IMPL_S==1) THEN
1142 DO i = 1, nb
1143 n = nsvsi(nin)%P(ideb+i)
1144c IL = NSV(N)
1145 il = intbuf_tab(nin)%NSV(n)
1146c NOD = NLG(IL)
1147 nod = intbuf_tab(nin)%NLG(il)
1148 bbufs(l+1) = x(1,nod)
1149 bbufs(l+2) = x(2,nod)
1150 bbufs(l+3) = x(3,nod)
1151 bbufs(l+4) = v(1,nod)
1152 bbufs(l+5) = v(2,nod)
1153 bbufs(l+6) = v(3,nod)
1154 bbufs(l+7) = ms(nod)
1155
1156 irby = ikine(nod) - (ikine(nod)/2)*2
1157 IF(irby==0)THEN
1158C DX
1159 bbufs(l+8) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+1)
1160 bbufs(l+9) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+2)
1161 bbufs(l+10) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+3)
1162C DV
1163 bbufs(l+11) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+1)
1164 bbufs(l+12) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+2)
1165 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+3)
1166C DAANC
1167 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+1)
1168 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+2)
1169 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+3)
1170C Alphak(2)
1171 bbufs(l+17) = intbuf_tab(nin)%ALPHAK((il-1)*3+2)
1172C
1173C DA
1174C Address in integer inbuf => double precision buffer 18*2
1175 CALL putdpdaanc(
1176 . intbuf_tab(nin)%DAANC6(1+(il-1)*3*6*2),bbufs(l+18),iresp,
1177 . inc)
1178 ELSE
1179 bbufs(l+ 8) = zero
1180 bbufs(l+ 9) = zero
1181 bbufs(l+10) = zero
1182 bbufs(l+11) = zero
1183 bbufs(l+12) = zero
1184 bbufs(l+13) = zero
1185 bbufs(l+14) = zero
1186 bbufs(l+15) = zero
1187 bbufs(l+16) = zero
1188 bbufs(l+17) = zero
1189 CALL putdpzero(zerodp,bbufs(l+18),iresp,inc)
1190 ENDIF
1191C L = L + INC
1192 l = l + len20
1193 ENDDO
1194C AMS
1195 ELSE
1196 DO i = 1, nb
1197 n = nsvsi(nin)%P(ideb+i)
1198c IL = NSV(N)
1199 il = intbuf_tab(nin)%NSV(n)
1200c NOD = NLG(IL)
1201 nod = intbuf_tab(nin)%NLG(il)
1202 bbufs(l+1) = x(1,nod)
1203 bbufs(l+2) = x(2,nod)
1204 bbufs(l+3) = x(3,nod)
1205 bbufs(l+4) = v(1,nod)
1206 bbufs(l+5) = v(2,nod)
1207 bbufs(l+6) = v(3,nod)
1208 bbufs(l+7) = ms(nod)
1209
1210 irby = ikine(nod) - (ikine(nod)/2)*2
1211 IF(irby==0)THEN
1212C DX
1213 bbufs(l+8) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+1)
1214 bbufs(l+9) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+2)
1215 bbufs(l+10) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+3)
1216C DV
1217 bbufs(l+11) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+1)
1218 bbufs(l+12) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+2)
1219 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+3)
1220C DAANC
1221 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+1)
1222 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+2)
1223 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+3)
1224
1225C Alphak(2)
1226 bbufs(l+17) = intbuf_tab(nin)%ALPHAK((il-1)*3+2)
1227C
1228C DA
1229C Address in integer inbuf => double precision buffer 18*2
1230 CALL putdpdaanc(
1231 . intbuf_tab(nin)%DAANC6(1+(il-1)*3*6*2),bbufs(l+18),iresp,
1232 . inc)
1233 ELSE
1234 bbufs(l+ 8) = zero
1235 bbufs(l+ 9) = zero
1236 bbufs(l+10) = zero
1237 bbufs(l+11) = zero
1238 bbufs(l+12) = zero
1239 bbufs(l+13) = zero
1240 bbufs(l+14) = zero
1241 bbufs(l+15) = zero
1242 bbufs(l+16) = zero
1243 bbufs(l+17) = zero
1244
1245 CALL putdpzero(zerodp,bbufs(l+18),iresp,inc)
1246 ENDIF
1247C L = L + INC
1248 bbufs(l+18+inc) = diag_sms(nod)
1249 l = l + len20
1250 ENDDO
1251 END IF
1252C fin AMS
1253 ELSE
1254C IF (IRESP==1.OR.IMPL_S==1) THEN
1255 IF(idtmins==0.AND.idtmins_int==0)THEN
1256 DO i = 1, nb
1257 n=nsvsi(nin)%P(ideb+i)
1258c IL = NSV(N)
1259 il = intbuf_tab(nin)%NSV(n)
1260c NOD = NLG(IL)
1261 nod = intbuf_tab(nin)%NLG(il)
1262 bbufs(l+1) = x(1,nod)
1263 bbufs(l+2) = x(2,nod)
1264 bbufs(l+3) = x(3,nod)
1265 bbufs(l+4) = v(1,nod)
1266 bbufs(l+5) = v(2,nod)
1267 bbufs(l+6) = v(3,nod)
1268
1269 irby = ikine(nod) - (ikine(nod)/2)*2
1270 IF(irby==0)THEN
1271C DX
1272 bbufs(l+7) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+1)
1273 bbufs(l+8) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+2)
1274 bbufs(l+9) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+3)
1275C DV
1276 bbufs(l+10) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+1)
1277 bbufs(l+11) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+2)
1278 bbufs(l+12) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+3)
1279C DAANC
1280 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+1)
1281 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+2)
1282 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+3)
1283C Alphak(2)
1284 bbufs(l+16) = intbuf_tab(nin)%ALPHAK((il-1)*3+2)
1285
1286C DA
1287C Address in integer inbuf => double precision buffer 18*2
1288 CALL putdpdaanc(
1289 . intbuf_tab(nin)%DAANC6(1+(il-1)*3*6*2),bbufs(l+17),iresp,
1290 . inc)
1291 ELSE
1292 bbufs(l+ 7) = zero
1293 bbufs(l+ 8) = zero
1294 bbufs(l+ 9) = zero
1295 bbufs(l+10) = zero
1296 bbufs(l+11) = zero
1297 bbufs(l+12) = zero
1298 bbufs(l+13) = zero
1299 bbufs(l+14) = zero
1300 bbufs(l+15) = zero
1301 bbufs(l+16) = zero
1302 CALL putdpzero(zerodp,bbufs(l+17),iresp,inc)
1303 ENDIF
1304C L = L + INC
1305 l = l + len20
1306 ENDDO
1307C AMS
1308 ELSE
1309 DO i = 1, nb
1310 n=nsvsi(nin)%P(ideb+i)
1311c IL = NSV(N)
1312 il = intbuf_tab(nin)%NSV(n)
1313c NOD = NLG(IL)
1314 nod = intbuf_tab(nin)%NLG(il)
1315 bbufs(l+1) = x(1,nod)
1316 bbufs(l+2) = x(2,nod)
1317 bbufs(l+3) = x(3,nod)
1318 bbufs(l+4) = v(1,nod)
1319 bbufs(l+5) = v(2,nod)
1320 bbufs(l+6) = v(3,nod)
1321
1322 irby = ikine(nod) - (ikine(nod)/2)*2
1323 IF(irby==0)THEN
1324C DX
1325 bbufs(l+7) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+1)
1326 bbufs(l+8) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+2)
1327 bbufs(l+9) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+3)
1328C DV
1329 bbufs(l+10) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+1)
1330 bbufs(l+11) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+2)
1331 bbufs(l+12) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+3)
1332C DAANC
1333 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+1)
1334 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+2)
1335 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+3)
1336C Alphak(2)
1337 bbufs(l+16) = intbuf_tab(nin)%ALPHAK((il-1)*3+2)
1338
1339C Address in integer inbuf => double precision buffer 18*2
1340 CALL putdpdaanc(
1341 . intbuf_tab(nin)%DAANC6(1+(il-1)*3*6*2),bbufs(l+17),iresp,
1342 . inc)
1343 ELSE
1344 bbufs(l+ 7) = zero
1345 bbufs(l+ 8) = zero
1346 bbufs(l+ 9) = zero
1347 bbufs(l+10) = zero
1348 bbufs(l+11) = zero
1349 bbufs(l+12) = zero
1350 bbufs(l+13) = zero
1351 bbufs(l+14) = zero
1352 bbufs(l+15) = zero
1353 bbufs(l+16) = zero
1354 CALL putdpzero(zerodp,bbufs(l+17),iresp,inc)
1355 ENDIF
1356C L = L + INC
1357 bbufs(l+17+inc) = diag_sms(nod)
1358 l = l + len20
1359 ENDDO
1360 END IF
1361C fin AMS
1362 ENDIF
1363C
1364 ELSEIF( nty == 20 .AND. intth > 0 ) THEN
1365 IF(dt_cst/=0)THEN
1366C IF (IRESP==1.OR.IMPL_S==1) THEN
1367 IF(idtmins==0.AND.idtmins_int==0)THEN
1368 DO i = 1, nb
1369 n = nsvsi(nin)%P(ideb+i)
1370c IL = NSV(N)
1371 il = intbuf_tab(nin)%NSV(n)
1372c NOD = NLG(IL)
1373 nod = intbuf_tab(nin)%NLG(il)
1374 bbufs(l+1) = x(1,nod)
1375 bbufs(l+2) = x(2,nod)
1376 bbufs(l+3) = x(3,nod)
1377 bbufs(l+4) = v(1,nod)
1378 bbufs(l+5) = v(2,nod)
1379 bbufs(l+6) = v(3,nod)
1380 bbufs(l+7) = ms(nod)
1381 bbufs(l+8) = temp(nod)
1382
1383 irby = ikine(nod) - (ikine(nod)/2)*2
1384 IF(irby==0)THEN
1385C DX
1386 bbufs(l+9) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+1)
1387 bbufs(l+10) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+2)
1388 bbufs(l+11) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+3)
1389C DV
1390 bbufs(l+12) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+1)
1391 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+2)
1392 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+3)
1393
1394C DAANC
1395 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+1)
1396 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+2)
1397 bbufs(l+17) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+3)
1398C Alphak(2)
1399 bbufs(l+18) = intbuf_tab(nin)%ALPHAK((il-1)*3+2)
1400C DA
1401C Address in integer inbuf => double precision buffer 18*2
1402 CALL putdpdaanc(
1403 . intbuf_tab(nin)%DAANC6(1+(il-1)*3*6*2),bbufs(l+19),iresp,
1404 . inc)
1405 ELSE
1406 bbufs(l+ 9) = zero
1407 bbufs(l+10) = zero
1408 bbufs(l+11) = zero
1409 bbufs(l+12) = zero
1410 bbufs(l+13) = zero
1411 bbufs(l+14) = zero
1412 bbufs(l+15) = zero
1413 bbufs(l+16) = zero
1414 bbufs(l+17) = zero
1415 bbufs(l+18) = zero
1416 CALL putdpzero(zerodp,bbufs(l+19),iresp,inc)
1417 ENDIF
1418C L = L + INC
1419 l = l + len20t
1420 ENDDO
1421C AMS
1422 ELSE
1423 DO i = 1, nb
1424 n = nsvsi(nin)%P(ideb+i)
1425c IL = NSV(N)
1426 il = intbuf_tab(nin)%NSV(n)
1427c NOD = NLG(IL)
1428 nod = intbuf_tab(nin)%NLG(il)
1429 bbufs(l+1) = x(1,nod)
1430 bbufs(l+2) = x(2,nod)
1431 bbufs(l+3) = x(3,nod)
1432 bbufs(l+4) = v(1,nod)
1433 bbufs(l+5) = v(2,nod)
1434 bbufs(l+6) = v(3,nod)
1435 bbufs(l+7) = ms(nod)
1436 bbufs(l+8) = temp(nod)
1437
1438 irby = ikine(nod) - (ikine(nod)/2)*2
1439 IF(irby==0)THEN
1440C DX
1441 bbufs(l+9) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+1)
1442 bbufs(l+10) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+2)
1443 bbufs(l+11) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+3)
1444C DV
1445 bbufs(l+12) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+1)
1446 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+2)
1447 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+3)
1448C DAANC
1449 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+1)
1450 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+2)
1451 bbufs(l+17) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+3)
1452C Alphak(2)
1453 bbufs(l+18) = intbuf_tab(nin)%ALPHAK((il-1)*3+2)
1454C DA
1455C Address in integer inbuf => double precision buffer 18*2
1456 CALL putdpdaanc(
1457 . intbuf_tab(nin)%DAANC6(1+(il-1)*3*6*2),bbufs(l+19),iresp,
1458 . inc)
1459 ELSE
1460 bbufs(l+ 9) = zero
1461 bbufs(l+10) = zero
1462 bbufs(l+11) = zero
1463 bbufs(l+12) = zero
1464 bbufs(l+13) = zero
1465 bbufs(l+14) = zero
1466 bbufs(l+15) = zero
1467 bbufs(l+16) = zero
1468 bbufs(l+17) = zero
1469 bbufs(l+18) = zero
1470 CALL putdpzero(zerodp,bbufs(l+19),iresp,inc)
1471 ENDIF
1472C L = L + INC
1473 bbufs(l+19+inc) = diag_sms(nod)
1474 l = l + len20t
1475 ENDDO
1476 END IF
1477C fin AMS
1478 ELSE
1479C IF (IRESP==1.OR.IMPL_S==1) THEN
1480 IF(idtmins==0.AND.idtmins_int==0)THEN
1481 DO i = 1, nb
1482 n=nsvsi(nin)%P(ideb+i)
1483c IL = NSV(N)
1484 il = intbuf_tab(nin)%NSV(n)
1485c NOD = NLG(IL)
1486 nod = intbuf_tab(nin)%NLG(il)
1487 bbufs(l+1) = x(1,nod)
1488 bbufs(l+2) = x(2,nod)
1489 bbufs(l+3) = x(3,nod)
1490 bbufs(l+4) = v(1,nod)
1491 bbufs(l+5) = v(2,nod)
1492 bbufs(l+6) = v(3,nod)
1493 bbufs(l+7) = temp(nod)
1494
1495 irby = ikine(nod) - (ikine(nod)/2)*2
1496 IF(irby==0)THEN
1497C DX
1498 bbufs(l+8) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+1)
1499 bbufs(l+9) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+2)
1500 bbufs(l+10) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+3)
1501C DV
1502 bbufs(l+11) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+1)
1503 bbufs(l+12) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+2)
1504 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+3)
1505C DAANC
1506 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+1)
1507 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+2)
1508 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+3)
1509C Alphak(2)
1510 bbufs(l+17) = intbuf_tab(nin)%ALPHAK((il-1)*3+2)
1511C DA
1512C Address in integer inbuf => double precision buffer 18*2
1513 CALL putdpdaanc(
1514 . intbuf_tab(nin)%DAANC6(1+(il-1)*3*6*2),bbufs(l+18),iresp,
1515 . inc)
1516 ELSE
1517 bbufs(l+ 8) = zero
1518 bbufs(l+ 9) = zero
1519 bbufs(l+10) = zero
1520 bbufs(l+11) = zero
1521 bbufs(l+12) = zero
1522 bbufs(l+13) = zero
1523 bbufs(l+14) = zero
1524 bbufs(l+15) = zero
1525 bbufs(l+16) = zero
1526 bbufs(l+17) = zero
1527 CALL putdpzero(zerodp,bbufs(l+18),iresp,inc)
1528 ENDIF
1529C L = L + INC
1530 l = l + len20t
1531 ENDDO
1532C AMS
1533 ELSE
1534 DO i = 1, nb
1535 n=nsvsi(nin)%P(ideb+i)
1536c IL = NSV(N)
1537 il = intbuf_tab(nin)%NSV(n)
1538c NOD = NLG(IL)
1539 nod = intbuf_tab(nin)%NLG(il)
1540 bbufs(l+1) = x(1,nod)
1541 bbufs(l+2) = x(2,nod)
1542 bbufs(l+3) = x(3,nod)
1543 bbufs(l+4) = v(1,nod)
1544 bbufs(l+5) = v(2,nod)
1545 bbufs(l+6) = v(3,nod)
1546 bbufs(l+7) = temp(nod)
1547
1548 irby = ikine(nod) - (ikine(nod)/2)*2
1549 IF(irby==0)THEN
1550C DX
1551 bbufs(l+8) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+1)
1552 bbufs(l+9) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+2)
1553 bbufs(l+10) = intbuf_tab(nin)%AVX_ANCR((il-1)*3+3)
1554C DV
1555 bbufs(l+11) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+1)
1556 bbufs(l+12) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+2)
1557 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il-1)*3+3)
1558C DAANC
1559 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+1)
1560 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+2)
1561 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il-1)*3+3)
1562C Alphak(2)
1563 bbufs(l+17) = intbuf_tab(nin)%ALPHAK((il-1)*3+2)
1564C DA
1565C Address in integer inbuf => double precision buffer 18*2
1566 CALL putdpdaanc(
1567 . intbuf_tab(nin)%DAANC6(1+(il-1)*3*6*2),bbufs(l+18),iresp,
1568 . inc)
1569 ELSE
1570 bbufs(l+ 8) = zero
1571 bbufs(l+ 9) = zero
1572 bbufs(l+10) = zero
1573 bbufs(l+11) = zero
1574 bbufs(l+12) = zero
1575 bbufs(l+13) = zero
1576 CALL putdpzero(zerodp,bbufs(l+18),iresp,inc)
1577 ENDIF
1578C L = L + INC
1579 bbufs(l+18+inc) = diag_sms(nod)
1580 l = l + len20t
1581 ENDDO
1582 END IF
1583C fin AMS
1584
1585 ENDIF
1586C
1587 END IF
1588 debut(nin) = debut(nin) + nb
1589 ENDIF
1590C
1591C Extra Code for Type20 Edge
1592C
1593 IF(ipari(7,nin)==20) THEN
1594 nb = nsnsie(nin)%P(p)
1595 ideb = debute(nin)
1596 IF(nb>0) THEN
1597C Needed if edge part not processed
1598 nty =ipari(7,nin)
1599 nln = ipari(35,nin)
1600 IF(dt_cst/=0)THEN
1601 IF(idtmins==0.AND.idtmins_int==0)THEN
1602 DO i = 1, nb
1603 n = nsvsie(nin)%P(ideb+i)
1604c IL1 = ISLINS(1,N)
1605 il1 = intbuf_tab(nin)%IXLINS(2*(n-1)+1)
1606c NOD = NLG(IL1)
1607 nod = intbuf_tab(nin)%NLG(il1)
1608 bbufs(l+1) = x(1,nod)
1609 bbufs(l+2) = x(2,nod)
1610 bbufs(l+3) = x(3,nod)
1611 bbufs(l+4) = v(1,nod)
1612 bbufs(l+5) = v(2,nod)
1613 bbufs(l+6) = v(3,nod)
1614 bbufs(l+7) = ms(nod)
1615c IL2 = ISLINS(1,N)
1616 il2 = intbuf_tab(nin)%IXLINS(2*(n-1)+2)
1617c NOD = NLG(IL2)
1618 nod = intbuf_tab(nin)%NLG(il2)
1619 bbufs(l+8) = x(1,nod)
1620 bbufs(l+9) = x(2,nod)
1621 bbufs(l+10) = x(3,nod)
1622 bbufs(l+11) = v(1,nod)
1623 bbufs(l+12) = v(2,nod)
1624 bbufs(l+13) = v(3,nod)
1625 bbufs(l+14) = ms(nod)
1626
1627 irby = ikine(nod) - (ikine(nod)/2)*2
1628 IF(irby==0)THEN
1629C
1630C DX IL1
1631 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+1)
1632 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+2)
1633 bbufs(l+17) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+3)
1634C DV IL1
1635 bbufs(l+18) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+1)
1636 bbufs(l+19) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+2)
1637 bbufs(l+20) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+3)
1638C DX IL2
1639 bbufs(l+21) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+1)
1640 bbufs(l+22) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+2)
1641 bbufs(l+23) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+3)
1642C DV IL2
1643 bbufs(l+24) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+1)
1644 bbufs(l+25) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+2)
1645 bbufs(l+26) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+3)
1646C DAANC IL1
1647 bbufs(l+27) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+1)
1648 bbufs(l+28) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+2)
1649 bbufs(l+29) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+3)
1650C DAANC IL2
1651 bbufs(l+30) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+1)
1652 bbufs(l+31) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+2)
1653 bbufs(l+32) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+3)
1654C Alphak(2) IL1
1655 bbufs(l+33) = intbuf_tab(nin)%ALPHAK((il1-1)*3+2)
1656C Alphak(2) IL2
1657 bbufs(l+34) = intbuf_tab(nin)%ALPHAK((il2-1)*3+2)
1658C DA IL1
1659 CALL putdpdaanc(
1660 . intbuf_tab(nin)%DAANC6(1+(il1-1)*3*6*2),bbufs(l+35),iresp,
1661 . inc)
1662C L = L + INC
1663C DA IL2
1664 CALL putdpdaanc(
1665 . intbuf_tab(nin)%DAANC6(1+(il2-1)*3*6*2),bbufs(l+35),iresp,
1666 . inc)
1667C L = L + INC
1668 ELSE
1669 bbufs(l+15) = zero
1670 bbufs(l+16) = zero
1671 bbufs(l+17) = zero
1672 bbufs(l+18) = zero
1673 bbufs(l+19) = zero
1674 bbufs(l+20) = zero
1675 bbufs(l+21) = zero
1676 bbufs(l+22) = zero
1677 bbufs(l+23) = zero
1678 bbufs(l+24) = zero
1679 bbufs(l+25) = zero
1680 bbufs(l+26) = zero
1681 bbufs(l+27) = zero
1682 bbufs(l+28) = zero
1683 bbufs(l+29) = zero
1684 bbufs(l+30) = zero
1685 bbufs(l+31) = zero
1686 bbufs(l+32) = zero
1687 bbufs(l+33) = zero
1688 bbufs(l+34) = zero
1689 CALL putdpzero(zerodp,bbufs(l+35),iresp,inc)
1690 CALL putdpzero(zerodp,bbufs(l+35+inc),iresp,inc)
1691 ENDIF
1692 l = l + len20e
1693 ENDDO
1694C AMS
1695
1696 ELSE
1697 DO i = 1, nb
1698 n = nsvsie(nin)%P(ideb+i)
1699c IL1 = ISLINS(1,N)
1700 il1 = intbuf_tab(nin)%IXLINS(2*(n-1)+1)
1701c NOD = NLG(IL1)
1702 nod = intbuf_tab(nin)%NLG(il1)
1703 bbufs(l+1) = x(1,nod)
1704 bbufs(l+2) = x(2,nod)
1705 bbufs(l+3) = x(3,nod)
1706 bbufs(l+4) = v(1,nod)
1707 bbufs(l+5) = v(2,nod)
1708 bbufs(l+6) = v(3,nod)
1709 bbufs(l+7) = ms(nod)
1710c IL2 = ISLINS(1,N)
1711 il2 = intbuf_tab(nin)%IXLINS(2*(n-1)+2)
1712c NOD = NLG(IL2)
1713 nod = intbuf_tab(nin)%NLG(il2)
1714 bbufs(l+8) = x(1,nod)
1715 bbufs(l+9) = x(2,nod)
1716 bbufs(l+10) = x(3,nod)
1717 bbufs(l+11) = v(1,nod)
1718 bbufs(l+12) = v(2,nod)
1719 bbufs(l+13) = v(3,nod)
1720 bbufs(l+14) = ms(nod)
1721
1722 irby = ikine(nod) - (ikine(nod)/2)*2
1723 IF(irby==0)THEN
1724C
1725C DX IL1
1726 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+1)
1727 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+2)
1728 bbufs(l+17) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+3)
1729C DV IL1
1730 bbufs(l+18) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+1)
1731 bbufs(l+19) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+2)
1732 bbufs(l+20) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+3)
1733C DX IL2
1734 bbufs(l+21) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+1)
1735 bbufs(l+22) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+2)
1736 bbufs(l+23) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+3)
1737C DV IL2
1738 bbufs(l+24) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+1)
1739 bbufs(l+25) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+2)
1740 bbufs(l+26) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+3)
1741C DAANC IL1
1742 bbufs(l+27) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+1)
1743 bbufs(l+28) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+2)
1744 bbufs(l+29) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+3)
1745C DAANC IL2
1746 bbufs(l+30) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+1)
1747 bbufs(l+31) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+2)
1748 bbufs(l+32) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+3)
1749C Alphak(2) IL1
1750 bbufs(l+33) = intbuf_tab(nin)%ALPHAK((il1-1)*3+2)
1751C Alphak(2) IL2
1752 bbufs(l+34) = intbuf_tab(nin)%ALPHAK((il2-1)*3+2)
1753C DA IL1
1754 CALL putdpdaanc(
1755 . intbuf_tab(nin)%DAANC6(1+(il1-1)*3*6*2),bbufs(l+35),iresp,
1756 . inc)
1757C L = L + INC
1758C DA IL2
1759 CALL putdpdaanc(
1760 . intbuf_tab(nin)%DAANC6(1+(il2-1)*3*6*2),bbufs(l+35+inc),iresp,
1761 . inc)
1762C L = L + INC
1763 ELSE
1764 bbufs(l+15) = zero
1765 bbufs(l+16) = zero
1766 bbufs(l+17) = zero
1767 bbufs(l+18) = zero
1768 bbufs(l+19) = zero
1769 bbufs(l+20) = zero
1770 bbufs(l+21) = zero
1771 bbufs(l+22) = zero
1772 bbufs(l+23) = zero
1773 bbufs(l+24) = zero
1774 bbufs(l+25) = zero
1775 bbufs(l+26) = zero
1776 bbufs(l+27) = zero
1777 bbufs(l+28) = zero
1778 bbufs(l+29) = zero
1779 bbufs(l+30) = zero
1780 bbufs(l+31) = zero
1781 bbufs(l+32) = zero
1782 bbufs(l+33) = zero
1783 bbufs(l+34) = zero
1784
1785 CALL putdpzero(zerodp,bbufs(l+35),iresp,inc)
1786 CALL putdpzero(zerodp,bbufs(l+35+inc),iresp,inc)
1787 ENDIF
1788 nod = intbuf_tab(nin)%NLG(il1)
1789 bbufs(l+35+2*inc) = diag_sms(nod)
1790 nod = intbuf_tab(nin)%NLG(il2)
1791 bbufs(l+36+2*inc) = diag_sms(nod)
1792 l = l + len20e
1793 ENDDO
1794 END IF
1795C fin AMS
1796
1797 ELSE
1798 IF(idtmins==0.AND.idtmins_int==0)THEN
1799 DO i = 1, nb
1800 n=nsvsie(nin)%P(ideb+i)
1801c IL1 = ISLINS(1,N)
1802 il1 = intbuf_tab(nin)%IXLINS(2*(n-1)+1)
1803c NOD = NLG(IL1)
1804 nod = intbuf_tab(nin)%NLG(il1)
1805 bbufs(l+1) = x(1,nod)
1806 bbufs(l+2) = x(2,nod)
1807 bbufs(l+3) = x(3,nod)
1808 bbufs(l+4) = v(1,nod)
1809 bbufs(l+5) = v(2,nod)
1810 bbufs(l+6) = v(3,nod)
1811c IL2 = ISLINS(1,N)
1812 il2 = intbuf_tab(nin)%IXLINS(2*(n-1)+2)
1813c NOD = NLG(IL2)
1814 nod = intbuf_tab(nin)%NLG(il2)
1815 bbufs(l+7) = x(1,nod)
1816 bbufs(l+8) = x(2,nod)
1817 bbufs(l+9) = x(3,nod)
1818 bbufs(l+10) = v(1,nod)
1819 bbufs(l+11) = v(2,nod)
1820 bbufs(l+12) = v(3,nod)
1821
1822 irby = ikine(nod) - (ikine(nod)/2)*2
1823 IF(irby==0)THEN
1824
1825C DX IL1
1826 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+1)
1827 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+2)
1828 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+3)
1829C DV IL1
1830 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+1)
1831 bbufs(l+17) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+2)
1832 bbufs(l+18) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+3)
1833C DX IL2
1834 bbufs(l+19) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+1)
1835 bbufs(l+20) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+2)
1836 bbufs(l+21) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+3)
1837C DV IL2
1838 bbufs(l+22) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+1)
1839 bbufs(l+23) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+2)
1840 bbufs(l+24) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+3)
1841C DAANC IL11
1842 bbufs(l+25) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+1)
1843 bbufs(l+26) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+2)
1844 bbufs(l+27) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+3)
1845C DAANC IL2
1846 bbufs(l+28) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+1)
1847 bbufs(l+29) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+2)
1848 bbufs(l+30) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+3)
1849C Alphak(2) IL1
1850 bbufs(l+31) = intbuf_tab(nin)%ALPHAK((il1-1)*3+2)
1851C Alphak(2) IL2
1852 bbufs(l+32) = intbuf_tab(nin)%ALPHAK((il2-1)*3+2)
1853C DA IL1
1854 CALL putdpdaanc(
1855 . intbuf_tab(nin)%DAANC6(1+(il1-1)*3*6*2),bbufs(l+33),iresp,
1856 . inc)
1857C L = L + INC
1858C DA IL2
1859 CALL putdpdaanc(
1860 . intbuf_tab(nin)%DAANC6(1+(il2-1)*3*6*2),bbufs(l+33+inc),iresp,
1861 . inc)
1862C L = L + INC
1863 ELSE
1864 bbufs(l+13) = zero
1865 bbufs(l+14) = zero
1866 bbufs(l+15) = zero
1867 bbufs(l+16) = zero
1868 bbufs(l+17) = zero
1869 bbufs(l+18) = zero
1870 bbufs(l+19) = zero
1871 bbufs(l+20) = zero
1872 bbufs(l+21) = zero
1873 bbufs(l+22) = zero
1874 bbufs(l+23) = zero
1875 bbufs(l+24) = zero
1876 bbufs(l+25) = zero
1877 bbufs(l+26) = zero
1878 bbufs(l+27) = zero
1879 bbufs(l+28) = zero
1880 bbufs(l+29) = zero
1881 bbufs(l+30) = zero
1882 bbufs(l+31) = zero
1883 bbufs(l+32) = zero
1884 CALL putdpzero(zerodp,bbufs(l+33),iresp,inc)
1885 CALL putdpzero(zerodp,bbufs(l+33+inc),iresp,inc)
1886 ENDIF
1887
1888 l = l + len20e
1889 ENDDO
1890C AMS
1891
1892 ELSE
1893 DO i = 1, nb
1894 n=nsvsie(nin)%P(ideb+i)
1895c IL1 = ISLINS(1,N)
1896 il1 = intbuf_tab(nin)%IXLINS(2*(n-1)+1)
1897c NOD = NLG(IL1)
1898 nod = intbuf_tab(nin)%NLG(il1)
1899 bbufs(l+1) = x(1,nod)
1900 bbufs(l+2) = x(2,nod)
1901 bbufs(l+3) = x(3,nod)
1902 bbufs(l+4) = v(1,nod)
1903 bbufs(l+5) = v(2,nod)
1904 bbufs(l+6) = v(3,nod)
1905c IL2 = ISLINS(1,N)
1906 il2 = intbuf_tab(nin)%IXLINS(2*(n-1)+2)
1907c NOD = NLG(IL2)
1908 nod = intbuf_tab(nin)%NLG(il2)
1909 bbufs(l+7) = x(1,nod)
1910 bbufs(l+8) = x(2,nod)
1911 bbufs(l+9) = x(3,nod)
1912 bbufs(l+10) = v(1,nod)
1913 bbufs(l+11) = v(2,nod)
1914 bbufs(l+12) = v(3,nod)
1915
1916 irby = ikine(nod) - (ikine(nod)/2)*2
1917 IF(irby==0)THEN
1918
1919C DX IL1
1920 bbufs(l+13) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+1)
1921 bbufs(l+14) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+2)
1922 bbufs(l+15) = intbuf_tab(nin)%AVX_ANCR((il1-1)*3+3)
1923C DV IL1
1924 bbufs(l+16) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+1)
1925 bbufs(l+17) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+2)
1926 bbufs(l+18) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il1-1)*3+3)
1927C DX IL2
1928 bbufs(l+19) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+1)
1929 bbufs(l+20) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+2)
1930 bbufs(l+21) = intbuf_tab(nin)%AVX_ANCR((il2-1)*3+3)
1931C DV IL2
1932 bbufs(l+22) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+1)
1933 bbufs(l+23) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+2)
1934 bbufs(l+24) = intbuf_tab(nin)%AVX_ANCR(3*nln + (il2-1)*3+3)
1935C DAANC IL1
1936 bbufs(l+25) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+1)
1937 bbufs(l+26) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+2)
1938 bbufs(l+27) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il1-1)*3+3)
1939C DAANC IL2
1940 bbufs(l+28) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+1)
1941 bbufs(l+29) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+2)
1942 bbufs(l+30) = intbuf_tab(nin)%AVX_ANCR(6*nln + (il2-1)*3+3)
1943C Alphak(2) IL1
1944 bbufs(l+31) = intbuf_tab(nin)%ALPHAK((il1-1)*3+2)
1945C Alphak(2) IL2
1946 bbufs(l+32) = intbuf_tab(nin)%ALPHAK((il2-1)*3+2)
1947C DA IL1
1948 CALL putdpdaanc(
1949 . intbuf_tab(nin)%DAANC6(1+(il1-1)*3*6*2),bbufs(l+33),iresp,
1950 . inc)
1951C L = L + INC
1952C DA IL2
1953 CALL putdpdaanc(
1954 . intbuf_tab(nin)%DAANC6(1+(il2-1)*3*6*2),bbufs(l+33+inc),iresp,
1955 . inc)
1956C L = L + INC
1957 ELSE
1958 bbufs(l+13) = zero
1959 bbufs(l+14) = zero
1960 bbufs(l+15) = zero
1961 bbufs(l+16) = zero
1962 bbufs(l+17) = zero
1963 bbufs(l+18) = zero
1964 bbufs(l+19) = zero
1965 bbufs(l+20) = zero
1966 bbufs(l+21) = zero
1967 bbufs(l+22) = zero
1968 bbufs(l+23) = zero
1969 bbufs(l+24) = zero
1970 bbufs(l+25) = zero
1971 bbufs(l+26) = zero
1972 bbufs(l+27) = zero
1973 bbufs(l+28) = zero
1974 bbufs(l+29) = zero
1975 bbufs(l+30) = zero
1976 bbufs(l+31) = zero
1977 bbufs(l+32) = zero
1978 CALL putdpzero(zerodp,bbufs(l+33),iresp,inc)
1979 CALL putdpzero(zerodp,bbufs(l+33+inc),iresp,inc)
1980 ENDIF
1981 nod = intbuf_tab(nin)%NLG(il1)
1982 bbufs(l+33+2*inc) = diag_sms(nod)
1983 nod = intbuf_tab(nin)%NLG(il2)
1984 bbufs(l+34+2*inc) = diag_sms(nod)
1985 l = l + len20e
1986 ENDDO
1987C fin AMS
1988 ENDIF
1989
1990 ENDIF
1991 debute(nin) = debute(nin) + nb
1992 END IF
1993 END IF ! end i20 edge
1994
1995C
1996C Extra Code for Type25 Edge
1997C
1998 iedge = ipari(58,nin)
1999 IF(ipari(7,nin)==25 .AND. iedge /= 0) THEN
2000 nb = nsnsie(nin)%P(p)
2001 ideb = debute(nin)
2002 IF(nb>0) THEN
2003 DO i = 1, nb
2004 n = nsvsie(nin)%P(ideb+i)
2005 assert(n > 0)
2006C PRINTIF((N-1)*NLEDGE < 0,N)
2007C PRINTIF(N > IPARI(68,NIN),N)
2008 nod = intbuf_tab(nin)%LEDGE((n-1)*nledge+5)
2009 bbufs(l+1) = x(1,nod)
2010 bbufs(l+2) = x(2,nod)
2011 bbufs(l+3) = x(3,nod)
2012 bbufs(l+4) = v(1,nod)
2013 bbufs(l+5) = v(2,nod)
2014 bbufs(l+6) = v(3,nod)
2015 bbufs(l+7) = ms(nod)
2016 nod = intbuf_tab(nin)%LEDGE((n-1)*nledge+6)
2017 bbufs(l+8) = x(1,nod)
2018 bbufs(l+9) = x(2,nod)
2019 bbufs(l+10) = x(3,nod)
2020 bbufs(l+11) = v(1,nod)
2021 bbufs(l+12) = v(2,nod)
2022 bbufs(l+13) = v(3,nod)
2023 bbufs(l+14) = ms(nod)
2024
2025c IAM=INTBUF_TAB(NIN)%LEDGE((N-1)*NLEDGE+1)
2026c JAM=INTBUF_TAB(NIN)%LEDGE((N-1)*NLEDGE+2)
2027c M1 =INTBUF_TAB(NIN)%LEDGE((N-1)*NLEDGE+5)
2028c M2 =INTBUF_TAB(NIN)%LEDGE((N-1)*NLEDGE+6)
2029
2030c IF(INTBUF_TAB(NIN)%IRECTM(JAM+(IAM-1)*4)==M1
2031c . .AND.INTBUF_TAB(NIN)%IRECTM(MOD(JAM,4)+1+(IAM-1)*4)==M2)THEN
2032c BBUFS(L+15) = ONE
2033c ELSEIF(INTBUF_TAB(NIN)%IRECTM(JAM+(IAM-1)*4)==M2
2034c . .AND.INTBUF_TAB(NIN)%IRECTM(MOD(JAM,4)+1+(IAM-1)*4)==M1)THEN
2035c BBUFS(L+15) = - ONE
2036c ELSE
2037c ASSERT(.FALSE.)
2038c ENDIF
2039
2040CC C verifier la portabilite:
2041CLONG = TRANSFER(short) => the last bits of LONG not specified in
2042Cthe standard
2043Cc'bbufs (l+16) = 0
2044Cc'bbufs (l+17) = 0
2045Cc'bbufs (l+18) = 0
2046Cc'bbufs (l+19) = 0
2047CC BBUFS(L+16) = TRANSFER(INTBUF_TAB(NIN)%LEDGE((N-1)*NLEDGE+1),ONE)
2048CC BBUFS(L+17) = TRANSFER(INTBUF_TAB(NIN)%LEDGE((N-1)*NLEDGE+2),ONE)
2049CC BBUFS(L+18) = TRANSFER(INTBUF_TAB(NIN)%LEDGE((N-1)*NLEDGE+3),ONE)
2050CC BBUFS(L+19) = TRANSFER(INTBUF_TAB(NIN)%LEDGE((N-1)*NLEDGE+4),ONE)
2051
2052C WRITE(6,"(A,4I10)") "--",INTBUF_TAB(NIN)%LEDGE((N-1)*NLEDGE+1:(N-1)*NLEDGE+4)
2053
2054
2055C BBUFS(L+15) = INTBUF_TAB(NIN)%EDGE_BISECTOR(TO1D(1,JE,IE,3,4))
2056C BBUFS(L+16) = INTBUF_TAB(NIN)%EDGE_BISECTOR(TO1D(2,JE,IE,3,4))
2057C BBUFS(L+17) = INTBUF_TAB(NIN)%EDGE_BISECTOR(TO1D(3,JE,IE,3,4))
2058C BBUFS(L+15) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(1,1,I1,3,2))
2059C BBUFS(L+16) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(2,1,I1,3,2))
2060C BBUFS(L+17) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(3,1,I1,3,2))
2061C BBUFS(L+18) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(1,2,I1,3,2))
2062C BBUFS(L+19) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(2,2,I1,3,2))
2063C BBUFS(L+20) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(3,2,I1,3,2))
2064C BBUFS(L+21) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(1,1,I2,3,2))
2065C BBUFS(L+22) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(2,1,I2,3,2))
2066C BBUFS(L+23) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(3,1,I2,3,2))
2067C BBUFS(L+24) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(1,2,I2,3,2))
2068C BBUFS(L+25) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(2,2,I2,3,2))
2069C BBUFS(L+26) = INTBUF_TAB(NIN)%VTX_BISECTOR(TO1D(3,2,I2,3,2))
2070
2071C BBUFS(L+27) = 1 ! main of the edge
2072
2073 l = l + len25e
2074 ENDDO
2075 debute(nin) = debute(nin) + nb
2076 ENDIF
2077 ENDIF
2078 ENDDO
2079 siz = l+1-add
2080 IF(siz>0)THEN
2081 msgtyp = msgoff
2082C Bufr: Reception Part Force and Shipping Party Speed
2083 CALL mpi_isend(
2084 . bbufs(add),siz,real ,it_spmd(p),msgtyp,
2085 . spmd_comm_world,req_si(p),ierror )
2086 ENDIF
2087 ENDIF
2088 ENDDO
2089 adds(nspmd+1)=adds(nspmd)+siz
2090C
2091C Buffer reception and decompacting
2092C
2093 ELSEIF(iflag==2.OR.iflag==3)THEN
2094 IF(istocom==1)THEN
2095C
2096 DO ii = 1, nbintc
2097 nin = intlist(ii)
2098 debut(nin) = 0
2099 debute(nin) = 0
2100 ENDDO
2101C
2102C Attente IRECV
2103C
2104 DO p = 1, nspmd
2105 IF(addr(p+1)-addr(p)>0) THEN
2106 CALL mpi_wait(req_ri(p),status,ierror)
2107 l = addr(p)-1
2108C DO NIN = 1, NINTER
2109 DO ii = 1, nbintc
2110 nin = intlist(ii)
2111 nb = nsnfi(nin)%P(p)
2112 lsav=l
2113 IF(nb>0)THEN
2114 ideb = debut(nin)
2115 nty =ipari(7,nin)
2116 intth = ipari(47,nin)
2117 intnitsche = ipari(86,nin)
2118 ifsub_carea = .false.
2119 IF(nty == 25.AND.interfaces%PARAMETERS%INTCAREA > 0.AND.nisub > 0) THEN ! if Carea output for TH and subinterfaces
2120 ifsub_carea = .true.
2121 ELSEIF(nty==24.AND.interfaces%PARAMETERS%INTCAREA > 0) THEN ! if Carea output for TH and subinterfaces
2122 ifsub_carea = .true.
2123 ENDIF
2124 IF((nty==7.AND.intth == 0).OR.nty==10.OR.
2125 . (nty==22.AND.intth == 0).OR.
2126 . (nty==23.AND.intth == 0).OR.
2127 . (nty==24.AND.intth == 0.AND.intnitsche == 0).OR.
2128 . (nty==25.AND.intth == 0) )THEN
2129 IF(dt_cst/=0)THEN
2130 IF (includ_x==1) THEN
2131 DO i = 1, nb
2132 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2133 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2134 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2135 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2136 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2137 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2138 msfi(nin)%P(i+ideb) = bbufr(l+7)
2139 l = l + len
2140 ENDDO
2141 point=7
2142 ELSE
2143 DO i = 1, nb
2144 vfi(nin)%P(1,i+ideb) = bbufr(l+1)
2145 vfi(nin)%P(2,i+ideb) = bbufr(l+2)
2146 vfi(nin)%P(3,i+ideb) = bbufr(l+3)
2147 msfi(nin)%P(i+ideb) = bbufr(l+4)
2148 vdt = dt2prev*bbufr(l+1)
2149 xfi(nin)%P(1,i+ideb) = xfi(nin)%P(1,i+ideb) +vdt
2150 vdt = dt2prev*bbufr(l+2)
2151 xfi(nin)%P(2,i+ideb) = xfi(nin)%P(2,i+ideb) +vdt
2152 vdt = dt2prev*bbufr(l+3)
2153 xfi(nin)%P(3,i+ideb) = xfi(nin)%P(3,i+ideb) +vdt
2154 l = l + len
2155 ENDDO
2156 point=4
2157 ENDIF
2158 ELSE
2159 IF (includ_x==1) THEN
2160 DO i = 1, nb
2161 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2162 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2163 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2164 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2165 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2166 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2167 l = l + len
2168 ENDDO
2169 point=6
2170 ELSE
2171 DO i = 1, nb
2172 vfi(nin)%P(1,i+ideb) = bbufr(l+1)
2173 vfi(nin)%P(2,i+ideb) = bbufr(l+2)
2174 vfi(nin)%P(3,i+ideb) = bbufr(l+3)
2175 vdt = dt2prev*bbufr(l+1)
2176 xfi(nin)%P(1,i+ideb) = xfi(nin)%P(1,i+ideb) +vdt
2177 vdt = dt2prev*bbufr(l+2)
2178 xfi(nin)%P(2,i+ideb) = xfi(nin)%P(2,i+ideb) +vdt
2179 vdt = dt2prev*bbufr(l+3)
2180 xfi(nin)%P(3,i+ideb) = xfi(nin)%P(3,i+ideb) +vdt
2181 l = l + len
2182 ENDDO
2183 point=3
2184 ENDIF
2185 ENDIF
2186
2187 IF(ifsub_carea) THEN
2188 DO i = 1, nb
2189 intareanfi(nin)%P(i+ideb) = bbufr(l+1)
2190 l = l + 1
2191 ENDDO
2192 ENDIF
2193C
2194 ELSEIF((nty ==7 .AND. intth > 0 ).OR.
2195 . (nty ==25 .AND. intth > 0 ).OR.
2196 . (nty ==24 .AND. intth > 0 .AND.intnitsche == 0).OR.
2197 . (nty ==23 .AND. intth > 0 ).OR.
2198 . (nty ==22 .AND. intth > 0 )) THEN
2199 IF(dt_cst/=0)THEN
2200 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
2201 DO i = 1, nb
2202 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2203 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2204 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2205 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2206 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2207 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2208 msfi(nin)%P(i+ideb) = bbufr(l+7)
2209 tempfi(nin)%P(i+ideb)= bbufr(l+8)
2210 l = l + len7t
2211 ENDDO
2212 point=8
2213 ELSE
2214 DO i = 1, nb
2215 vfi(nin)%P(1,i+ideb) = bbufr(l+1)
2216 vfi(nin)%P(2,i+ideb) = bbufr(l+2)
2217 vfi(nin)%P(3,i+ideb) = bbufr(l+3)
2218 msfi(nin)%P(i+ideb) = bbufr(l+4)
2219 tempfi(nin)%P(i+ideb)= bbufr(l+5)
2220 vdt = dt2prev*bbufr(l+1)
2221 xfi(nin)%P(1,i+ideb) = xfi(nin)%P(1,i+ideb) +vdt
2222 vdt = dt2prev*bbufr(l+2)
2223 xfi(nin)%P(2,i+ideb) = xfi(nin)%P(2,i+ideb) +vdt
2224 vdt = dt2prev*bbufr(l+3)
2225 xfi(nin)%P(3,i+ideb) = xfi(nin)%P(3,i+ideb) +vdt
2226 l = l + len7t
2227 ENDDO
2228 point=5
2229 ENDIF
2230 ELSE
2231 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
2232 DO i = 1, nb
2233 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2234 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2235 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2236 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2237 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2238 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2239 tempfi(nin)%P(i+ideb)= bbufr(l+7)
2240 l = l + len7t
2241 ENDDO
2242 point=7
2243 ELSE
2244 DO i = 1, nb
2245 vfi(nin)%P(1,i+ideb) = bbufr(l+1)
2246 vfi(nin)%P(2,i+ideb) = bbufr(l+2)
2247 vfi(nin)%P(3,i+ideb) = bbufr(l+3)
2248 tempfi(nin)%P(i+ideb)= bbufr(l+4)
2249 vdt = dt2prev*bbufr(l+1)
2250 xfi(nin)%P(1,i+ideb) = xfi(nin)%P(1,i+ideb)+vdt
2251 vdt = dt2prev*bbufr(l+2)
2252 xfi(nin)%P(2,i+ideb) = xfi(nin)%P(2,i+ideb)+vdt
2253 vdt = dt2prev*bbufr(l+3)
2254 xfi(nin)%P(3,i+ideb) = xfi(nin)%P(3,i+ideb)+vdt
2255 l = l + len7t
2256 ENDDO
2257 point=4
2258 ENDIF
2259 ENDIF
2260
2261 IF(ifsub_carea) THEN
2262 DO i = 1, nb
2263 intareanfi(nin)%P(i+ideb) = bbufr(l+1)
2264 l = l + 1
2265 ENDDO
2266 ENDIF
2267
2268C--- Nitsche
2269 ELSEIF(nty==24.AND.intth == 0.AND.intnitsche > 0)THEN
2270 IF(dt_cst/=0)THEN
2271 IF (includ_x==1) THEN
2272 DO i = 1, nb
2273 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2274 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2275 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2276 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2277 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2278 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2279 msfi(nin)%P(i+ideb) = bbufr(l+7)
2280 forneqsfi(nin)%P(1,i+ideb) = bbufr(l+8)
2281 forneqsfi(nin)%P(2,i+ideb) = bbufr(l+9)
2282 forneqsfi(nin)%P(3,i+ideb) = bbufr(l+10)
2283 l = l + len !+ 3
2284 ENDDO
2285 point=7
2286 ELSE
2287 DO i = 1, nb
2288 vfi(nin)%P(1,i+ideb) = bbufr(l+1)
2289 vfi(nin)%P(2,i+ideb) = bbufr(l+2)
2290 vfi(nin)%P(3,i+ideb) = bbufr(l+3)
2291 msfi(nin)%P(i+ideb) = bbufr(l+4)
2292 vdt = dt2prev*bbufr(l+1)
2293 xfi(nin)%P(1,i+ideb) = xfi(nin)%P(1,i+ideb) +vdt
2294 vdt = dt2prev*bbufr(l+2)
2295 xfi(nin)%P(2,i+ideb) = xfi(nin)%P(2,i+ideb) +vdt
2296 vdt = dt2prev*bbufr(l+3)
2297 xfi(nin)%P(3,i+ideb) = xfi(nin)%P(3,i+ideb) +vdt
2298 forneqsfi(nin)%P(1,i+ideb) = bbufr(l+5)
2299 forneqsfi(nin)%P(2,i+ideb) = bbufr(l+6)
2300 forneqsfi(nin)%P(3,i+ideb) = bbufr(l+7)
2301 l = l + len
2302 ENDDO
2303 point=6
2304 ENDIF
2305 ELSE
2306 IF (includ_x==1) THEN
2307 DO i = 1, nb
2308 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2309 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2310 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2311 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2312 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2313 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2314 forneqsfi(nin)%P(1,i+ideb) = bbufr(l+7)
2315 forneqsfi(nin)%P(2,i+ideb) = bbufr(l+8)
2316 forneqsfi(nin)%P(3,i+ideb) = bbufr(l+9)
2317 l = l + len
2318 ENDDO
2319 point=9
2320 ELSE
2321 DO i = 1, nb
2322 vfi(nin)%P(1,i+ideb) = bbufr(l+1)
2323 vfi(nin)%P(2,i+ideb) = bbufr(l+2)
2324 vfi(nin)%P(3,i+ideb) = bbufr(l+3)
2325 vdt = dt2prev*bbufr(l+1)
2326 xfi(nin)%P(1,i+ideb) = xfi(nin)%P(1,i+ideb) +vdt
2327 vdt = dt2prev*bbufr(l+2)
2328 xfi(nin)%P(2,i+ideb) = xfi(nin)%P(2,i+ideb) +vdt
2329 vdt = dt2prev*bbufr(l+3)
2330 xfi(nin)%P(3,i+ideb) = xfi(nin)%P(3,i+ideb) +vdt
2331 forneqsfi(nin)%P(1,i+ideb) = bbufr(l+4)
2332 forneqsfi(nin)%P(2,i+ideb) = bbufr(l+5)
2333 forneqsfi(nin)%P(3,i+ideb) = bbufr(l+6)
2334 l = l + len
2335 ENDDO
2336 point=6
2337 ENDIF
2338 ENDIF
2339
2340 IF(ifsub_carea) THEN
2341 DO i = 1, nb
2342 intareanfi(nin)%P(i+ideb) = bbufr(l+1)
2343 l = l + 1
2344 ENDDO
2345 ENDIF
2346C
2347 ELSEIF(nty==24.AND.intth > 0.AND.intnitsche > 0) THEN
2348 IF(dt_cst/=0)THEN
2349 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
2350 DO i = 1, nb
2351 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2352 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2353 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2354 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2355 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2356 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2357 msfi(nin)%P(i+ideb) = bbufr(l+7)
2358 tempfi(nin)%P(i+ideb)= bbufr(l+8)
2359 forneqsfi(nin)%P(1,i+ideb) = bbufr(l+9)
2360 forneqsfi(nin)%P(2,i+ideb) = bbufr(l+10)
2361 forneqsfi(nin)%P(3,i+ideb) = bbufr(l+11)
2362 l = l + len7t
2363 ENDDO
2364 point=11
2365 ELSE
2366 DO i = 1, nb
2367 vfi(nin)%P(1,i+ideb) = bbufr(l+1)
2368 vfi(nin)%P(2,i+ideb) = bbufr(l+2)
2369 vfi(nin)%P(3,i+ideb) = bbufr(l+3)
2370 msfi(nin)%P(i+ideb) = bbufr(l+4)
2371 tempfi(nin)%P(i+ideb)= bbufr(l+5)
2372 vdt = dt2prev*bbufr(l+1)
2373 xfi(nin)%P(1,i+ideb) = xfi(nin)%P(1,i+ideb) +vdt
2374 vdt = dt2prev*bbufr(l+2)
2375 xfi(nin)%P(2,i+ideb) = xfi(nin)%P(2,i+ideb) +vdt
2376 vdt = dt2prev*bbufr(l+3)
2377 xfi(nin)%P(3,i+ideb) = xfi(nin)%P(3,i+ideb) +vdt
2378 forneqsfi(nin)%P(1,i+ideb) = bbufr(l+6)
2379 forneqsfi(nin)%P(2,i+ideb) = bbufr(l+7)
2380 forneqsfi(nin)%P(3,i+ideb) = bbufr(l+8)
2381 l = l + len7t
2382 ENDDO
2383 point=8
2384 ENDIF
2385 ELSE
2386 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
2387 DO i = 1, nb
2388 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2389 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2390 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2391 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2392 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2393 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2394 tempfi(nin)%P(i+ideb)= bbufr(l+7)
2395 forneqsfi(nin)%P(1,i+ideb) = bbufr(l+8)
2396 forneqsfi(nin)%P(2,i+ideb) = bbufr(l+9)
2397 forneqsfi(nin)%P(3,i+ideb) = bbufr(l+10)
2398 l = l + len7t
2399 ENDDO
2400 point=10
2401 ELSE
2402 DO i = 1, nb
2403 vfi(nin)%P(1,i+ideb) = bbufr(l+1)
2404 vfi(nin)%P(2,i+ideb) = bbufr(l+2)
2405 vfi(nin)%P(3,i+ideb) = bbufr(l+3)
2406 tempfi(nin)%P(i+ideb)= bbufr(l+4)
2407 vdt = dt2prev*bbufr(l+1)
2408 xfi(nin)%P(1,i+ideb) = xfi(nin)%P(1,i+ideb)+vdt
2409 vdt = dt2prev*bbufr(l+2)
2410 xfi(nin)%P(2,i+ideb) = xfi(nin)%P(2,i+ideb)+vdt
2411 vdt = dt2prev*bbufr(l+3)
2412 xfi(nin)%P(3,i+ideb) = xfi(nin)%P(3,i+ideb)+vdt
2413 forneqsfi(nin)%P(1,i+ideb) = bbufr(l+5)
2414 forneqsfi(nin)%P(2,i+ideb) = bbufr(l+6)
2415 forneqsfi(nin)%P(3,i+ideb) = bbufr(l+7)
2416 l = l + len7t
2417 ENDDO
2418 point=7
2419 ENDIF
2420 ENDIF
2421
2422C
2423 IF(ifsub_carea) THEN
2424 DO i = 1, nb
2425 intareanfi(nin)%P(i+ideb) = bbufr(l+1)
2426 l = l + 1
2427 ENDDO
2428 ENDIF
2429
2430
2431C----
2432 ELSEIF(nty==11.AND.intth == 0)THEN
2433C type 11
2434 IF(dt_cst/=0)THEN
2435 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
2436 DO i = 1, nb
2437 n1 = 2*(i+ideb-1)+1
2438 n2 = 2*(i+ideb)
2439 xfi(nin)%P(1,n1) = bbufr(l+1)
2440 xfi(nin)%P(2,n1) = bbufr(l+2)
2441 xfi(nin)%P(3,n1) = bbufr(l+3)
2442 vfi(nin)%P(1,n1) = bbufr(l+4)
2443 vfi(nin)%P(2,n1) = bbufr(l+5)
2444 vfi(nin)%P(3,n1) = bbufr(l+6)
2445 msfi(nin)%P(n1) = bbufr(l+7)
2446 xfi(nin)%P(1,n2) = bbufr(l+8)
2447 xfi(nin)%P(2,n2) = bbufr(l+9)
2448 xfi(nin)%P(3,n2) = bbufr(l+10)
2449 vfi(nin)%P(1,n2) = bbufr(l+11)
2450 vfi(nin)%P(2,n2) = bbufr(l+12)
2451 vfi(nin)%P(3,n2) = bbufr(l+13)
2452 msfi(nin)%P(n2) = bbufr(l+14)
2453 l = l + len11
2454 ENDDO
2455 ELSE
2456 DO i = 1, nb
2457 n1 = 2*(i+ideb-1)+1
2458 n2 = 2*(i+ideb)
2459 vfi(nin)%P(1,n1) = bbufr(l+1)
2460 vfi(nin)%P(2,n1) = bbufr(l+2)
2461 vfi(nin)%P(3,n1) = bbufr(l+3)
2462 msfi(nin)%P(n1) = bbufr(l+4)
2463 vdt = dt2prev*bbufr(l+1)
2464 xfi(nin)%P(1,n1) = xfi(nin)%P(1,n1) + vdt
2465 vdt = dt2prev*bbufr(l+2)
2466 xfi(nin)%P(2,n1) = xfi(nin)%P(2,n1) + vdt
2467 vdt = dt2prev*bbufr(l+3)
2468 xfi(nin)%P(3,n1) = xfi(nin)%P(3,n1) + vdt
2469 vfi(nin)%P(1,n2) = bbufr(l+5)
2470 vfi(nin)%P(2,n2) = bbufr(l+6)
2471 vfi(nin)%P(3,n2) = bbufr(l+7)
2472 msfi(nin)%P(n2) = bbufr(l+8)
2473 vdt = dt2prev*bbufr(l+5)
2474 xfi(nin)%P(1,n2) = xfi(nin)%P(1,n2) + vdt
2475 vdt = dt2prev*bbufr(l+6)
2476 xfi(nin)%P(2,n2) = xfi(nin)%P(2,n2) + vdt
2477 vdt = dt2prev*bbufr(l+7)
2478 xfi(nin)%P(3,n2) = xfi(nin)%P(3,n2) + vdt
2479 l = l + len11
2480 ENDDO
2481 ENDIF
2482 ELSE
2483 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
2484 DO i = 1, nb
2485 n1 = 2*(i+ideb-1)+1
2486 n2 = 2*(i+ideb)
2487 xfi(nin)%P(1,n1) = bbufr(l+1)
2488 xfi(nin)%P(2,n1) = bbufr(l+2)
2489 xfi(nin)%P(3,n1) = bbufr(l+3)
2490 vfi(nin)%P(1,n1) = bbufr(l+4)
2491 vfi(nin)%P(2,n1) = bbufr(l+5)
2492 vfi(nin)%P(3,n1) = bbufr(l+6)
2493 xfi(nin)%P(1,n2) = bbufr(l+7)
2494 xfi(nin)%P(2,n2) = bbufr(l+8)
2495 xfi(nin)%P(3,n2) = bbufr(l+9)
2496 vfi(nin)%P(1,n2) = bbufr(l+10)
2497 vfi(nin)%P(2,n2) = bbufr(l+11)
2498 vfi(nin)%P(3,n2) = bbufr(l+12)
2499 l = l + len11
2500 ENDDO
2501 ELSE
2502 DO i = 1, nb
2503 n1 = 2*(i+ideb-1)+1
2504 n2 = 2*(i+ideb)
2505 vfi(nin)%P(1,n1) = bbufr(l+1)
2506 vfi(nin)%P(2,n1) = bbufr(l+2)
2507 vfi(nin)%P(3,n1) = bbufr(l+3)
2508 vdt = dt2prev*bbufr(l+1)
2509 xfi(nin)%P(1,n1) = xfi(nin)%P(1,n1) + vdt
2510 vdt = dt2prev*bbufr(l+2)
2511 xfi(nin)%P(2,n1) = xfi(nin)%P(2,n1) + vdt
2512 vdt = dt2prev*bbufr(l+3)
2513 xfi(nin)%P(3,n1) = xfi(nin)%P(3,n1) + vdt
2514 vfi(nin)%P(1,n2) = bbufr(l+4)
2515 vfi(nin)%P(2,n2) = bbufr(l+5)
2516 vfi(nin)%P(3,n2) = bbufr(l+6)
2517 vdt = dt2prev*bbufr(l+4)
2518 xfi(nin)%P(1,n2) = xfi(nin)%P(1,n2) + vdt
2519 vdt = dt2prev*bbufr(l+5)
2520 xfi(nin)%P(2,n2) = xfi(nin)%P(2,n2) + vdt
2521 vdt = dt2prev*bbufr(l+6)
2522 xfi(nin)%P(3,n2) = xfi(nin)%P(3,n2) + vdt
2523 l = l + len11
2524 ENDDO
2525 ENDIF
2526 ENDIF
2527C type 11+ thermal modelling
2528 ELSEIF(nty==11.AND.intth > 0)THEN
2529 IF(dt_cst/=0)THEN
2530 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
2531 DO i = 1, nb
2532 n1 = 2*(i+ideb-1)+1
2533 n2 = 2*(i+ideb)
2534 xfi(nin)%P(1,n1) = bbufr(l+1)
2535 xfi(nin)%P(2,n1) = bbufr(l+2)
2536 xfi(nin)%P(3,n1) = bbufr(l+3)
2537 vfi(nin)%P(1,n1) = bbufr(l+4)
2538 vfi(nin)%P(2,n1) = bbufr(l+5)
2539 vfi(nin)%P(3,n1) = bbufr(l+6)
2540 msfi(nin)%P(n1) = bbufr(l+7)
2541 tempfi(nin)%P(n1)= bbufr(l+8)
2542 xfi(nin)%P(1,n2) = bbufr(l+9)
2543 xfi(nin)%P(2,n2) = bbufr(l+10)
2544 xfi(nin)%P(3,n2) = bbufr(l+11)
2545 vfi(nin)%P(1,n2) = bbufr(l+12)
2546 vfi(nin)%P(2,n2) = bbufr(l+13)
2547 vfi(nin)%P(3,n2) = bbufr(l+14)
2548 msfi(nin)%P(n2) = bbufr(l+15)
2549 tempfi(nin)%P(n2)= bbufr(l+16)
2550 l = l + len11t
2551 ENDDO
2552 ELSE
2553 DO i = 1, nb
2554 n1 = 2*(i+ideb-1)+1
2555 n2 = 2*(i+ideb)
2556 vfi(nin)%P(1,n1) = bbufr(l+1)
2557 vfi(nin)%P(2,n1) = bbufr(l+2)
2558 vfi(nin)%P(3,n1) = bbufr(l+3)
2559 msfi(nin)%P(n1) = bbufr(l+4)
2560 tempfi(nin)%P(n1)= bbufr(l+5)
2561 vdt = dt2prev*bbufr(l+1)
2562 xfi(nin)%P(1,n1) = xfi(nin)%P(1,n1) + vdt
2563 vdt = dt2prev*bbufr(l+2)
2564 xfi(nin)%P(2,n1) = xfi(nin)%P(2,n1) + vdt
2565 vdt = dt2prev*bbufr(l+3)
2566 xfi(nin)%P(3,n1) = xfi(nin)%P(3,n1) + vdt
2567 vfi(nin)%P(1,n2) = bbufr(l+6)
2568 vfi(nin)%P(2,n2) = bbufr(l+7)
2569 vfi(nin)%P(3,n2) = bbufr(l+8)
2570 msfi(nin)%P(n2) = bbufr(l+9)
2571 tempfi(nin)%P(n2)= bbufr(l+10)
2572 vdt = dt2prev*bbufr(l+6)
2573 xfi(nin)%P(1,n2) = xfi(nin)%P(1,n2) + vdt
2574 vdt = dt2prev*bbufr(l+7)
2575 xfi(nin)%P(2,n2) = xfi(nin)%P(2,n2) + vdt
2576 vdt = dt2prev*bbufr(l+8)
2577 xfi(nin)%P(3,n2) = xfi(nin)%P(3,n2) + vdt
2578 l = l + len11t
2579 ENDDO
2580 ENDIF
2581 ELSE
2582 IF (iresp==1.OR.impl_s==1.OR.nbi18>0) THEN
2583 DO i = 1, nb
2584 n1 = 2*(i+ideb-1)+1
2585 n2 = 2*(i+ideb)
2586 xfi(nin)%P(1,n1) = bbufr(l+1)
2587 xfi(nin)%P(2,n1) = bbufr(l+2)
2588 xfi(nin)%P(3,n1) = bbufr(l+3)
2589 vfi(nin)%P(1,n1) = bbufr(l+4)
2590 vfi(nin)%P(2,n1) = bbufr(l+5)
2591 vfi(nin)%P(3,n1) = bbufr(l+6)
2592 tempfi(nin)%P(n1)= bbufr(l+7)
2593 xfi(nin)%P(1,n2) = bbufr(l+8)
2594 xfi(nin)%P(2,n2) = bbufr(l+9)
2595 xfi(nin)%P(3,n2) = bbufr(l+10)
2596 vfi(nin)%P(1,n2) = bbufr(l+11)
2597 vfi(nin)%P(2,n2) = bbufr(l+12)
2598 vfi(nin)%P(3,n2) = bbufr(l+13)
2599 tempfi(nin)%P(n1)= bbufr(l+14)
2600 l = l + len11t
2601 ENDDO
2602 ELSE
2603 DO i = 1, nb
2604 n1 = 2*(i+ideb-1)+1
2605 n2 = 2*(i+ideb)
2606 vfi(nin)%P(1,n1) = bbufr(l+1)
2607 vfi(nin)%P(2,n1) = bbufr(l+2)
2608 vfi(nin)%P(3,n1) = bbufr(l+3)
2609 vdt = dt2prev*bbufr(l+1)
2610 xfi(nin)%P(1,n1) = xfi(nin)%P(1,n1) + vdt
2611 vdt = dt2prev*bbufr(l+2)
2612 xfi(nin)%P(2,n1) = xfi(nin)%P(2,n1) + vdt
2613 vdt = dt2prev*bbufr(l+3)
2614 xfi(nin)%P(3,n1) = xfi(nin)%P(3,n1) + vdt
2615 tempfi(nin)%P(n1)= bbufr(l+4)
2616 vfi(nin)%P(1,n2) = bbufr(l+5)
2617 vfi(nin)%P(2,n2) = bbufr(l+6)
2618 vfi(nin)%P(3,n2) = bbufr(l+7)
2619 tempfi(nin)%P(n2)= bbufr(l+8)
2620 vdt = dt2prev*bbufr(l+5)
2621 xfi(nin)%P(1,n2) = xfi(nin)%P(1,n2) + vdt
2622 vdt = dt2prev*bbufr(l+6)
2623 xfi(nin)%P(2,n2) = xfi(nin)%P(2,n2) + vdt
2624 vdt = dt2prev*bbufr(l+7)
2625 xfi(nin)%P(3,n2) = xfi(nin)%P(3,n2) + vdt
2626 l = l + len11t
2627 ENDDO
2628 ENDIF
2629 ENDIF
2630
2631
2632 ELSEIF(nty==17)THEN
2633C type 17
2634 DO i = 1, nb
2635 nn = i+ideb
2636 xfi17(nin)%P(1,1,nn) = bbufr(l+1)
2637 xfi17(nin)%P(2,1,nn) = bbufr(l+2)
2638 xfi17(nin)%P(3,1,nn) = bbufr(l+3)
2639 vfi17(nin)%P(1,1,nn) = bbufr(l+4)
2640 vfi17(nin)%P(2,1,nn) = bbufr(l+5)
2641 vfi17(nin)%P(3,1,nn) = bbufr(l+6)
2642 xfi17(nin)%P(1,2,nn) = bbufr(l+7)
2643 xfi17(nin)%P(2,2,nn) = bbufr(l+8)
2644 xfi17(nin)%P(3,2,nn) = bbufr(l+9)
2645 vfi17(nin)%P(1,2,nn) = bbufr(l+10)
2646 vfi17(nin)%P(2,2,nn) = bbufr(l+11)
2647 vfi17(nin)%P(3,2,nn) = bbufr(l+12)
2648 xfi17(nin)%P(1,3,nn) = bbufr(l+13)
2649 xfi17(nin)%P(2,3,nn) = bbufr(l+14)
2650 xfi17(nin)%P(3,3,nn) = bbufr(l+15)
2651 vfi17(nin)%P(1,3,nn) = bbufr(l+16)
2652 vfi17(nin)%P(2,3,nn) = bbufr(l+17)
2653 vfi17(nin)%P(3,3,nn) = bbufr(l+18)
2654 xfi17(nin)%P(1,4,nn) = bbufr(l+19)
2655 xfi17(nin)%P(2,4,nn) = bbufr(l+20)
2656 xfi17(nin)%P(3,4,nn) = bbufr(l+21)
2657 vfi17(nin)%P(1,4,nn) = bbufr(l+22)
2658 vfi17(nin)%P(2,4,nn) = bbufr(l+23)
2659 vfi17(nin)%P(3,4,nn) = bbufr(l+24)
2660 xfi17(nin)%P(1,5,nn) = bbufr(l+25)
2661 xfi17(nin)%P(2,5,nn) = bbufr(l+26)
2662 xfi17(nin)%P(3,5,nn) = bbufr(l+27)
2663 vfi17(nin)%P(1,5,nn) = bbufr(l+28)
2664 vfi17(nin)%P(2,5,nn) = bbufr(l+29)
2665 vfi17(nin)%P(3,5,nn) = bbufr(l+30)
2666 xfi17(nin)%P(1,6,nn) = bbufr(l+31)
2667 xfi17(nin)%P(2,6,nn) = bbufr(l+32)
2668 xfi17(nin)%P(3,6,nn) = bbufr(l+33)
2669 vfi17(nin)%P(1,6,nn) = bbufr(l+34)
2670 vfi17(nin)%P(2,6,nn) = bbufr(l+35)
2671 vfi17(nin)%P(3,6,nn) = bbufr(l+36)
2672 xfi17(nin)%P(1,7,nn) = bbufr(l+37)
2673 xfi17(nin)%P(2,7,nn) = bbufr(l+38)
2674 xfi17(nin)%P(3,7,nn) = bbufr(l+39)
2675 vfi17(nin)%P(1,7,nn) = bbufr(l+40)
2676 vfi17(nin)%P(2,7,nn) = bbufr(l+41)
2677 vfi17(nin)%P(3,7,nn) = bbufr(l+42)
2678 xfi17(nin)%P(1,8,nn) = bbufr(l+43)
2679 xfi17(nin)%P(2,8,nn) = bbufr(l+44)
2680 xfi17(nin)%P(3,8,nn) = bbufr(l+45)
2681 vfi17(nin)%P(1,8,nn) = bbufr(l+46)
2682 vfi17(nin)%P(2,8,nn) = bbufr(l+47)
2683 vfi17(nin)%P(3,8,nn) = bbufr(l+48)
2684 xfi17(nin)%P(1,9,nn) = bbufr(l+49)
2685 xfi17(nin)%P(2,9,nn) = bbufr(l+50)
2686 xfi17(nin)%P(3,9,nn) = bbufr(l+51)
2687 vfi17(nin)%P(1,9,nn) = bbufr(l+52)
2688 vfi17(nin)%P(2,9,nn) = bbufr(l+53)
2689 vfi17(nin)%P(3,9,nn) = bbufr(l+54)
2690 xfi17(nin)%P(1,10,nn) =bbufr(l+55)
2691 xfi17(nin)%P(2,10,nn) =bbufr(l+56)
2692 xfi17(nin)%P(3,10,nn) =bbufr(l+57)
2693 vfi17(nin)%P(1,10,nn) =bbufr(l+58)
2694 vfi17(nin)%P(2,10,nn) =bbufr(l+59)
2695 vfi17(nin)%P(3,10,nn) =bbufr(l+60)
2696 xfi17(nin)%P(1,11,nn) =bbufr(l+61)
2697 xfi17(nin)%P(2,11,nn) =bbufr(l+62)
2698 xfi17(nin)%P(3,11,nn) =bbufr(l+63)
2699 vfi17(nin)%P(1,11,nn) =bbufr(l+64)
2700 vfi17(nin)%P(2,11,nn) =bbufr(l+65)
2701 vfi17(nin)%P(3,11,nn) =bbufr(l+66)
2702 xfi17(nin)%P(1,12,nn) =bbufr(l+67)
2703 xfi17(nin)%P(2,12,nn) =bbufr(l+68)
2704 xfi17(nin)%P(3,12,nn) =bbufr(l+69)
2705 vfi17(nin)%P(1,12,nn) =bbufr(l+70)
2706 vfi17(nin)%P(2,12,nn) =bbufr(l+71)
2707 vfi17(nin)%P(3,12,nn) =bbufr(l+72)
2708 xfi17(nin)%P(1,13,nn) =bbufr(l+73)
2709 xfi17(nin)%P(2,13,nn) =bbufr(l+74)
2710 xfi17(nin)%P(3,13,nn) =bbufr(l+75)
2711 vfi17(nin)%P(1,13,nn) =bbufr(l+76)
2712 vfi17(nin)%P(2,13,nn) =bbufr(l+77)
2713 vfi17(nin)%P(3,13,nn) =bbufr(l+78)
2714 xfi17(nin)%P(1,14,nn) =bbufr(l+79)
2715 xfi17(nin)%P(2,14,nn) =bbufr(l+80)
2716 xfi17(nin)%P(3,14,nn) =bbufr(l+81)
2717 vfi17(nin)%P(1,14,nn) =bbufr(l+82)
2718 vfi17(nin)%P(2,14,nn) =bbufr(l+83)
2719 vfi17(nin)%P(3,14,nn) =bbufr(l+84)
2720 xfi17(nin)%P(1,15,nn) =bbufr(l+85)
2721 xfi17(nin)%P(2,15,nn) =bbufr(l+86)
2722 xfi17(nin)%P(3,15,nn) =bbufr(l+87)
2723 vfi17(nin)%P(1,15,nn) =bbufr(l+88)
2724 vfi17(nin)%P(2,15,nn) =bbufr(l+89)
2725 vfi17(nin)%P(3,15,nn) =bbufr(l+90)
2726 xfi17(nin)%P(1,16,nn) =bbufr(l+91)
2727 xfi17(nin)%P(2,16,nn) =bbufr(l+92)
2728 xfi17(nin)%P(3,16,nn) =bbufr(l+93)
2729 vfi17(nin)%P(1,16,nn) =bbufr(l+94)
2730 vfi17(nin)%P(2,16,nn) =bbufr(l+95)
2731 vfi17(nin)%P(3,16,nn) =bbufr(l+96)
2732C
2733 frotsfi(nin)%P(1,nn) = bbufr(l+97)
2734 frotsfi(nin)%P(2,nn) = bbufr(l+98)
2735 frotsfi(nin)%P(3,nn) = bbufr(l+99)
2736 frotsfi(nin)%P(4,nn) = bbufr(l+100)
2737 l = l + len17
2738C
2739C Recompute FROTS
2740C
2741 ax = one/max(em20,frotsfi(nin)%P(4,nn))
2742 frotsfi(nin)%P(5,nn)=ax*frotsfi(nin)%P(1,nn)
2743 frotsfi(nin)%P(6,nn)=ax*frotsfi(nin)%P(2,nn)
2744 frotsfi(nin)%P(7,nn)=ax*frotsfi(nin)%P(3,nn)
2745 frotsfi(nin)%P(1,nn)=zero
2746 frotsfi(nin)%P(2,nn)=zero
2747 frotsfi(nin)%P(3,nn)=zero
2748 frotsfi(nin)%P(4,nn)=zero
2749C
2750C Recompute EMINX like in I16BOX (verifier compilation ne casse pas P/ON)
2751C
2752 eminxfi(nin)%P(1,nn) = ep30
2753 eminxfi(nin)%P(2,nn) = ep30
2754 eminxfi(nin)%P(3,nn) = ep30
2755 eminxfi(nin)%P(4,nn) = -ep30
2756 eminxfi(nin)%P(5,nn) = -ep30
2757 eminxfi(nin)%P(6,nn) = -ep30
2758C Face 1
2759C DIR X
2760 x1 = xfi17(nin)%P(1,1,nn)
2761 x2 = xfi17(nin)%P(1,2,nn)
2762 x3 = xfi17(nin)%P(1,3,nn)
2763 x4 = xfi17(nin)%P(1,4,nn)
2764 x9 = xfi17(nin)%P(1,9,nn)
2765 x10= xfi17(nin)%P(1,10,nn)
2766 x11= xfi17(nin)%P(1,11,nn)
2767 x12= xfi17(nin)%P(1,12,nn)
2768C
2769 xc = half*(x9+x10+x11+x12) - fourth*(x1+x2+x3+x4)
2770 d4 = fourth * abs(x1-x2)
2771 an = min( x1 , x2 , x9-d4 )
2772 ax = max( x1 , x2 , x9+d4 )
2773 d4 = fourth * abs(x3-x4)
2774 bn = min( x3 , x4 , x11-d4 )
2775 bx = max( x3 , x4 , x11+d4 )
2776 d4 = fourth * abs(x12-x10)
2777 cn = min( x12 , x10 , xc-d4 )
2778 cx = max( x12 , x10 , xc+d4 )
2779 d8 = one_over_8 * max( ax-bn , bx-an )
2780 d4 = d8 + d8
2781 dn = max(min(an,bn,cn-d4),min(an,bn,cn)-d8)
2782 dx = min(max(ax,bx,cx+d4),max(ax,bx,cx)+d8)
2783C
2784 eminxfi(nin)%P(1,nn) = min(eminxfi(nin)%P(1,nn),dn)
2785 eminxfi(nin)%P(4,nn) = max(eminxfi(nin)%P(4,nn),dx)
2786C DIR Y
2787 x1 = xfi17(nin)%P(2,1,nn)
2788 x2 = xfi17(nin)%P(2,2,nn)
2789 x3 = xfi17(nin)%P(2,3,nn)
2790 x4 = xfi17(nin)%P(2,4,nn)
2791 x9 = xfi17(nin)%P(2,9,nn)
2792 x10= xfi17(nin)%P(2,10,nn)
2793 x11= xfi17(nin)%P(2,11,nn)
2794 x12= xfi17(nin)%P(2,12,nn)
2795C
2796 xc = half*(x9+x10+x11+x12) - fourth*(x1+x2+x3+x4)
2797 d4 = fourth * abs(x1-x2)
2798 an = min( x1 , x2 , x9-d4 )
2799 ax = max( x1 , x2 , x9+d4 )
2800 d4 = fourth * abs(x3-x4)
2801 bn = min( x3 , x4 , x11-d4 )
2802 bx = max( x3 , x4 , x11+d4 )
2803 d4 = fourth * abs(x12-x10)
2804 cn = min( x12 , x10 , xc-d4 )
2805 cx = max( x12 , x10 , xc+d4 )
2806 d8 = one_over_8 * max( ax-bn , bx-an )
2807 d4 = d8 + d8
2808 dn = max(min(an,bn,cn-d4),min(an,bn,cn)-d8)
2809 dx = min(max(ax,bx,cx+d4),max(ax,bx,cx)+d8)
2810C
2811 eminxfi(nin)%P(2,nn) = min(eminxfi(nin)%P(2,nn),dn)
2812 eminxfi(nin)%P(5,nn) = max(eminxfi(nin)%P(5,nn),dx)
2813C DIR Z
2814 x1 = xfi17(nin)%P(3,1,nn)
2815 x2 = xfi17(nin)%P(3,2,nn)
2816 x3 = xfi17(nin)%P(3,3,nn)
2817 x4 = xfi17(nin)%P(3,4,nn)
2818 x9 = xfi17(nin)%P(3,9,nn)
2819 x10= xfi17(nin)%P(3,10,nn)
2820 x11= xfi17(nin)%P(3,11,nn)
2821 x12= xfi17(nin)%P(3,12,nn)
2822C
2823 xc = half*(x9+x10+x11+x12) - fourth*(x1+x2+x3+x4)
2824 d4 = fourth * abs(x1-x2)
2825 an = min( x1 , x2 , x9-d4 )
2826 ax = max( x1 , x2 , x9+d4 )
2827 d4 = fourth * abs(x3-x4)
2828 bn = min( x3 , x4 , x11-d4 )
2829 bx = max( x3 , x4 , x11+d4 )
2830 d4 = fourth * abs(x12-x10)
2831 cn = min( x12 , x10 , xc-d4 )
2832 cx = max( x12 , x10 , xc+d4 )
2833 d8 = one_over_8 * max( ax-bn , bx-an )
2834 d4 = d8 + d8
2835 dn = max(min(an,bn,cn-d4),min(an,bn,cn)-d8)
2836 dx = min(max(ax,bx,cx+d4),max(ax,bx,cx)+d8)
2837C
2838 eminxfi(nin)%P(3,nn) = min(eminxfi(nin)%P(3,nn),dn)
2839 eminxfi(nin)%P(6,nn) = max(eminxfi(nin)%P(6,nn),dx)
2840C Face 2
2841C DIR X
2842 x1 = xfi17(nin)%P(1,5,nn)
2843 x2 = xfi17(nin)%P(1,6,nn)
2844 x3 = xfi17(nin)%P(1,7,nn)
2845 x4 = xfi17(nin)%P(1,8,nn)
2846 x9 = xfi17(nin)%P(1,13,nn)
2847 x10= xfi17(nin)%P(1,14,nn)
2848 x11= xfi17(nin)%P(1,15,nn)
2849 x12= xfi17(nin)%P(1,16,nn)
2850C
2851 xc = half*(x9+x10+x11+x12) - fourth*(x1+x2+x3+x4)
2852 d4 = fourth * abs(x1-x2)
2853 an = min( x1 , x2 , x9-d4 )
2854 ax = max( x1 , x2 , x9+d4 )
2855 d4 = fourth * abs(x3-x4)
2856 bn = min( x3 , x4 , x11-d4 )
2857 bx = max( x3 , x4 , x11+d4 )
2858 d4 = fourth * abs(x12-x10)
2859 cn = min( x12 , x10 , xc-d4 )
2860 cx = max( x12 , x10 , xc+d4 )
2861 d8 = one_over_8 * max( ax-bn , bx-an )
2862 d4 = d8 + d8
2863 dn = max(min(an,bn,cn-d4),min(an,bn,cn)-d8)
2864 dx = min(max(ax,bx,cx+d4),max(ax,bx,cx)+d8)
2865C
2866 eminxfi(nin)%P(1,nn) = min(eminxfi(nin)%P(1,nn),dn)
2867 eminxfi(nin)%P(4,nn) = max(eminxfi(nin)%P(4,nn),dx)
2868C DIR Y
2869 x1 = xfi17(nin)%P(2,5,nn)
2870 x2 = xfi17(nin)%P(2,6,nn)
2871 x3 = xfi17(nin)%P(2,7,nn)
2872 x4 = xfi17(nin)%P(2,8,nn)
2873 x9 = xfi17(nin)%P(2,13,nn)
2874 x10= xfi17(nin)%P(2,14,nn)
2875 x11= xfi17(nin)%P(2,15,nn)
2876 x12= xfi17(nin)%P(2,16,nn)
2877C
2878 xc = half*(x9+x10+x11+x12) - fourth*(x1+x2+x3+x4)
2879 d4 = fourth * abs(x1-x2)
2880 an = min( x1 , x2 , x9-d4 )
2881 ax = max( x1 , x2 , x9+d4 )
2882 d4 = fourth * abs(x3-x4)
2883 bn = min( x3 , x4 , x11-d4 )
2884 bx = max( x3 , x4 , x11+d4 )
2885 d4 = fourth * abs(x12-x10)
2886 cn = min( x12 , x10 , xc-d4 )
2887 cx = max( x12 , x10 , xc+d4 )
2888 d8 = one_over_8 * max( ax-bn , bx-an )
2889 d4 = d8 + d8
2890 dn = max(min(an,bn,cn-d4),min(an,bn,cn)-d8)
2891 dx = min(max(ax,bx,cx+d4),max(ax,bx,cx)+d8)
2892C
2893 eminxfi(nin)%P(2,nn) = min(eminxfi(nin)%P(2,nn),dn)
2894 eminxfi(nin)%P(5,nn) = max(eminxfi(nin)%P(5,nn),dx)
2895C DIR Z
2896 x1 = xfi17(nin)%P(3,5,nn)
2897 x2 = xfi17(nin)%P(3,6,nn)
2898 x3 = xfi17(nin)%P(3,7,nn)
2899 x4 = xfi17(nin)%P(3,8,nn)
2900 x9 = xfi17(nin)%P(3,13,nn)
2901 x10= xfi17(nin)%P(3,14,nn)
2902 x11= xfi17(nin)%P(3,15,nn)
2903 x12= xfi17(nin)%P(3,16,nn)
2904C
2905 xc = half*(x9+x10+x11+x12) - fourth*(x1+x2+x3+x4)
2906 d4 = fourth * abs(x1-x2)
2907 an = min( x1 , x2 , x9-d4 )
2908 ax = max( x1 , x2 , x9+d4 )
2909 d4 = fourth * abs(x3-x4)
2910 bn = min( x3 , x4 , x11-d4 )
2911 bx = max( x3 , x4 , x11+d4 )
2912 d4 = fourth * abs(x12-x10)
2913 cn = min( x12 , x10 , xc-d4 )
2914 cx = max( x12 , x10 , xc+d4 )
2915 d8 = one_over_8 * max( ax-bn , bx-an )
2916 d4 = d8 + d8
2917 dn = max(min(an,bn,cn-d4),min(an,bn,cn)-d8)
2918 dx = min(max(ax,bx,cx+d4),max(ax,bx,cx)+d8)
2919C
2920 eminxfi(nin)%P(3,nn) = min(eminxfi(nin)%P(3,nn),dn)
2921 eminxfi(nin)%P(6,nn) = max(eminxfi(nin)%P(6,nn),dx)
2922 ENDDO
2923C fin type 17
2924 ELSEIF(nty == 20 .AND. intth == 0 ) THEN
2925C type 20
2926 IF(dt_cst/=0)THEN
2927 IF(idtmins==0.AND.idtmins_int==0)THEN
2928 DO i = 1, nb
2929 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2930 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2931 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2932 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2933 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2934 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2935 msfi(nin)%P(i+ideb) = bbufr(l+7)
2936 dxancfi(nin)%P(1,i+ideb) = bbufr(l+8)
2937 dxancfi(nin)%P(2,i+ideb) = bbufr(l+9)
2938 dxancfi(nin)%P(3,i+ideb) = bbufr(l+10)
2939 dvancfi(nin)%P(1,i+ideb) = bbufr(l+11)
2940 dvancfi(nin)%P(2,i+ideb) = bbufr(l+12)
2941 dvancfi(nin)%P(3,i+ideb) = bbufr(l+13)
2942C DAANCFI
2943 daancfi(nin)%P(1,i+ideb) = bbufr(l+14)
2944 daancfi(nin)%P(2,i+ideb) = bbufr(l+15)
2945 daancfi(nin)%P(3,i+ideb) = bbufr(l+16)
2946C Alphakfi
2947 alphakfi(nin)%P(i+ideb) = bbufr(l+17)
2948C
2949c print*,ispmd,I+IDEB, BBUFR(L+14),BBUFR(L+15),BBUFR(L+16)
2950 CALL getdpdaanc(
2951 . daanc6fi(nin)%P(1,1,i+ideb),bbufr(l+18),iresp,inc)
2952C L = L + INC
2953 l = l + len20
2954 ENDDO
2955C AMS
2956 ELSE
2957 DO i = 1, nb
2958 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2959 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2960 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2961 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2962 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2963 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2964 msfi(nin)%P(i+ideb) = bbufr(l+7)
2965 dxancfi(nin)%P(1,i+ideb) = bbufr(l+8)
2966 dxancfi(nin)%P(2,i+ideb) = bbufr(l+9)
2967 dxancfi(nin)%P(3,i+ideb) = bbufr(l+10)
2968 dvancfi(nin)%P(1,i+ideb) = bbufr(l+11)
2969 dvancfi(nin)%P(2,i+ideb) = bbufr(l+12)
2970 dvancfi(nin)%P(3,i+ideb) = bbufr(l+13)
2971C DAANCFI
2972 daancfi(nin)%P(1,i+ideb) = bbufr(l+14)
2973 daancfi(nin)%P(2,i+ideb) = bbufr(l+15)
2974 daancfi(nin)%P(3,i+ideb) = bbufr(l+16)
2975C Alphakfi
2976 alphakfi(nin)%P(i+ideb) = bbufr(l+17)
2977
2978 CALL getdpdaanc(
2979 . daanc6fi(nin)%P(1,1,i+ideb),bbufr(l+18),iresp,inc)
2980C L = L + INC
2981 diag_smsfi(nin)%P(i+ideb) = bbufr(l+18+inc)
2982 l = l + len20
2983 ENDDO
2984 END IF
2985C fin AMS
2986 ELSE
2987 IF(idtmins==0.AND.idtmins_int==0)THEN
2988 DO i = 1, nb
2989 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
2990 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
2991 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
2992 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
2993 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
2994 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
2995 dxancfi(nin)%P(1,i+ideb) = bbufr(l+7)
2996 dxancfi(nin)%P(2,i+ideb) = bbufr(l+8)
2997 dxancfi(nin)%P(3,i+ideb) = bbufr(l+9)
2998 dvancfi(nin)%P(1,i+ideb) = bbufr(l+10)
2999 dvancfi(nin)%P(2,i+ideb) = bbufr(l+11)
3000 dvancfi(nin)%P(3,i+ideb) = bbufr(l+12)
3001C DAANCFI
3002 daancfi(nin)%P(1,i+ideb) = bbufr(l+13)
3003 daancfi(nin)%P(2,i+ideb) = bbufr(l+14)
3004 daancfi(nin)%P(3,i+ideb) = bbufr(l+15)
3005C Alphakfi
3006 alphakfi(nin)%P(i+ideb) = bbufr(l+16)
3007CC
3008 CALL getdpdaanc(
3009 . daanc6fi(nin)%P(1,1,i+ideb),bbufr(l+17),iresp,inc)
3010C L = L + INC
3011 l = l + len20
3012 ENDDO
3013C AMS
3014
3015 ELSE
3016 DO i = 1, nb
3017 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
3018 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
3019 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
3020 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
3021 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
3022 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
3023 dxancfi(nin)%P(1,i+ideb) = bbufr(l+7)
3024 dxancfi(nin)%P(2,i+ideb) = bbufr(l+8)
3025 dxancfi(nin)%P(3,i+ideb) = bbufr(l+9)
3026 dvancfi(nin)%P(1,i+ideb) = bbufr(l+10)
3027 dvancfi(nin)%P(2,i+ideb) = bbufr(l+11)
3028 dvancfi(nin)%P(3,i+ideb) = bbufr(l+12)
3029C DAANCFI
3030 daancfi(nin)%P(1,i+ideb) = bbufr(l+13)
3031 daancfi(nin)%P(2,i+ideb) = bbufr(l+14)
3032 daancfi(nin)%P(3,i+ideb) = bbufr(l+15)
3033C Alphakfi
3034 alphakfi(nin)%P(i+ideb) = bbufr(l+16)
3035 CALL getdpdaanc(
3036 . daanc6fi(nin)%P(1,1,i+ideb),bbufr(l+17),iresp,inc)
3037C L = L + INC
3038 diag_smsfi(nin)%P(i+ideb) = bbufr(l+17+inc)
3039 l = l + len20
3040 ENDDO
3041 END IF
3042C fin AMS
3043 ENDIF
3044C
3045 ELSEIF(nty == 20 .AND. intth > 0 ) THEN
3046 IF(dt_cst/=0)THEN
3047 IF(idtmins==0.AND.idtmins_int==0)THEN
3048 DO i = 1, nb
3049 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
3050 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
3051 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
3052 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
3053 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
3054 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
3055 msfi(nin)%P(i+ideb) = bbufr(l+7)
3056 tempfi(nin)%P(i+ideb)= bbufr(l+8)
3057 dxancfi(nin)%P(1,i+ideb) = bbufr(l+9)
3058 dxancfi(nin)%P(2,i+ideb) = bbufr(l+10)
3059 dxancfi(nin)%P(3,i+ideb) = bbufr(l+11)
3060 dvancfi(nin)%P(1,i+ideb) = bbufr(l+12)
3061 dvancfi(nin)%P(2,i+ideb) = bbufr(l+13)
3062 dvancfi(nin)%P(3,i+ideb) = bbufr(l+14)
3063C DAANCFI
3064 daancfi(nin)%P(1,i+ideb) = bbufr(l+15)
3065 daancfi(nin)%P(2,i+ideb) = bbufr(l+16)
3066 daancfi(nin)%P(3,i+ideb) = bbufr(l+17)
3067C Alphakfi
3068 alphakfi(nin)%P(i+ideb) = bbufr(l+18)
3069C
3070 CALL getdpdaanc(
3071 . daanc6fi(nin)%P(1,1,i+ideb),bbufr(l+19),iresp,
3072 . inc)
3073C L = L + INC
3074 l = l + len20t
3075 ENDDO
3076C AMS
3077 ELSE
3078 DO i = 1, nb
3079 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
3080 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
3081 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
3082 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
3083 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
3084 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
3085 msfi(nin)%P(i+ideb) = bbufr(l+7)
3086 tempfi(nin)%P(i+ideb)= bbufr(l+8)
3087 dxancfi(nin)%P(1,i+ideb) = bbufr(l+9)
3088 dxancfi(nin)%P(2,i+ideb) = bbufr(l+10)
3089 dxancfi(nin)%P(3,i+ideb) = bbufr(l+11)
3090 dvancfi(nin)%P(1,i+ideb) = bbufr(l+12)
3091 dvancfi(nin)%P(2,i+ideb) = bbufr(l+13)
3092 dvancfi(nin)%P(3,i+ideb) = bbufr(l+14)
3093C DAANCFI
3094 daancfi(nin)%P(1,i+ideb) = bbufr(l+15)
3095 daancfi(nin)%P(2,i+ideb) = bbufr(l+16)
3096 daancfi(nin)%P(3,i+ideb) = bbufr(l+17)
3097C Alphakfi
3098 alphakfi(nin)%P(i+ideb) = bbufr(l+18)
3099C
3100 CALL getdpdaanc(
3101 . daanc6fi(nin)%P(1,1,i+ideb),bbufr(l+19),iresp,
3102 . inc)
3103C L = L + INC
3104 diag_smsfi(nin)%P(i+ideb) = bbufr(l+19+inc)
3105 l = l + len20t
3106 ENDDO
3107C fin AMS
3108 END IF
3109 ELSE
3110 IF(idtmins==0.AND.idtmins_int==0)THEN
3111 DO i = 1, nb
3112 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
3113 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
3114 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
3115 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
3116 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
3117 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
3118 tempfi(nin)%P(i+ideb)= bbufr(l+7)
3119 dxancfi(nin)%P(1,i+ideb) = bbufr(l+8)
3120 dxancfi(nin)%P(2,i+ideb) = bbufr(l+9)
3121 dxancfi(nin)%P(3,i+ideb) = bbufr(l+10)
3122 dvancfi(nin)%P(1,i+ideb) = bbufr(l+11)
3123 dvancfi(nin)%P(2,i+ideb) = bbufr(l+12)
3124 dvancfi(nin)%P(3,i+ideb) = bbufr(l+13)
3125C DAANCFI
3126 daancfi(nin)%P(1,i+ideb) = bbufr(l+15)
3127 daancfi(nin)%P(2,i+ideb) = bbufr(l+16)
3128 daancfi(nin)%P(3,i+ideb) = bbufr(l+17)
3129C Alphakfi
3130 alphakfi(nin)%P(i+ideb) = bbufr(l+18)
3131
3132 CALL getdpdaanc(
3133 . daanc6fi(nin)%P(1,1,i+ideb),bbufr(l+19),iresp,
3134 . inc)
3135C L = L + INC
3136 l = l + len20t
3137 ENDDO
3138C AMS
3139 ELSE
3140 DO i = 1, nb
3141 xfi(nin)%P(1,i+ideb) = bbufr(l+1)
3142 xfi(nin)%P(2,i+ideb) = bbufr(l+2)
3143 xfi(nin)%P(3,i+ideb) = bbufr(l+3)
3144 vfi(nin)%P(1,i+ideb) = bbufr(l+4)
3145 vfi(nin)%P(2,i+ideb) = bbufr(l+5)
3146 vfi(nin)%P(3,i+ideb) = bbufr(l+6)
3147 tempfi(nin)%P(i+ideb)= bbufr(l+7)
3148
3149 dxancfi(nin)%P(1,i+ideb) = bbufr(l+8)
3150 dxancfi(nin)%P(2,i+ideb) = bbufr(l+9)
3151 dxancfi(nin)%P(3,i+ideb) = bbufr(l+10)
3152 dvancfi(nin)%P(1,i+ideb) = bbufr(l+11)
3153 dvancfi(nin)%P(2,i+ideb) = bbufr(l+12)
3154 dvancfi(nin)%P(3,i+ideb) = bbufr(l+13)
3155C DAANCFI
3156 daancfi(nin)%P(1,i+ideb) = bbufr(l+14)
3157 daancfi(nin)%P(2,i+ideb) = bbufr(l+15)
3158 daancfi(nin)%P(3,i+ideb) = bbufr(l+16)
3159C Alphakfi
3160 alphakfi(nin)%P(i+ideb) = bbufr(l+17)
3161 CALL getdpdaanc(
3162 . daanc6fi(nin)%P(1,1,i+ideb),bbufr(l+18),iresp,
3163 . inc)
3164C L = L + INC
3165 diag_smsfi(nin)%P(i+ideb) = bbufr(l+18+inc)
3166 l = l + len20t
3167 ENDDO
3168 END IF
3169C fin AMS
3170 ENDIF
3171C fin type 20
3172 ENDIF
3173 debut(nin) = debut(nin) + nb
3174 ENDIF
3175C
3176C Extra Code for Type20 Edge
3177C
3178 IF(ipari(7,nin)==20) THEN
3179 nb = nsnfie(nin)%P(p)
3180 IF(nb>0)THEN
3181 ideb = debute(nin)
3182 IF(dt_cst/=0)THEN
3183 IF(idtmins==0.AND.idtmins_int==0)THEN
3184 DO i = 1, nb
3185 n1 = 2*(i+ideb-1)+1
3186 n2 = 2*(i+ideb)
3187 xfie(nin)%P(1,n1) = bbufr(l+1)
3188 xfie(nin)%P(2,n1) = bbufr(l+2)
3189 xfie(nin)%P(3,n1) = bbufr(l+3)
3190 vfie(nin)%P(1,n1) = bbufr(l+4)
3191 vfie(nin)%P(2,n1) = bbufr(l+5)
3192 vfie(nin)%P(3,n1) = bbufr(l+6)
3193 msfie(nin)%P(n1) = bbufr(l+7)
3194 xfie(nin)%P(1,n2) = bbufr(l+8)
3195 xfie(nin)%P(2,n2) = bbufr(l+9)
3196 xfie(nin)%P(3,n2) = bbufr(l+10)
3197 vfie(nin)%P(1,n2) = bbufr(l+11)
3198 vfie(nin)%P(2,n2) = bbufr(l+12)
3199 vfie(nin)%P(3,n2) = bbufr(l+13)
3200 msfie(nin)%P(n2) = bbufr(l+14)
3201C
3202 dxancfie(nin)%P(1,n1) = bbufr(l+15)
3203 dxancfie(nin)%P(2,n1) = bbufr(l+16)
3204 dxancfie(nin)%P(3,n1) = bbufr(l+17)
3205 dvancfie(nin)%P(1,n1) = bbufr(l+18)
3206 dvancfie(nin)%P(2,n1) = bbufr(l+19)
3207 dvancfie(nin)%P(3,n1) = bbufr(l+20)
3208 dxancfie(nin)%P(1,n2) = bbufr(l+21)
3209 dxancfie(nin)%P(2,n2) = bbufr(l+22)
3210 dxancfie(nin)%P(3,n2) = bbufr(l+23)
3211 dvancfie(nin)%P(1,n2) = bbufr(l+24)
3212 dvancfie(nin)%P(2,n2) = bbufr(l+25)
3213 dvancfie(nin)%P(3,n2) = bbufr(l+26)
3214C
3215 daancfie(nin)%P(1,n1) = bbufr(l+27)
3216 daancfie(nin)%P(2,n1) = bbufr(l+28)
3217 daancfie(nin)%P(3,n1) = bbufr(l+29)
3218C
3219 daancfie(nin)%P(1,n2) = bbufr(l+30)
3220 daancfie(nin)%P(2,n2) = bbufr(l+31)
3221 daancfie(nin)%P(3,n2) = bbufr(l+32)
3222C
3223 alphakfie(nin)%P(n1) = bbufr(l+33)
3224C
3225 alphakfie(nin)%P(n2) = bbufr(l+34)
3226C
3227 CALL getdpdaanc(
3228 . daanc6fie(nin)%P(1,1,n1),bbufr(l+35),iresp,inc)
3229C L = L + INC
3230 CALL getdpdaanc(
3231 . daanc6fie(nin)%P(1,1,n2),bbufr(l+35+inc),iresp,
3232 . inc)
3233C L = L + INC
3234 l = l + len20e
3235 ENDDO
3236C AMS
3237 ELSE
3238 DO i = 1, nb
3239 n1 = 2*(i+ideb-1)+1
3240 n2 = 2*(i+ideb)
3241 xfie(nin)%P(1,n1) = bbufr(l+1)
3242 xfie(nin)%P(2,n1) = bbufr(l+2)
3243 xfie(nin)%P(3,n1) = bbufr(l+3)
3244 vfie(nin)%P(1,n1) = bbufr(l+4)
3245 vfie(nin)%P(2,n1) = bbufr(l+5)
3246 vfie(nin)%P(3,n1) = bbufr(l+6)
3247 msfie(nin)%P(n1) = bbufr(l+7)
3248 xfie(nin)%P(1,n2) = bbufr(l+8)
3249 xfie(nin)%P(2,n2) = bbufr(l+9)
3250 xfie(nin)%P(3,n2) = bbufr(l+10)
3251 vfie(nin)%P(1,n2) = bbufr(l+11)
3252 vfie(nin)%P(2,n2) = bbufr(l+12)
3253 vfie(nin)%P(3,n2) = bbufr(l+13)
3254 msfie(nin)%P(n2) = bbufr(l+14)
3255C
3256 dxancfie(nin)%P(1,n1) = bbufr(l+15)
3257 dxancfie(nin)%P(2,n1) = bbufr(l+16)
3258 dxancfie(nin)%P(3,n1) = bbufr(l+17)
3259 dvancfie(nin)%P(1,n1) = bbufr(l+18)
3260 dvancfie(nin)%P(2,n1) = bbufr(l+19)
3261 dvancfie(nin)%P(3,n1) = bbufr(l+20)
3262 dxancfie(nin)%P(1,n2) = bbufr(l+21)
3263 dxancfie(nin)%P(2,n2) = bbufr(l+22)
3264 dxancfie(nin)%P(3,n2) = bbufr(l+23)
3265 dvancfie(nin)%P(1,n2) = bbufr(l+24)
3266 dvancfie(nin)%P(2,n2) = bbufr(l+25)
3267 dvancfie(nin)%P(3,n2) = bbufr(l+26)
3268C
3269 daancfie(nin)%P(1,n1) = bbufr(l+27)
3270 daancfie(nin)%P(2,n1) = bbufr(l+28)
3271 daancfie(nin)%P(3,n1) = bbufr(l+29)
3272C
3273 daancfie(nin)%P(1,n2) = bbufr(l+30)
3274 daancfie(nin)%P(2,n2) = bbufr(l+31)
3275 daancfie(nin)%P(3,n2) = bbufr(l+32)
3276C
3277 alphakfie(nin)%P(n1) = bbufr(l+33)
3278C
3279 alphakfie(nin)%P(n2) = bbufr(l+34)
3280C
3281C
3282 CALL getdpdaanc(
3283 . daanc6fie(nin)%P(1,1,n1),bbufr(l+35),iresp,inc)
3284C L = L + INC
3285 CALL getdpdaanc(
3286 . daanc6fie(nin)%P(1,1,n2),bbufr(l+35+inc),iresp,
3287 . inc)
3288C L = L + INC
3289 diag_smsfie(nin)%P(n1) = bbufr(l+35+2*inc)
3290 diag_smsfie(nin)%P(n2) = bbufr(l+26+2*inc)
3291 l = l + len20e
3292 ENDDO
3293 END IF
3294C fin AMS
3295 ELSE
3296 IF(idtmins==0.AND.idtmins_int==0)THEN
3297 DO i = 1, nb
3298 n1 = 2*(i+ideb-1)+1
3299 n2 = 2*(i+ideb)
3300 xfie(nin)%P(1,n1) = bbufr(l+1)
3301 xfie(nin)%P(2,n1) = bbufr(l+2)
3302 xfie(nin)%P(3,n1) = bbufr(l+3)
3303 vfie(nin)%P(1,n1) = bbufr(l+4)
3304 vfie(nin)%P(2,n1) = bbufr(l+5)
3305 vfie(nin)%P(3,n1) = bbufr(l+6)
3306 xfie(nin)%P(1,n2) = bbufr(l+7)
3307 xfie(nin)%P(2,n2) = bbufr(l+8)
3308 xfie(nin)%P(3,n2) = bbufr(l+9)
3309 vfie(nin)%P(1,n2) = bbufr(l+10)
3310 vfie(nin)%P(2,n2) = bbufr(l+11)
3311 vfie(nin)%P(3,n2) = bbufr(l+12)
3312C
3313 dxancfie(nin)%P(1,n1) = bbufr(l+13)
3314 dxancfie(nin)%P(2,n1) = bbufr(l+14)
3315 dxancfie(nin)%P(3,n1) = bbufr(l+15)
3316 dvancfie(nin)%P(1,n1) = bbufr(l+16)
3317 dvancfie(nin)%P(2,n1) = bbufr(l+17)
3318 dvancfie(nin)%P(3,n1) = bbufr(l+18)
3319 dxancfie(nin)%P(1,n2) = bbufr(l+19)
3320 dxancfie(nin)%P(2,n2) = bbufr(l+20)
3321 dxancfie(nin)%P(3,n2) = bbufr(l+21)
3322 dvancfie(nin)%P(1,n2) = bbufr(l+22)
3323 dvancfie(nin)%P(2,n2) = bbufr(l+23)
3324 dvancfie(nin)%P(3,n2) = bbufr(l+24)
3325C
3326 daancfie(nin)%P(1,n1) = bbufr(l+25)
3327 daancfie(nin)%P(2,n1) = bbufr(l+26)
3328 daancfie(nin)%P(3,n1) = bbufr(l+27)
3329C
3330 daancfie(nin)%P(1,n2) = bbufr(l+28)
3331 daancfie(nin)%P(2,n2) = bbufr(l+29)
3332 daancfie(nin)%P(3,n2) = bbufr(l+30)
3333C
3334 alphakfie(nin)%P(n1) = bbufr(l+31)
3335C
3336 alphakfie(nin)%P(n2) = bbufr(l+32)
3337C
3338 CALL getdpdaanc(
3339 . daanc6fie(nin)%P(1,1,n1),bbufr(l+33),iresp,inc)
3340C L = L + INC
3341 CALL getdpdaanc(
3342 . daanc6fie(nin)%P(1,1,n2),bbufr(l+33+inc),iresp,
3343 . inc)
3344C L = L + INC
3345 l = l + len20e
3346 END DO
3347C AMS
3348 ELSE
3349 DO i = 1, nb
3350 n1 = 2*(i+ideb-1)+1
3351 n2 = 2*(i+ideb)
3352 xfie(nin)%P(1,n1) = bbufr(l+1)
3353 xfie(nin)%P(2,n1) = bbufr(l+2)
3354 xfie(nin)%P(3,n1) = bbufr(l+3)
3355 vfie(nin)%P(1,n1) = bbufr(l+4)
3356 vfie(nin)%P(2,n1) = bbufr(l+5)
3357 vfie(nin)%P(3,n1) = bbufr(l+6)
3358 xfie(nin)%P(1,n2) = bbufr(l+7)
3359 xfie(nin)%P(2,n2) = bbufr(l+8)
3360 xfie(nin)%P(3,n2) = bbufr(l+9)
3361 vfie(nin)%P(1,n2) = bbufr(l+10)
3362 vfie(nin)%P(2,n2) = bbufr(l+11)
3363 vfie(nin)%P(3,n2) = bbufr(l+12)
3364C
3365 dxancfie(nin)%P(1,n1) = bbufr(l+13)
3366 dxancfie(nin)%P(2,n1) = bbufr(l+14)
3367 dxancfie(nin)%P(3,n1) = bbufr(l+15)
3368 dvancfie(nin)%P(1,n1) = bbufr(l+16)
3369 dvancfie(nin)%P(2,n1) = bbufr(l+17)
3370 dvancfie(nin)%P(3,n1) = bbufr(l+18)
3371 dxancfie(nin)%P(1,n2) = bbufr(l+19)
3372 dxancfie(nin)%P(2,n2) = bbufr(l+20)
3373 dxancfie(nin)%P(3,n2) = bbufr(l+21)
3374 dvancfie(nin)%P(1,n2) = bbufr(l+22)
3375 dvancfie(nin)%P(2,n2) = bbufr(l+23)
3376 dvancfie(nin)%P(3,n2) = bbufr(l+24)
3377C
3378 daancfie(nin)%P(1,n1) = bbufr(l+25)
3379 daancfie(nin)%P(2,n1) = bbufr(l+26)
3380 daancfie(nin)%P(3,n1) = bbufr(l+27)
3381C
3382 daancfie(nin)%P(1,n2) = bbufr(l+28)
3383 daancfie(nin)%P(2,n2) = bbufr(l+29)
3384 daancfie(nin)%P(3,n2) = bbufr(l+30)
3385C
3386 alphakfie(nin)%P(n1) = bbufr(l+31)
3387C
3388 alphakfie(nin)%P(n2) = bbufr(l+32)
3389C
3390 CALL getdpdaanc(
3391 . daanc6fie(nin)%P(1,1,n1),bbufr(l+33),iresp,inc)
3392C L = L + INC
3393 CALL getdpdaanc(
3394 . daanc6fie(nin)%P(1,1,n2),bbufr(l+33+inc),iresp,
3395 . inc)
3396C L = L + INC
3397 diag_smsfie(nin)%P(n1) = bbufr(l+33+2*inc)
3398 diag_smsfie(nin)%P(n2) = bbufr(l+24+2*inc)
3399 l = l + len20e
3400 END DO
3401 END IF
3402C fin AMS
3403 ENDIF
3404 END IF
3405 debute(nin) = debute(nin) + nb
3406 END IF
3407C end extra for i20 edge
3408
3409C Extra Code for Type25 Edge
3410C
3411 iedge = ipari(58,nin)
3412
3413 IF(ipari(7,nin)==25 .AND. iedge /= 0) THEN
3414 nb = nsnfie(nin)%P(p)
3415 IF(nb>0)THEN
3416 ideb = debute(nin)
3417 DO i = 1,nb
3418 n1 = 2*(i+ideb-1)+1
3419 n2 = 2*(i+ideb)
3420 xfie(nin)%P(1,n1) = bbufr(l+1)
3421 xfie(nin)%P(2,n1) = bbufr(l+2)
3422 xfie(nin)%P(3,n1) = bbufr(l+3)
3423 vfie(nin)%P(1,n1) = bbufr(l+4)
3424 vfie(nin)%P(2,n1) = bbufr(l+5)
3425 vfie(nin)%P(3,n1) = bbufr(l+6)
3426 msfie(nin)%P(n1) = bbufr(l+7)
3427 xfie(nin)%P(1,n2) = bbufr(l+8)
3428 xfie(nin)%P(2,n2) = bbufr(l+9)
3429 xfie(nin)%P(3,n2) = bbufr(l+10)
3430 vfie(nin)%P(1,n2) = bbufr(l+11)
3431 vfie(nin)%P(2,n2) = bbufr(l+12)
3432 vfie(nin)%P(3,n2) = bbufr(l+13)
3433 msfie(nin)%P(n2) = bbufr(l+14)
3434c IF(BBUFR(L+15) < 0) THEN
3435c LEDGE_FIE(NIN)%P(E_IM,I+IDEB) = -1
3436c ELSE
3437c LEDGE_FIE(NIN)%P(E_IM,I+IDEB) = 1
3438c ENDIF
3439
3440C LEDGE_FIE(NIN)%P(E_LEFT_SEG,I+IDEB) = TRANSFER(BBUFR(L+16),L)
3441C LEDGE_FIE(NIN)%P(E_LEFT_ID,I+IDEB) = TRANSFER(BBUFR(L+17),L)
3442C LEDGE_FIE(NIN)%P(E_RIGHT_SEG,I+IDEB) = TRANSFER(BBUFR(L+18),L)
3443C LEDGE_FIE(NIN)%P(E_RIGHT_ID,I+IDEB) = TRANSFER(BBUFR(L+19),L)
3444
3445C WRITE(6,"(A,4I10)") "++",LEDGE_FIE(NIN)%P(1:4,NN)
3446
3447
3448c VTX_BISECTOR_FIE(NIN)%P(1,1,I+IDEB) = BBUFR(L+18)
3449c VTX_BISECTOR_FIE(NIN)%P(2,1,I+IDEB) = BBUFR(L+19)
3450c VTX_BISECTOR_FIE(NIN)%P(3,1,I+IDEB) = BBUFR(L+20)
3451c VTX_BISECTOR_FIE(NIN)%P(1,2,I+IDEB) = BBUFR(L+21)
3452c VTX_BISECTOR_FIE(NIN)%P(2,2,I+IDEB) = BBUFR(L+22)
3453c VTX_BISECTOR_FIE(NIN)%P(3,2,I+IDEB) = BBUFR(L+23)
3454c VTX_BISECTOR_FIE(NIN)%P(1,3,I+IDEB) = BBUFR(L+24)
3455c VTX_BISECTOR_FIE(NIN)%P(2,3,I+IDEB) = BBUFR(L+25)
3456c VTX_BISECTOR_FIE(NIN)%P(3,3,I+IDEB) = BBUFR(L+26)
3457c MAIN_FIE(NIN)%P(I+IDEB) = BBUFR(L+27)
3458
3459
3460
3461 l = l + len25e
3462 ENDDO
3463 ENDIF
3464 debute(nin) = debute(nin) + nb
3465C IF(ISPMD==4) write(6,*) __FILE__," increN ",NB
3466 ENDIF
3467
3468 END DO
3469 END IF
3470 END DO
3471 istocom = 0
3472 END IF
3473C cas interface inactive
3474 IF(iallocr>0)THEN
3475 DEALLOCATE(bbufr)
3476 iallocr=0
3477 END IF
3478C
3479C Attente ISEND
3480C
3481C flag 3 useful for restart during run
3482 IF(iflag/=3) THEN
3483 DO p = 1, nspmd
3484 IF(adds(p+1)-adds(p)>0) THEN
3485 CALL mpi_wait(req_si(p),status,ierror)
3486 ENDIF
3487 ENDDO
3488 IF(iallocs>0)THEN
3489 DEALLOCATE(bbufs)
3490 iallocs=0
3491 END IF
3492 END IF
3493 END IF
3494C
3495#endif
3496 RETURN
#define my_real
Definition cppsort.cpp:32
#define min(a, b)
Definition macros.h:20
#define max(a, b)
Definition macros.h:21
subroutine mpi_isend(buf, cnt, datatype, dest, tag, comm, ireq, ierr)
Definition mpi.f:382
subroutine mpi_wait(ireq, status, ierr)
Definition mpi.f:525
subroutine mpi_irecv(buf, cnt, datatype, source, tag, comm, ireq, ierr)
Definition mpi.f:372
integer islen25e
Definition tri25ebox.F:79
integer irlen25
Definition tri25ebox.F:78
integer irlen25t
Definition tri25ebox.F:80
integer islen25t
Definition tri25ebox.F:80
integer islen25
Definition tri25ebox.F:78
integer irlen25e
Definition tri25ebox.F:79
type(real_pointer2), dimension(:), allocatable dxancfi
Definition tri7box.F:473
type(real_pointer2), dimension(:), allocatable eminxfi
Definition tri7box.F:467
type(real_pointer2), dimension(:), allocatable forneqsfi
Definition tri7box.F:459
type(real_pointer2), dimension(:), allocatable vfie
Definition tri7box.F:459
type(real_pointer2), dimension(:), allocatable daancfi
Definition tri7box.F:459
type(real_pointer2), dimension(:), allocatable vfi
Definition tri7box.F:459
type(real_pointer2), dimension(:), allocatable frotsfi
Definition tri7box.F:467
type(real_pointer2), dimension(:), allocatable dvancfi
Definition tri7box.F:473
type(real_pointer), dimension(:), allocatable tempfi
Definition tri7box.F:449
type(real_pointer3), dimension(:), allocatable xfi17
Definition tri7box.F:470
type(real_pointer3), dimension(:), allocatable vfi17
Definition tri7box.F:470
type(int_pointer), dimension(:), allocatable nsvsi
Definition tri7box.F:485
type(real_pointer2), dimension(:), allocatable xfie
Definition tri7box.F:459
type(int_pointer), dimension(:), allocatable nsnfie
Definition tri7box.F:440
type(real_pointer2), dimension(:), allocatable dvancfie
Definition tri7box.F:473
type(r8_pointer3), dimension(:), allocatable daanc6fi
Definition tri7box.F:476
type(int_pointer), dimension(:), allocatable nsnsie
Definition tri7box.F:491
type(real_pointer), dimension(:), allocatable alphakfi
Definition tri7box.F:449
type(int_pointer), dimension(:), allocatable nsvsie
Definition tri7box.F:485
type(int_pointer), dimension(:), allocatable nsnsi
Definition tri7box.F:491
type(real_pointer), dimension(:), allocatable intareanfi
Definition tri7box.F:554
type(real_pointer), dimension(:), allocatable msfi
Definition tri7box.F:449
type(real_pointer), dimension(:), allocatable diag_smsfi
Definition tri7box.F:449
type(r8_pointer3), dimension(:), allocatable daanc6fie
Definition tri7box.F:476
type(real_pointer2), dimension(:), allocatable xfi
Definition tri7box.F:459
type(real_pointer), dimension(:), allocatable diag_smsfie
Definition tri7box.F:449
type(real_pointer), dimension(:), allocatable alphakfie
Definition tri7box.F:449
type(real_pointer2), dimension(:), allocatable dxancfie
Definition tri7box.F:473
type(int_pointer), dimension(:), allocatable nsnfi
Definition tri7box.F:440
type(real_pointer2), dimension(:), allocatable daancfie
Definition tri7box.F:459
type(real_pointer), dimension(:), allocatable msfie
Definition tri7box.F:449
subroutine putdpdaanc(daanc6, buf, iresp, inc)
subroutine getdpdaanc(daanc6, buf, iresp, inc)
subroutine putdpzero(zz, buf, iresp, inc)
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)
Definition message.F:895
subroutine arret(nn)
Definition arret.F:86