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