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