30 SUBROUTINE lag_bcs(IGRNOD ,IBCSLAG,SK ,RLL ,NGRNOD ,
31 2 IADLL ,LLL ,JLL ,SLL ,XLL ,
32 3 COMNTAG,ICFTAG ,JCFTAG ,MASS ,INER ,
33 4 V ,VR ,A ,AR ,ISKIP ,
42#include "implicit_f.inc"
52 INTEGER NC, ISKIP,NCF_S,NGRNOD,
53 . IBCSLAG(5,*),IADLL(*),
54 . SLL(*),LLL(*),JLL(*),COMNTAG(*),ICFTAG(*),JCFTAG(*)
56 . xll(*),rll(*),sk(lskew,*),mass(*),iner(*),v(3,*),vr(3,*),
59 TYPE (GROUP_) ,
DIMENSION(NGRNOD) :: IGRNOD
63 INTEGER I,IC,IG,IK,IGR,IS,NN,CT,
65 . AA,VV,HH,R,SK1,SK2,SK3,DTM2
78 dtm2 = one / (dt2*dt12)
84 DO ig=1,igrnod(igr)%NENTITY
85 nn=igrnod(igr)%ENTITY(ig)
86 IF (comntag(nn)>1)
THEN
87 IF(mass(nn)/=zero)
THEN
89 IF(ct==1.OR.ct==3.OR.ct==5.OR.ct==7)
THEN
93 icftag(ic) = ic + iskip
96 iadll(nc+1)=iadll(nc) + 1
104 a(3,nn) = -v(3,nn)/dt12
109 iadll(nc+1)=iadll(nc) + 3
125 hh = sk1*sk1 + sk2*sk2 + sk3*sk3
126 r = sk1*(v(1,nn)/dt12 + a(1,nn))
127 . + sk2*(v(2,nn)/dt12 + a(2,nn))
128 . + sk3*(v(3,nn)/dt12 + a(3,nn))
130 a(1,nn) = a(1,nn) - sk1*r
131 a(2,nn) = a(2,nn) - sk2*r
132 a(3,nn) = a(3,nn) - sk3*r
135 IF(ct==2.OR.ct==3.OR.ct==6.OR.ct==7)
THEN
139 icftag(ic) = ic + iskip
140 jcftag(ic+iskip) = nc
142 iadll(nc+1)=iadll(nc) + 1
150 a(2,nn) = -v(2,nn)/dt12
155 iadll(nc+1)=iadll(nc) + 3
171 hh = sk1*sk1 + sk2*sk2 + sk3*sk3
172 r = sk1*(v(1,nn)/dt12 + a(1,nn))
173 . + sk2*(v(2,nn)/dt12 + a(2,nn))
174 . + sk3*(v(3,nn)/dt12 + a(3,nn))
176 a(1,nn) = a(1,nn) - sk1*r
177 a(2,nn) = a(2,nn) - sk2*r
178 a(3,nn) = a(3,nn) - sk3*r
181 IF(ct==4.OR.ct==5.OR.ct==6.OR.ct==7)
THEN
185 icftag(ic) = ic + iskip
186 jcftag(ic+iskip) = nc
188 iadll(nc+1)=iadll(nc) + 1
196 a(1,nn) = -v(1,nn)/dt12
201 iadll(nc+1)=iadll(nc) + 3
217 hh = sk1*sk1 + sk2*sk2 + sk3*sk3
218 r = sk1*(v(1,nn)/dt12 + a(1,nn))
219 . + sk2*(v(2,nn)/dt12 + a(2,nn))
220 . + sk3*(v(3,nn)/dt12 + a(3,nn))
222 a(1,nn) = a(1,nn) - sk1*r
223 a(2,nn) = a(2,nn) - sk2*r
224 a(3,nn) = a(3,nn) - sk3*r
228 IF(iner(nn)/=zero)
THEN
230 IF(cr==1.OR.cr==3.OR.cr==5.OR.cr==7)
THEN
234 icftag(ic) = ic + iskip
235 jcftag(ic+iskip) = nc
237 iadll(nc+1)=iadll(nc) + 1
245 ar(3,nn) = -vr(3,nn)/dt12
250 iadll(nc+1)=iadll(nc) + 3
266 hh = sk1*sk1 + sk2*sk2 + sk3*sk3
267 r = sk1*(vr(1,nn)/dt12 + ar(1,nn))
268 . + sk2*(vr(2,nn)/dt12 + ar(2,nn))
269 . + sk3*(vr(3,nn)/dt12 + ar(3,nn))
271 ar(1,nn) = ar(1,nn) - sk1*r
272 ar(2,nn) = ar(2,nn) - sk2*r
273 ar(3,nn) = ar(3,nn) - sk3*r
276 IF(cr==2.OR.cr==3.OR.cr==6.OR.cr==7)
THEN
280 icftag(ic) = ic + iskip
281 jcftag(ic+iskip) = nc
283 iadll(nc+1)=iadll(nc) + 1
291 ar(2,nn) = -vr(2,nn)/dt12
296 iadll(nc+1)=iadll(nc) + 3
312 hh = sk1*sk1 + sk2*sk2 + sk3*sk3
313 r = sk1*(vr(1,nn)/dt12 + ar(1,nn))
314 . + sk2*(vr(2,nn)/dt12 + ar(2,nn))
315 . + sk3*(vr(3,nn)/dt12 + ar(3,nn))
317 ar(1,nn) = ar(1,nn) - sk1*r
318 ar(2,nn) = ar(2,nn) - sk2*r
319 ar(3,nn) = ar(3,nn) - sk3*r
322 IF(cr==4.OR.cr==5.OR.cr==6.OR.cr==7)
THEN
326 icftag(ic) = ic + iskip
327 jcftag(ic+iskip) = nc
329 iadll(nc+1)=iadll(nc) + 1
337 ar(1,nn) = -vr(1,nn)/dt12
342 iadll(nc+1)=iadll(nc) + 3
358 hh = sk1*sk1 + sk2*sk2 + sk3*sk3
359 r = sk1*(vr(1,nn)/dt12 + ar(1,nn))
360 . + sk2*(vr(2,nn)/dt12 + ar(2,nn))
361 . + sk3*(vr(3,nn)/dt12 + ar(3,nn))
363 ar(1,nn) = ar(1,nn) - sk1*r
364 ar(2,nn) = ar(2,nn) - sk2*r
365 ar(3,nn) = ar(3,nn) - sk3*r
454 aa=sk(7,is)*a(1,nn)+sk(8,is)*a(2,nn)+sk(9,is)*a(3,nn)
455 vv=sk(7,is)*v(1,nn)+sk(8,is)*v(2,nn)+sk(9,is)*v(3,nn)
456 a(1,nn)=a(1,nn)-sk(7,is)*aa
457 a(2,nn)=a(2,nn)-sk(8,is)*aa
458 a(3,nn)=a(3,nn)-sk(9,is)*aa
459 v(1,nn)=v(1,nn)-sk(7,is)*vv
460 v(2,nn)=v(2,nn)-sk(8,is)*vv
461 v(3,nn)=v(3,nn)-sk(9,is)*vv
463 aa=sk(4,is)*a(1,nn)+sk(5,is)*a(2,nn)+sk(6,is)*a(3,nn)
464 vv=sk(4,is)*v(1,nn)+sk(5,is)*v(2,nn)+sk(6,is)*v(3,nn)
465 a(1,nn)=a(1,nn)-sk(4,is)*aa
466 a(2,nn)=a(2,nn)-sk(5,is)*aa
467 a(3,nn)=a(3,nn)-sk(6,is)*aa
468 v(1,nn)=v(1,nn)-sk(4,is)*vv
469 v(2,nn)=v(2,nn)-sk(5,is)*vv
470 v(3,nn)=v(3,nn)-sk(6,is)*vv
472 aa=sk(7,is)*a(1,nn)+sk(8,is)*a(2,nn)+sk(9,is)*a(3,nn)
473 vv=sk(7,is)*v(1,nn)+sk(8,is)*v(2,nn)+sk(9,is)*v(3,nn)
474 a(1,nn)=a(1,nn)-sk(7,is)*aa
475 a(2,nn)=a(2,nn)-sk(8,is)*aa
476 a(3,nn)=a(3,nn)-sk(9,is)*aa
477 v(1,nn)=v(1,nn)-sk(7,is)*vv
478 v(2,nn)=v(2,nn)-sk(8,is)*vv
479 v(3,nn)=v(3,nn)-sk(9,is)*vv
480 aa=sk(4,is)*a(1,nn)+sk(5,is)*a(2,nn)+sk(6,is)*a(3,nn)
481 vv=sk(4,is)*v(1,nn)+sk(5,is)*v(2,nn)+sk(6,is)*v(3,nn)
482 a(1,nn)=a(1,nn)-sk(4,is)*aa
483 a(2,nn)=a(2,nn)-sk(5,is)*aa
484 a(3,nn)=a(3,nn)-sk(6,is)*aa
485 v(1,nn)=v(1,nn)-sk(4,is)*vv
486 v(2,nn)=v(2,nn)-sk(5,is)*vv
487 v(3,nn)=v(3,nn)-sk(6,is)*vv
489 aa =sk(1,is)*a(1,nn)+sk(2,is)*a(2,nn)+sk(3,is)*a(3,nn)
490 vv =sk(1,is)*v(1,nn)+sk(2,is)*v(2,nn)+sk(3,is)*v(3,nn)
491 a(1,nn)=a(1,nn)-sk(1,is)*aa
492 a(2,nn)=a(2,nn)-sk(2,is)*aa
493 a(3,nn)=a(3,nn)-sk(3,is)*aa
494 v(1,nn)=v(1,nn)-sk(1,is)*vv
495 v(2,nn)=v(2,nn)-sk(2,is)*vv
496 v(3,nn)=v(3,nn)-sk(3,is)*vv
498 aa=sk(7,is)*a(1,nn)+sk(8,is)*a(2,nn)+sk(9,is)*a(3,nn)
499 vv=sk(7,is)*v(1,nn)+sk(8,is)*v(2,nn)+sk(9,is)*v(3,nn)
500 a(1,nn)=a(1,nn)-sk(7,is)*aa
501 a(2,nn)=a(2,nn)-sk(8,is)*aa
502 a(3,nn)=a(3,nn)-sk(9,is)*aa
503 v(1,nn)=v(1,nn)-sk(7,is)*vv
504 v(2,nn)=v(2,nn)-sk(8,is)*vv
505 v(3,nn)=v(3,nn)-sk(9,is)*vv
506 aa=sk(1,is)*a(1,nn)+sk(2,is)*a(2,nn)+sk(3,is)*a(3,nn)
507 vv=sk(1,is)*v(1,nn)+sk(2,is)*v(2,nn)+sk(3,is)*v(3,nn)
508 a(1,nn)=a(1,nn)-sk(1,is)*aa
509 a(2,nn)=a(2,nn)-sk(2,is)*aa
510 a(3,nn)=a(3,nn)-sk(3,is)*aa
511 v(1,nn)=v(1,nn)-sk(1,is)*vv
512 v(2,nn)=v(2,nn)-sk(2,is)*vv
513 v(3,nn)=v(3,nn)-sk(3,is)*vv
515 aa=sk(1,is)*a(1,nn)+sk(2,is)*a(2,nn)+sk(3,is)*a(3,nn)
516 vv=sk(1,is)*v(1,nn)+sk(2,is)*v(2,nn)+sk(3,is)*v(3,nn)
517 a(1,nn)=a(1,nn)-sk(1,is)*aa
518 a(2,nn)=a(2,nn)-sk(2,is)*aa
519 a(3,nn)=a(3,nn)-sk(3,is)*aa
520 v(1,nn)=v(1,nn)-sk(1,is)*vv
521 v(2,nn)=v(2,nn)-sk(2,is)*vv
522 v(3,nn)=v(3,nn)-sk(3,is)*vv
523 aa=sk(4,is)*a(1,nn)+sk(5,is)*a(2,nn)+sk(6,is)*a(3,nn)
524 vv=sk(4,is)*v(1,nn)+sk(5,is)*v(2,nn)+sk(6,is)*v(3,nn)
525 a(1,nn)=a(1,nn)-sk(4,is)*aa
526 a(2,nn)=a(2,nn)-sk(5,is)*aa
527 a(3,nn)=a(3,nn)-sk(6,is)*aa
528 v(1,nn)=v(1,nn)-sk(4,is)*vv
529 v(2,nn)=v(2,nn)-sk(5,is)*vv
530 v(3,nn)=v(3,nn)-sk(6,is)*vv
540 aa =sk(7,is)*ar(1,nn)+sk(8,is)*ar(2,nn)+sk(9,is)*ar(3,nn)
541 vv =sk(7,is)*vr(1,nn)+sk(8,is)*vr(2,nn)+sk(9,is)*vr(3,nn)
542 ar(1,nn)=ar(1,nn)-sk(7,is)*aa
543 ar(2,nn)=ar(2,nn)-sk(8,is)*aa
544 ar(3,nn)=ar(3,nn)-sk(9,is)*aa
545 vr(1,nn)=vr(1,nn)-sk(7,is)*vv
546 vr(2,nn)=vr(2,nn)-sk(8,is)*vv
550 vv =sk(4,is)*vr(1,nn)+sk(5,is)*vr(2,nn)+sk(6,is)*vr(3,nn)
551 ar(1,nn)=ar(1,nn)-sk(4,is)*aa
553 ar(3,nn)=ar(3,nn)-sk(6,is)*aa
554 vr(1,nn)=vr(1,nn)-sk(4,is)*vv
555 vr(2,nn)=vr(2,nn)-sk(5,is)*vv
556 vr(3,nn)=vr(3,nn)-sk(6,is)*vv
558 aa =sk(7,is)*ar(1,nn)+sk(8,is)*ar(2,nn)+sk(9,is)*ar(3,nn)
559 vv =sk(7,is)*vr(1,nn)+sk(8,is)*vr(2,nn)+sk(9,is)*vr(3,nn)
560 ar(1,nn)=ar(1,nn)-sk(7,is)*aa
561 ar(2,nn)=ar(2,nn)-sk(8,is)*aa
562 ar(3,nn)=ar(3,nn)-sk(9,is)*aa
563 vr(1,nn)=vr(1,nn)-sk(7,is)*vv
564 vr(2,nn)=vr(2,nn)-sk(8,is)*vv
565 vr(3,nn)=vr(3,nn)-sk(9,is)*vv
566 aa =sk(4,is)*ar(1,nn)+sk(5,is)*ar(2,nn)+sk(6,is)*ar(3,nn)
567 vv =sk(4,is)*vr(1,nn)+sk(5,is)*vr(2,nn)+sk(6,is)*vr(3,nn)
568 ar(1,nn)=ar(1,nn)-sk(4,is)*aa
569 ar(2,nn)=ar(2,nn)-sk(5,is)*aa
570 ar(3,nn)=ar(3,nn)-sk(6,is)*aa
571 vr(1,nn)=vr(1,nn)-sk(4,is)*vv
572 vr(2,nn)=vr(2,nn)-sk(5,is)*vv
573 vr(3,nn)=vr(3,nn)-sk(6,is)*vv
575 aa =sk(1,is)*ar(1,nn)+sk(2,is)*ar(2,nn)+sk(3,is)*ar(3,nn)
576 vv =sk(1,is)*vr(1,nn)+sk(2,is)*vr(2,nn)+sk(3,is)*vr(3,nn)
577 ar(1,nn)=ar(1,nn)-sk(1,is)*aa
578 ar(2,nn)=ar(2,nn)-sk(2,is)*aa
579 ar(3,nn)=ar(3,nn)-sk(3,is)*aa
580 vr(1,nn)=vr(1,nn)-sk(1,is)*vv
581 vr(2,nn)=vr(2,nn)-sk(2,is)*vv
582 vr(3,nn)=vr(3,nn)-sk(3,is)*vv
584 aa =sk(7,is)*ar(1,nn)+sk(8,is)*ar(2,nn)+sk(9,is)*ar(3,nn)
585 vv =sk(7,is)*vr(1,nn)+sk(8,is)*vr(2,nn)+sk(9,is)*vr(3,nn)
586 ar(1,nn)=ar(1,nn)-sk(7,is)*aa
587 ar(2,nn)=ar(2,nn)-sk(8,is)*aa
588 ar(3,nn)=ar(3,nn)-sk(9,is)*aa
589 vr(1,nn)=vr(1,nn)-sk(7,is)*vv
590 vr(2,nn)=vr(2,nn)-sk(8,is)*vv
591 vr(3,nn)=vr(3,nn)-sk(9,is)*vv
592 aa =sk(1,is)*ar(1,nn)+sk(2,is)*ar(2,nn)+sk(3,is)*ar(3,nn)
593 vv =sk(1,is)*vr(1,nn)+sk(2,is)*vr(2,nn)+sk(3,is)*vr(3,nn)
594 ar(1,nn)=ar(1,nn)-sk(1,is)*aa
595 ar(2,nn)=ar(2,nn)-sk(2,is)*aa
596 ar(3,nn)=ar(3,nn)-sk(3,is)*aa
597 vr(1,nn)=vr(1,nn)-sk(1,is)*vv
598 vr(2,nn)=vr(2,nn)-sk(2,is)*vv
599 vr(3,nn)=vr(3,nn)-sk(3,is)*vv
601 aa =sk(1,is)*ar(1,nn)+sk(2,is)*ar(2,nn)+sk(3,is)*ar(3,nn)
602 vv =sk(1,is)*vr(1,nn)+sk(2,is)*vr(2,nn)+sk(3,is)*vr(3,nn)
603 ar(1,nn)=ar(1,nn)-sk(1,is)*aa
604 ar(2,nn)=ar(2,nn)-sk(2,is)*aa
605 ar(3,nn)=ar(3,nn)-sk(3,is)*aa
606 vr(1,nn)=vr(1,nn)-sk(1,is)*vv
607 vr(2,nn)=vr(2,nn)-sk(2,is)*vv
608 vr(3,nn)=vr(3,nn)-sk(3,is)*vv
609 aa =sk(4,is)*ar(1,nn)+sk(5,is)*ar(2,nn)+sk(6,is)*ar(3,nn)
610 vv =sk(4,is)*vr(1,nn)+sk(5,is)*vr(2,nn)+sk(6,is)*vr(3,nn)
611 ar(1,nn)=ar(1,nn)-sk(4,is)*aa
612 ar(2,nn)=ar(2,nn)-sk(5,is)*aa
613 ar(3,nn)=ar(3,nn)-sk(6,is)*aa
614 vr(1,nn)=vr(1,nn)-sk(4,is)*vv
615 vr(2,nn)=vr(2,nn)-sk(5,is)*vv
616 vr(3,nn)=vr(3,nn)-sk(6,is)*vv