36#include "implicit_f.inc"
70#include "implicit_f.inc"
88!||====================================================================
109#include "implicit_f.inc"
113#include "com01_c.inc"
129 IF (w(i)/=0) r = r + x(i)*y(i)
152 SUBROUTINE d_to_u(NDDL0 ,NDDL ,IDDL ,NDOF ,IKC ,
157#include "implicit_f.inc"
161 INTEGER NDDL,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*)
172 CALL imp_setb(d ,dr ,iddl ,ndof ,x )
186 . DD ,DDR ,Y ,R ,W_IMP )
190#include "implicit_f.inc"
194 INTEGER NDDL,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*) ,W_IMP(*)
197 . dd(*),ddr(*), y(*) ,r
205 CALL d_to_u(nddl0 ,nddl ,iddl ,ndof ,ikc ,
223 . DD ,DDR ,NORM2 ,W_IMP )
227#include "implicit_f.inc"
231 INTEGER NDDL,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*),W_IMP(*)
234 . dd(*),ddr(*), norm2
242 CALL imp_setb(dd ,ddr ,iddl ,ndof ,x )
260 . D1 ,D1R ,D2 ,D2R ,NORM2 ,
265#include "implicit_f.inc"
269 INTEGER NDDL,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*),(*)
272 . D1(*),D1R(*), D2(*),D2R(*), NORM2
280 CALL (D1 ,D1R ,IDDL ,NDOF ,X )
281 CALL imp_setb(d2 ,d2r ,iddl ,ndof ,y )
292 SUBROUTINE zero_ud( NUM,IDDL,NDOF,IKC ,D ,DR ,IR)
296#include "implicit_f.inc"
300 INTEGER NUM,IDDL(*),IKC(*) ,NDOF(*) ,
312 IF (ikc(id)==2) d(j,i)=zero
320 IF (ikc(id)==2) dr(j,i)=zero
338 1 NDDL ,NNZ ,IADL ,JDIL ,DIAG_K ,
343#include "implicit_f.inc"
347 INTEGER NDDL ,NNZ ,IADL(*) ,JDIL(*)
350 . DIAG_K(*), W(*), LT_K(*) ,V(*)
363 DO j =iadl(i),iadl(i+1)-1
366 w(i) = w(i) + l_k*v(k)
367 w(k) = w(k) + l_k*v(i)
397 1 NDDL ,NNZ ,IADL ,JDIL ,DIAG_K ,
402#include "implicit_f.inc"
406 INTEGER NDDL ,NNZ ,IADL(*) ,JDIL(*)
409 . DIAG_K(*), W(*), LT_K(*) ,V(*)
422 DO j =iadl(i),iadl(i+1)-1
425 w(i) = w(i) + l_k*v(k)
443 1 NDDL ,NDDLI ,IADL ,JDIL ,DIAG_K,
444 2 LT_K ,IADI ,JDII ,ITOK ,LT_I ,
445 3 V ,W ,MONVOL,VOLMON,X ,
446 4 IGRSURF,NMONV ,IMONV,NDOF ,
447 5 IPARI ,INTBUF_TAB ,A ,AR ,
448 6 D ,IBFV ,SKEW ,XFRAME,VE ,
449 7 MS ,NUM_IMP,NS_IMP,NE_IMP,INDEX2,
450 8 XI_C ,IUPD ,IRBE3 ,LRBE3 )
459#include "implicit_f.inc"
463#include "com04_c.inc"
464#include "impl1_c.inc"
468 INTEGER NDDL ,NDDLI,IUPD,
469 . IADL(*),JDIL(*),IADI(*),JDII(*),ITOK(*)
470 INTEGER NMONV,(*),MONVOL(*),
471 . ipari(*) ,ndof(*),ibfv(*),
472 . num_imp(*),ns_imp(*) ,ne_imp(*),index2(*),
476 . diag_k(*), w(*), lt_k(*) ,lt_i(*) ,v(*)
478 . x(3,*),a(3,*),ar(3,*), volmon(*) ,d(3,*),
481 TYPE(intbuf_struct_) INTBUF_TAB(*)
482 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
486 INTEGER I,J,K,II,KK,IBID
495 DO j =iadl(i),iadl(i+1)-1
498 w(i) = w(i) + l_k*v(k)
499 w(k) = w(k) + l_k*v(i)
503 IF (nddli>0.AND.intp_c<0 )
THEN
505 CALL int_matv(ipari ,intbuf_tab ,ndof ,num_imp,
506 1 ns_imp ,ne_imp ,index2 ,a ,ar ,
507 2 ve ,xi_c ,ms ,d ,ibfv ,
508 3 skew ,xframe ,v ,w ,iupd ,
509 4 irbe3 ,lrbe3 ,ibid ,ibid )
511 CALL int_matv(ipari ,intbuf_tab ,ndof ,num_imp,
512 1 ns_imp ,ne_imp ,index2 ,a ,ar ,
513 2 ve ,x ,ms ,d ,ibfv ,
514 3 skew ,xframe ,v ,w ,iupd ,
515 4 irbe3 ,lrbe3 ,ibid ,ibid )
521 DO j =iadi(i),iadi(i+1)-1
525 w(ii) = w(ii) + l_k*v(kk)
526 w(kk) = w(kk) + l_k*v(ii)
532 CALL mv_matv(monvol ,volmon ,x ,igrsurf,
533 1 ibid ,nmonv ,imonv ,v ,w ,
534 2 ndof ,ipari ,intbuf_tab ,a ,
535 3 ar ,d ,ibfv ,skew ,xframe ,
536 4 irbe3 ,lrbe3 ,ibid ,ibid )
542!||====================================================================
545!||
imp_lanzp ../engine/source/
implicit/imp_lanz.f
557 1 NDDL ,NDDLI ,IADL ,JDIL ,DIAG_K,
558 2 LT_K ,IADI ,JDII ,ITOK ,LT_I ,
560 5 MS ,X ,D ,DR ,NDOF ,
561 6 IPARI ,INTBUF_TAB ,NUM_IMP,NS_IMP,
562 7 NE_IMP,NSREM ,NSL ,IBFV ,SKEW ,
563 8 XFRAME,MONVOL,VOLMON,IGRSURF,
564 9 FR_MV ,NMONV ,IMONV ,INDEX2 ,XI_C ,
565 A IUPD ,IRBE3 ,LRBE3 ,IRBE2 ,LRBE2 )
574#include "implicit_f.inc"
578#include "com01_c.inc"
579#include "com04_c.inc"
580#include "impl1_c.inc"
584 INTEGER NDDL ,NDDLI,NDOF(*),IUPD,
585 . IADL(*),JDIL(*),IADI(*),JDII(*),ITOK(*),
586 . IPARI(*) ,NUM_IMP(*),NS_IMP(*) ,
587 . NE_IMP(*),NSREM ,NSL,IBFV(*),INDEX2(*),
588 . IRBE3(*) ,LRBE3(*),IRBE2(*) ,LRBE2(*)
589 INTEGER NMONV,IMONV(*),MONVOL(*),FR_MV(*)
592 . DIAG_K(*), W(*), LT_K(*) ,LT_I(*) ,V(*) ,
593 . A(3,*),(3,*),VE(3,*),D(3,*),DR(3,*),X(3,*),
594 . MS(*),VOLMON(*),SKEW(*),XFRAME(*),XI_C(*)
596 TYPE(intbuf_struct_) INTBUF_TAB(*)
597 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
601 INTEGER I,J,K,II,KK,IBID
610#include "vectorize.inc"
611 DO j =iadl(i),iadl(i+1)-1
614 w(i) = w(i) + l_k*v(k)
615 w(k) = w(k) + l_k*v(i)
619 IF ((nddli+nsrem+nsl)>0.AND.intp_c<0 )
THEN
621 CALL int_matvp(ipari ,intbuf_tab ,ndof ,num_imp,
622 1 ns_imp ,ne_imp ,index2 ,a ,ar ,
623 2 ve ,xi_c ,ms ,d ,ibfv ,
624 3 skew ,xframe ,v ,w ,dr ,
625 4 nsrem ,nsl ,iupd ,irbe3 ,lrbe3 ,
628 CALL int_matvp(ipari ,intbuf_tab ,ndof ,num_imp,
629 1 ns_imp ,ne_imp ,index2 ,a ,ar ,
630 2 ve ,x ,ms ,d ,ibfv ,
631 3 skew ,xframe ,v ,w ,dr ,
632 4 nsrem ,nsl ,iupd ,irbe3 ,lrbe3 ,
639#include "vectorize.inc"
640 DO j =iadi(i),iadi(i+1)-1
644 w(ii) = w(ii) + l_k*v(kk)
645 w(kk) = w(kk) + l_k*v(ii)
651 CALL mv_matv(monvol ,volmon ,x ,igrsurf,
652 1 fr_mv ,nmonv ,imonv ,v ,w ,
653 2 ndof ,ipari ,intbuf_tab ,a ,
654 3 ar ,d ,ibfv ,skew ,xframe ,
655 4 irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
659 IF ((nsrem+nsl)>0.AND.intp_c>=0)
660 .
CALL fr_matv( a ,ve ,d ,ms ,x ,
661 1 dr ,ar ,ipari ,intbuf_tab ,
662 2 ndof ,num_imp,ns_imp,ne_imp,v ,
663 3 nsrem ,nsl ,ibfv ,skew ,xframe ,
664 4 w ,irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
674 SUBROUTINE mav_zi(II,NDDL ,NNZ ,IADL ,JDIL ,DIAG_K ,
675 1 LT_K ,NNZZ ,IADM ,JDIM , LT_M ,W )
679#include "implicit_f.inc"
683 INTEGER NDDL ,NNZ ,IADL(*) ,JDIL(*),
684 1 II,NNZZ ,IADM(*) ,JDIM(*)
687 . diag_k(*), w(*), lt_k(*) ,lt_m(*)
693 INTEGER I,J,K,IZ,IM,JJ
701 DO j =iadl(i),iadl(i+1)-1
709 DO j =iadl(ii),iadl(ii+1)-1
717 w(i)=w(i)+diag_k(i)*lt_m(im)
718 DO j =iadl(i),iadl(i+1)-1
720 l_k = lt_k(j)*lt_m(im)
728 DO j =iadl(i),iadl(i+1)-1
734 w(i)=w(i)+lt_k(j)*lt_m(im)
747 SUBROUTINE mav_z(II,NDDL ,NNZ ,IADL ,JDIL ,DIAG_K ,
748 1 LT_K ,NNZM ,IADM ,JDIM , LT_M ,W )
752#include "implicit_f.inc"
756 INTEGER NDDL ,NNZ ,IADL(*) ,JDIL(*),
757 1 ii,nnzm ,iadm(*) ,jdim(*)
760 . diag_k(*), w(*), lt_k(*) ,lt_m(*)
781 DO j =iadl(ii),iadl(ii+1)-1
786 DO im=iadm(ii),iadm(ii+1)-1
788 w(i)=w(i)+diag_k(i)*lt_m(im)
789 DO j =iadl(i),iadl(i+1)-1
791 l_k = lt_k(j)*lt_m(im)
797 DO 100 im=iadm(ii),iadm(ii+1)-1
799 DO j =iadl(i),iadl(i+1)-1
804 w(i)=w(i)+lt_k(j)*lt_m(im)
812!||====================================================================
821#include "implicit_f.inc"
825#include "tabsiz_c.inc"
874#include "implicit_f.inc"
919#include "implicit_f.inc"
923 INTEGER N ,X(*), XC(*)
947#include "implicit_f.inc"
976#include "implicit_f.inc"
980#include "com04_c.inc"
981#include "param_c.inc"
982#include "tabsiz_c.inc"
991 INTEGER L2,L3,L4,L5,L6
1018 . IFLAG ,ELBUF ,ELBUF_C ,BUFMAT ,BUFMAT_C ,
1019 . FSAV ,VOLMON ,PARTSAV ,INTBUF_TAB,
1020 . INTBUF_TAB_C ,IPARI ,ISLEN7 ,IRLEN7 ,
1021 . ISLEN11 ,IRLEN11 ,ISLEN17 ,IRLEN17 ,IRLEN7T ,
1022 . ISLEN7T ,IRLEN20 ,ISLEN20 ,IRLEN20T ,ISLEN20T,
1023 . IRLEN20E,ISLEN20E,NEWFRONT,ELBUF_TAB,ELBUF_IMP,
1035#include "implicit_f.inc"
1039#include "com01_c.inc"
1040#include "com04_c.inc"
1041#include "param_c.inc"
1042#include "tabsiz_c.inc"
1043#include "impl1_c.inc"
1047 INTEGER IFLAG, IPARI(NPARI,*),ISLEN7 ,IRLEN7 ,
1048 . ISLEN11,IRLEN11,ISLEN17 ,IRLEN17,IRLEN7T ,
1049 . ISLEN7T,IRLEN20,ISLEN20 ,IRLEN20T,ISLEN20T,
1050 . IRLEN20E,,NEWFRONT(*),IPARG(NPARG,NGROUP)
1053 . elbuf(*) ,elbuf_c(*) ,bufmat(*) ,bufmat_c(*) ,
1054 . fsav(*) ,volmon(*) ,partsav(*)
1055 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB, ELBUF_IMP
1057 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*), INTBUF_TAB_C(*)
1061 INTEGER LI1,LI2,LI3,LI4,LI5,LI6,LL,N,IAD,JD(50),JFI,
1072 CALL copy_elbuf(elbuf_tab,elbuf_imp,iparg,ngroup)
1073 CALL cp_real(li1,elbuf,elbuf_c)
1074 CALL cp_real(li2,bufmat,bufmat_c)
1076 CALL cp_real(li3,fsav,bufmat_c(ll))
1078 CALL cp_real(li4,volmon,bufmat_c(ll))
1080 CALL cp_real(li5,partsav,bufmat_c(ll))
1081 IF (ninter/=0.AND.iline/=1)
THEN
1087 IF (ity == 24.AND.igsti==6)
THEN
1088 IF (ipari(53,n)<0) ipari(53,n)= iabs(ipari(53,n))
1095 CALL cp_ifront(iflag ,ipari ,islen7 ,irlen7 ,
1096 . islen11,irlen11,islen17 ,irlen17,irlen7t ,
1097 . islen7t,irlen20,islen20 ,irlen20t,islen20t,
1098 . irlen20e,islen20e,newfront)
1101 ELSEIF (iflag==2)
THEN
1102 CALL copy_elbuf(elbuf_imp,elbuf_tab,iparg,ngroup)
1103 CALL cp_real(li1,elbuf_c,elbuf)
1104 CALL cp_real(li2,bufmat_c,bufmat)
1106 CALL cp_real(li3,bufmat_c(ll),fsav)
1108 CALL cp_real(li4,bufmat_c(ll),volmon)
1110 CALL cp_real(li5,bufmat_c(ll),partsav)
1111 IF (ninter/=0.AND.iline/=1)
THEN
1118 IF (ity==24.AND.igsti==6.AND.nrebou<0)
THEN
1121 ipari(53,n) = -nrebou
1122 ELSEIF (imconv>=0)
THEN
1124 CALL cp_real(ll,intbuf_tab(n)%STIF_OLD,intbuf_tab_cp(n)%STIF_OLD)
1133 CALL cp_ifront(iflag ,ipari ,islen7 ,irlen7 ,
1134 . islen11,irlen11,islen17 ,irlen17,irlen7t ,
1135 . islen7t,irlen20,islen20 ,irlen20t,islen20t,
1136 . irlen20e,islen20e,newfront)
1152 1 F_DDL ,L_DDL ,IADL ,JDIL ,DIAG_K ,
1157#include "implicit_f.inc"
1158#include "comlock.inc"
1162 INTEGER F_DDL ,L_DDL ,IADL(*) ,JDIL(*),NDDL
1165 . diag_k(*), w(*), lt_k(*) ,v(*)
1181 DO j =iadl(i),iadl(i+1)-1
1184 w(i) = w(i) + l_k*v(k)
1185 w_tmp(k) = w_tmp(k) + l_k*v(i)
1191#include "lockon.inc"
1193 w(i) = w(i) + w_tmp(i)
1195#include "lockoff.inc"
1217 1 NDDL ,NDDLI ,IADL ,JDIL ,DIAG_K,
1218 2 LT_K ,IADI ,JDII ,ITOK ,LT_I ,
1220 5 MS ,X ,D ,DR ,NDOF ,
1221 6 IPARI ,INTBUF_TAB ,NUM_IMP,NS_IMP,
1222 7 NE_IMP,NSREM ,NSL ,IBFV ,SKEW ,
1223 8 XFRAME,MONVOL,VOLMON,IGRSURF ,
1224 9 FR_MV ,NMONV ,IMONV ,INDEX2 ,XI_C ,
1225 A IUPD ,IRBE3 ,LRBE3 ,IRBE2 ,LRBE2 ,
1226 B F_DDL ,L_DDL ,ITASK )
1235#include "implicit_f.inc"
1236#include "comlock.inc"
1240#include "com01_c.inc"
1241#include "com04_c.inc"
1242#include "impl1_c.inc"
1243#include "task_c.inc"
1247 INTEGER NDDL ,NDDLI,NDOF(*),IUPD,
1248 . IADL(*),JDIL(*),IADI(*),JDII(*),ITOK(*),
1249 . IPARI(*) ,NUM_IMP(*),NS_IMP(*) ,
1250 . NE_IMP(*),NSREM ,NSL,IBFV(*),INDEX2(*),
1251 . IRBE3(*),LRBE3(*),F_DDL ,L_DDL ,ITASK,
1253 INTEGER NMONV,IMONV(*),MONVOL(*),FR_MV(*)
1256 . DIAG_K(*), W(*), LT_K(*) ,LT_I(*) ,V(*) ,
1257 . A(3,*),AR(3,*),VE(3,*),D(3,*),DR(3,*),X(3,*),
1258 . MS(*),VOLMON(*),SKEW(*),XFRAME(*),XI_C(*)
1260 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
1261 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
1265 INTEGER I,J,K,II,KK,F_DDLI,L_DDLI
1267 . L_K,WORK_II(NDDLI)
1269 CALL MAV_LT_H(NDDL ,
1270 1 F_DDL ,L_DDL ,IADL ,JDIL ,DIAG_K ,
1276 IF ((NDDLI+NSREM+NSL)>0.AND.INTP_C<0 ) THEN
1280 CALL int_matvp(ipari ,intbuf_tab ,ndof ,num_imp,
1281 1 ns_imp ,ne_imp ,index2 ,a ,ar ,
1282 2 ve ,xi_c ,ms ,d ,ibfv ,
1283 3 skew ,xframe ,v ,w ,dr ,
1284 4 nsrem ,nsl ,iupd ,irbe3 ,lrbe3 ,
1287 CALL int_matvp(ipari ,intbuf_tab ,ndof ,num_imp,
1288 1 ns_imp ,ne_imp ,index2 ,a ,ar ,
1289 2 ve ,x ,ms ,d ,ibfv ,
1290 3 skew ,xframe ,v ,w ,dr ,
1291 4 nsrem ,nsl ,iupd ,irbe3 ,lrbe3 ,
1295 ELSEIF(nddli>0)
THEN
1297 f_ddli=1+itask*nddli/nthread
1298 l_ddli=(itask+1)*nddli/nthread
1306 DO j =iadi(i),iadi(i+1)-1
1310 work_ii(i) = work_ii(i) + l_k*v(kk)
1311 work_ii(k) = work_ii(k) + l_k*v(ii)
1315#include "lockon.inc"
1318 w(ii) = w(ii) + work_ii(i)
1320#include "lockoff.inc"
1330 CALL mv_matv(monvol ,volmon ,x ,igrsurf,
1331 1 fr_mv ,nmonv ,imonv ,v ,w ,
1332 2 ndof ,ipari ,intbuf_tab ,a ,
1333 3 ar ,d ,ibfv ,skew ,xframe ,
1334 4 irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
1338 IF ((nsrem+nsl)>0.AND.intp_c>=0)
1339 .
CALL fr_matv( a ,ve ,d ,ms ,x ,
1340 1 dr ,ar ,ipari ,intbuf_tab ,
1341 2 ndof ,num_imp,ns_imp,ne_imp,v ,
1342 3 nsrem ,nsl ,ibfv ,skew ,xframe ,
1343 4 w ,irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
1370 1 NDDL ,NDDLI ,IADL ,JDIL ,DIAG_K,
1371 2 LT_K ,IADI ,JDII ,ITOK ,LT_I ,
1373 5 MS ,X ,D ,DR ,NDOF ,
1374 6 IPARI ,INTBUF_TAB ,NUM_IMP,NS_IMP,
1375 7 NE_IMP,NSREM ,NSL ,IBFV ,SKEW ,
1376 8 XFRAME,MONVOL,VOLMON,IGRSURF,
1377 9 FR_MV ,NMONV ,IMONV ,INDEX2 ,XI_C ,
1378 A IUPD ,IRBE3 ,LRBE3 ,IRBE2 ,LRBE2 ,
1379 B F_DDL ,L_DDL ,ITASK )
1388#include "implicit_f.inc"
1389#include "comlock.inc"
1393#include "com01_c.inc"
1394#include "com04_c.inc"
1395#include "impl1_c.inc"
1396#include "task_c.inc"
1397#include "timeri_c.inc"
1401 INTEGER NDDL ,NDDLI,NDOF(*),IUPD,
1402 . iadl(*),jdil(*),iadi(*),jdii(*),itok(*),
1403 . ipari(*) ,num_imp(*),ns_imp(*) ,
1404 . ne_imp(*),nsrem ,nsl,ibfv(*),index2(*),
1405 . irbe3(*),lrbe3(*),f_ddl ,l_ddl ,itask,
1407 INTEGER NMONV,IMONV(*),MONVOL(*),FR_MV(*)
1410 . DIAG_K(*), (*), LT_K(*) ,LT_I(*) ,V(*) ,
1411 . A(3,*),AR(3,*),VE(3,*),D(3,*),DR(3,*),X(3,*),
1412 . MS(*),VOLMON(*),SKEW(*),XFRAME(*),XI_C(*)
1414 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
1415 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
1419 INTEGER I,J,K,II,KK,F_DDLI,L_DDLI
1421 . L_K,WORK_II(NDDLI)
1423 CALL MAV_LU_H(NDDL ,
1424 1 F_DDL ,L_DDL ,IADL ,JDIL ,DIAG_K ,
1429 IF ((nddli+nsrem+nsl)>0.AND.intp_c<0 )
THEN
1433 CALL int_matvp(ipari,intbuf_tab ,ndof ,num_imp,
1434 1 ns_imp ,ne_imp ,index2 ,a ,ar ,
1435 2 ve ,xi_c ,ms ,d ,ibfv ,
1436 3 skew ,xframe ,v ,w ,dr ,
1437 4 nsrem ,nsl ,iupd ,irbe3 ,lrbe3 ,
1440 CALL int_matvp(ipari,intbuf_tab ,ndof ,num_imp,
1441 1 ns_imp ,ne_imp ,index2 ,a ,ar ,
1442 2 ve ,x ,ms ,d ,ibfv ,
1443 3 skew ,xframe ,v ,w ,dr ,
1444 4 nsrem ,nsl ,iupd ,irbe3 ,lrbe3 ,
1448 ELSEIF(nddli>0)
THEN
1449 f_ddli=1+itask*nddli/nthread
1450 l_ddli=(itask+1)*nddli/nthread
1453 CALL mav_liuh(f_ddli ,l_ddli ,iadi ,jdii ,itok ,
1454 1 lt_i ,work_ii ,v ,w ,itask )
1464 DO j =iadi(i),iadi(i+1)-1
1468 work_ii(i) = work_ii(i) + l_k*v(kk)
1469 work_ii(k) = work_ii(k) + l_k*v(ii)
1473#include "lockon.inc"
1476 w(ii) = w(ii) + work_ii(i)
1478#include "lockoff.inc"
1489 CALL mv_matv(monvol ,volmon ,x ,igrsurf,
1490 1 fr_mv ,nmonv ,imonv ,v ,w ,
1491 2 ndof ,ipari ,intbuf_tab,a ,
1492 3 ar ,d ,ibfv ,skew ,xframe ,
1493 4 irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
1497 IF ((nsrem+nsl)>0.AND.intp_c>=0)
1498 .
CALL fr_matv( a ,ve ,d ,ms ,x ,
1499 1 dr ,ar ,ipari ,intbuf_tab ,
1500 2 ndof ,num_imp,ns_imp,ne_imp,v ,
1501 3 nsrem ,nsl ,ibfv ,skew ,xframe ,
1502 4 w ,irbe3 ,lrbe3 ,irbe2 ,lrbe2 )
1536#include "implicit_f.inc"
1537#include "comlock.inc"
1541#include "mvsiz_p.inc"
1545#include "param_c.inc"
1546#include "com01_c.inc"
1547#include "impl2_c.inc"
1548#include "timeri_c.inc"
1552 INTEGER F_DDL , ,W(*) ,ITASK
1563 IF (itask==0) r_n2 = zero
1567 IF (nspmd == 1)
THEN
1569 DO n=f_ddl,l_ddl,nvsiz
1570 ne =
min(l_ddl-n+1,nvsiz)
1580#include "lockon.inc"
1582#include "lockoff.inc"
1587 DO n=f_ddl,l_ddl,mvsiz
1588 ne =
min(l_ddl-n+1,mvsiz)
1592 rtmp(i) = x(j)*y(j)*w(j)
1598#include "lockon.inc"
1600#include "lockoff.inc"
1605!
IF(imonm > 0)
CALL startime(timers,67)
1631 . DD ,DDR ,Y ,R ,W_IMP ,
1632 . F_DDL ,L_DDL ,ITASK )
1640#include "implicit_f.inc"
1644 INTEGER NDDL,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*) ,W_IMP(*) ,
1645 . f_ddl ,l_ddl ,itask
1648 . dd(*),ddr(*), y(*) ,r
1654 IF (itask == 0 )
THEN
1655 ALLOCATE(tmp_w1(nddl))
1656 CALL d_to_u(nddl0 ,nddl ,iddl ,ndof ,ikc ,
1662 CALL produt_h(f_ddl,l_ddl,tmp_w1,y,w_imp,r,itask)
1666 IF (itask == 0 )
DEALLOCATE(tmp_w1)
1685 . DD ,DDR ,NORM2 ,W_IMP ,F_DDL ,
1694#include "implicit_f.inc"
1698 INTEGER NDDL,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*),W_IMP(*) ,
1699 . F_DDL ,L_DDL ,ITASK
1702 . DD(*),DDR(*), NORM2
1708 IF (itask == 0 )
THEN
1709 ALLOCATE(tmp_w1(nddl0))
1710 CALL imp_setb(dd ,ddr ,iddl ,ndof ,tmp_w1)
1716 CALL produt_h(f_ddl,l_ddl,tmp_w1,tmp_w1,w_imp,norm2,itask)
1720 IF (itask == 0 )
DEALLOCATE(tmp_w1)
1739 . D1 ,D1R ,D2 ,D2R ,NORM2 ,
1740 . W_IMP ,F_DDL ,L_DDL ,ITASK )
1748#include "implicit_f.inc"
1752 INTEGER ,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*),W_IMP(*),
1753 . f_ddl ,l_ddl ,itask
1756 . d1(*),d1r(*), d2(*),d2r(*), norm2
1762 IF (itask == 0 )
THEN
1763 ALLOCATE(tmp_w1(nddl0),tmp_w2(nddl0))
1764 CALL imp_setb(d1 ,d1r ,iddl ,ndof ,tmp_w1)
1765 CALL imp_setb(d2 ,d2r ,iddl ,ndof ,tmp_w2)
1772 CALL produt_h(f_ddl,l_ddl,tmp_w1,tmp_w2,w_imp,norm2,itask)
1776 IF (itask == 0 )
DEALLOCATE(tmp_w1,tmp_w2)
1783!||--- called by ------------------------------------------------------
1790 1 F_DDL ,L_DDL ,IADL ,JDIL ,DIAG_K ,
1799#include "implicit_f.inc"
1803 INTEGER F_DDL ,L_DDL ,IADL(*) ,JDIL(*),NDDL
1806 . DIAG_K(*), W(*), LT_K(*) ,V(*)
1819 DO j =iadl(i),iadl(i+1)-1
1822 w(i) = w(i) + l_k*v(k)
1830 w(i) = w(i) + l_k*v(k)
1851 . ISLEN11,IRLEN11,ISLEN17 ,IRLEN17,IRLEN7T ,
1852 . ISLEN7T,IRLEN20,ISLEN20 ,IRLEN20T,ISLEN20T,
1853 . IRLEN20E,ISLEN20E,NEWFRONT)
1863#include "implicit_f.inc"
1867#include "com01_c.inc"
1868#include "com04_c.inc"
1869#include "task_c.inc"
1870#include "param_c.inc"
1871#include "tabsiz_c.inc"
1872#include "impl1_c.inc"
1873#include "scr18_c.inc"
1874#include "parit_c.inc"
1878 INTEGER IFLAG ,IPARI(NPARI,*),ISLEN7 ,IRLEN7 ,
1879 . islen11,irlen11,islen17 ,irlen17,irlen7t ,
1880 . islen7t,irlen20,islen20 ,irlen20t,islen20t,
1881 . irlen20e,islen20e,newfront(*)
1886 INTEGER N, LENS,LENR,INACTI,NSN,NMN,IERR,IID,RID,I,P,
1887 . igap,ityp,lens0,lenr0,intth,j,jfi,jd(50),ity,igsti,
1909 IF (ity == 24.AND.igsti==6)
THEN
1920 IF (nspmd<=1)
RETURN
1930 inacti = ipari(22,i)
1932 IF(ityp==7.OR.ityp==10.OR.ityp==11.OR.ityp==24)
THEN
1936 lens = lens +
nsnsi(i)%P(p)
1937 lenr = lenr +
nsnfi(i)%P(p)
1944 IF(ityp==7.OR.ityp==10.OR.ityp==24)
THEN
1969 ELSEIF(ityp==11)
THEN
1987 ELSEIF(ityp==17)
THEN
1996 IF(
ALLOCATED(ri7cp))
DEALLOCATE(ri7cp)
2006 inacti = ipari(22,i)
2008 IF(ityp==7.OR.ityp==10.OR.ityp==11.OR.ityp==24)
THEN
2009 ii7cp(iid) = ipari(24,i)
2010 ii7cp(iid+1) = ipari(57,i)
2019 lens = lens +
nsnsi(i)%P(p)
2020 lenr = lenr +
nsnfi(i)%P(p)
2029 IF(ityp==7.OR.ityp==10.OR.ityp==24)
THEN
2035 IF (intth > 0 )
THEN
2049 CALL cp_real(3*lenr,
xfi(i)%P(1,1),ri7cp(rid))
2051 CALL cp_real(3*lenr,
vfi(i)%P(1,1),ri7cp(rid))
2055 CALL cp_real(3*lenr*nthread,
afi(i)%P(1,1),ri7cp(rid))
2056 rid=rid+3*lenr*nthread
2058 rid=rid+lenr*nthread
2061 rid=rid+lenr*nthread
2065 rid=rid+lenr*nthread
2067 rid=rid+lenr*nthread
2088 ELSEIF(ityp==11)
THEN
2092 IF (intth > 0 )
THEN
2106 CALL cp_real(6*lenr,
xfi(i)%P(1,1),ri7cp(rid))
2108 CALL cp_real(6*lenr,
vfi(i)%P(1,1),ri7cp(rid))
2110 IF(inacti==5.OR.inacti==6)
THEN
2116 CALL cp_real(6*lenr*nthread,
afi(i)%P(1,1),ri7cp(rid))
2117 rid=rid+6*lenr*nthread
2119 rid=rid+2*lenr*nthread
2122 rid=rid+2*lenr*nthread
2135 ELSEIF(ityp==17)
THEN
2156 CALL ancmsg(msgid=82,anmode=aninfo,
2170 inacti = ipari(22,i)
2173 IF(ityp==7.OR.ityp==10.OR.ityp==11.OR.ityp==24)
THEN
2174 ipari(24,i) =
ii7cp(iid)
2175 ipari(57,i) =
ii7cp(iid+1)
2179 lenr0 = lenr0 +
nsnfi(i)%P(p)
2188 lens = lens +
nsnsi(i)%P(p)
2189 lenr = lenr +
nsnfi(i)%P(p)
2192 IF(
ASSOCIATED(
nsvsi(i)%P))
DEALLOCATE(
nsvsi(i)%P)
2193 ALLOCATE(
nsvsi(i)%P(lens),stat=ierr)
2199 IF(
ASSOCIATED(
nsvfi(i)%P))
DEALLOCATE(
nsvfi(i)%P)
2200 ALLOCATE(
nsvfi(i)%P(lenr),stat=ierr)
2203 IF(ityp==7.OR.ityp==10.OR.ityp==24)
THEN
2204 IF(
ASSOCIATED(
itafi(i)%P))
DEALLOCATE
2205 ALLOCATE(
itafi(i)%P(lenr),stat=ierr)
2208 IF(
ASSOCIATED(
kinfi(i)%P))
DEALLOCATE(
kinfi(i)%P)
2209 ALLOCATE(
kinfi(i)%P(lenr),stat=ierr)
2214 ALLOCATE(
matsfi(i)%P(lenr),stat=ierr)
2218 IF(
ASSOCIATED(
msfi(i)%P))
DEALLOCATE(
msfi(i)%P)
2219 ALLOCATE(
msfi(i)%P(lenr),stat=ierr)
2222 IF(
ASSOCIATED(
stifi(i)%P))
DEALLOCATE(
stifi(i)%P)
2223 ALLOCATE(
stifi(i)%P(lenr),stat=ierr)
2227 IF(
ASSOCIATED(
gapfi(i)%P))
DEALLOCATE(
gapfi(i)%P)
2228 ALLOCATE(
gapfi(i)%P(lenr),stat=ierr)
2232 IF(
ASSOCIATED(
xfi(i)%P))
DEALLOCATE(
xfi(i)%P)
2233 ALLOCATE(
xfi(i)%P(3,lenr),stat=ierr)
2234 CALL cp_real(3*lenr,ri7cp(rid),
xfi(i)%P(1,1))
2236 IF(
ASSOCIATED(
vfi(i)%P))
DEALLOCATE(
vfi(i)%P)
2237 ALLOCATE(
vfi(i)%P(3,lenr),stat=ierr)
2238 CALL cp_real(3*lenr,ri7cp(rid),
vfi(i)%P(1,1))
2241 IF(
ASSOCIATED(
afi(i)%P))
DEALLOCATE(
afi(i)%P)
2242 ALLOCATE(
afi(i)%P(3,lenr*nthread),stat=ierr)
2243 CALL cp_real(3*lenr*nthread,ri7cp(rid),
afi(i)%P(1,1))
2244 rid=rid+3*lenr*nthread
2245 IF(
ASSOCIATED(
stnfi(i)%P))
DEALLOCATE(
stnfi(i)%P)
2246 ALLOCATE(
stnfi(i)%P(lenr*nthread),stat=ierr)
2248 rid=rid+lenr*nthread
2251 IF(
ASSOCIATED(
vscfi(i)%P))
DEALLOCATE(
vscfi(i)%P)
2252 ALLOCATE(
vscfi(i)%P(lenr),stat=ierr)
2254 rid=rid+lenr*nthread
2259 ALLOCATE(
fthefi(i)%P(lenr*nthread),stat=ierr)
2261 rid=rid+lenr*nthread
2264 ALLOCATE(
condnfi(i)%P(lenr*nthread),stat=ierr)
2266 rid=rid+lenr*nthread
2269 ALLOCATE(
tempfi(i)%P(lenr),stat=ierr)
2274 ALLOCATE(
areasfi(i)%P(lenr),stat=ierr)
2283 ALLOCATE(
irtlm_fi(i)%P(2,lenr),stat=ierr)
2287 ALLOCATE(
time_sfi(i)%P(lenr),stat=ierr)
2300 IF (nrebou <0.AND.imconv>=0)
THEN
2310 ELSEIF(ityp==11)
THEN
2313 ALLOCATE(
itafi(i)%P(2*lenr),stat=ierr)
2318 ALLOCATE(
matsfi(i)%P(lenr),stat=ierr)
2322 IF(
ASSOCIATED(
msfi(i)%P))
DEALLOCATE(
msfi(i)%P)
2323 ALLOCATE(
msfi(i)%P(2*lenr),stat=ierr)
2326 IF(
ASSOCIATED(
stifi(i)%P))
DEALLOCATE(
stifi(i)%P)
2327 ALLOCATE(
stifi(i)%P(lenr),stat=ierr)
2331 IF(
ASSOCIATED(
gapfi(i)%P))
DEALLOCATE(
gapfi(i)%P)
2332 ALLOCATE(
gapfi(i)%P(lenr),stat=ierr)
2336 IF(
ASSOCIATED(
xfi(i)%P))
DEALLOCATE(
xfi(i)%P)
2337 ALLOCATE(
xfi(i)%P(3,2*lenr),stat=ierr)
2338 CALL cp_real(6*lenr,ri7cp(rid),
xfi(i)%P(1,1))
2340 IF(
ASSOCIATED(
vfi(i)%P))
DEALLOCATE(
vfi(i)%P)
2341 ALLOCATE(
vfi(i)%P(3,2*lenr),stat=ierr)
2342 CALL cp_real(6*lenr,ri7cp(rid),
vfi(i)%P(1,1))
2344 IF(inacti==5.OR.inacti==6)
THEN
2345 IF(
ASSOCIATED(
penfi(i)%P))
DEALLOCATE(
penfi(i)%P)
2346 ALLOCATE(
penfi(i)%P(2,lenr),stat=ierr)
2352 IF(
ASSOCIATED(
afi(i)%P))
DEALLOCATE(
afi(i)%P)
2353 ALLOCATE(
afi(i)%P(3,2*lenr*nthread),stat=ierr)
2354 CALL cp_real(6*lenr*nthread,ri7cp(rid),
afi(i)%P(1,1))
2355 rid=rid+6*lenr*nthread
2358 ALLOCATE(
stnfi(i)%P(2*lenr*nthread),stat=ierr)
2363 IF(
ASSOCIATED(
vscfi(i)%P))
DEALLOCATE(
vscfi(i)%P)
2364 ALLOCATE(
vscfi(i)%P(2*lenr),stat=ierr)
2366 rid=rid+2*lenr*nthread
2370 ALLOCATE(
fthefi(i)%P(lenr),stat=ierr)
2374 ALLOCATE(
tempfi(i)%P(lenr),stat=ierr)
2378 ALLOCATE(
areasfi(i)%P(lenr),stat=ierr)
2386 ELSEIF(ityp==17)
THEN
2407 CALL ancmsg(msgid=82,anmode=aninfo,
2419!||--- calls -----------------------------------------------------
2426#include "implicit_f.inc"
2430#include "com01_c.inc"
2431#include "com04_c.inc"
2438 . dd(3,*),ddr(3,*), norm2
2446 IF (weight(i)==1)
THEN
2447 norm2 = norm2 + dd(1,i)*dd(1,i)
2448 norm2 = norm2 + dd(2,i)*dd(2,i)
2449 norm2 = norm2 + dd(3,i)*dd(3,i)
2454 IF (weight(i)==1)
THEN
2455 norm2 = norm2 + ddr(1,i)*ddr(1,i)
2456 norm2 = norm2 + ddr(2,i)*ddr(2,i)
2457 norm2 = norm2 + ddr(3,i)*ddr(3,i)
2476!||
spmd_sumf_v ../engine/source/mpi/
implicit/imp_spmd.f
2479 1 NDDL ,IADL ,JDIL ,DIAG_K,LT_K ,
2480 2 V ,W ,F_DDL ,L_DDL ,ITASK ,
2485#include "implicit_f.inc"
2489#include "com01_c.inc"
2493 INTEGER NDDL ,IADL(*),JDIL(*),F_DDL ,L_DDL ,ITASK,
2497 . DIAG_K(*), W(*), LT_K(*) ,V(*)
2503 CALL MAV_LU_H(NDDL ,
2504 1 F_DDL ,L_DDL ,IADL ,JDIL ,DIAG_K ,
2506 IF (nddli>0)
CALL mav_lui_h(f_ddl ,l_ddl ,v ,w )
2530#include "implicit_f.inc"
2534 INTEGER F_DDL ,L_DDL
2549 w(i) = w(i) + l_k*v(k)
2555!||====================================================================
2562 SUBROUTINE cp_dm(NUMGEO,GEO,IGEO,DMCP,IFLAG)
2566#include "implicit_f.inc"
2570#include "param_c.inc"
2574 INTEGER NUMGEO,IGEO(NPROPGI,*),IFLAG
2577 . geo(npropg,*),dmcp(*)
2584 IF (iflag == 1)
THEN
2587 IF(igtyp==1.OR.(igtyp>=9 .AND. igtyp<=11).OR.igtyp==16)
THEN
2595 IF(igtyp==1.OR.(igtyp>=9 .AND. igtyp<=11).OR.igtyp==16)
THEN
2612#include "implicit_f.inc"
2616 INTEGER F_DDL,L_DDL ,ITASK
2650#include "implicit_f.inc"
2654 INTEGER ,L_DDL ,ITASK
2674 b(i) = b(i) + s*a(i)
2695#include "implicit_f.inc"
2699 INTEGER NDDL,MD_F,MD_L,F_DDL,L_DDL ,WDDL(*),
2723 CALL produt_h(f_ddl ,l_ddl ,a(1,i) ,a(1,j) ,wddl, sij ,itask)
2725 CALL vaxpy_h(f_ddl ,l_ddl ,a(1,i) ,a(1,j) ,s ,itask )
2730 CALL produt_h(f_ddl ,l_ddl ,a(1,j) ,a(1,j) ,wddl, sjj ,itask)
2731 s= one/
max(em20,sqrt(sjj))
2732 CALL vscal_h(f_ddl ,l_ddl ,a(1,j) ,s ,itask )
2748 SUBROUTINE mav_nm(F_ND ,L_ND ,ND ,MD ,A ,B ,C ,WDDL,ITASK )
2752#include "implicit_f.inc"
2756 INTEGER F_ND ,L_ND ,ND ,MD ,ITASK,WDDL(*)
2759 . A(ND,*), B(*), C(*)
2790!||====================================================================
2795#include "implicit_f.inc"
2799 INTEGER ND ,MD ,ITASK
2802 . a(nd,*), b(*), c(*)
2821 IF (itask /= 0)
RETURN
2839 SUBROUTINE mam_nm(F_ND ,L_ND ,ND, MD ,A ,B ,C ,WDDL,ITASK)
2843#include "implicit_f.inc"
2847 INTEGER ,L_ND ,ND ,MD ,ITASK,WDDL(*)
2850 . a(nd,*), b(nd,*), c(md,*)
2870 CALL produt_h( f_nd ,l_nd ,a(1,i) ,b(1,j) ,wddl,c(i,j),itask)
2886#include "implicit_f.inc"
2890 INTEGER ND ,MD ,ITASK
2912 IF (itask /= 0)
RETURN
2918 c(i,j) = c(i,j)+a(i,k)*b(k,j)
2931!||====================================================================
2949 1 NDDL ,NDDLI ,IADK ,JDIK ,DIAG_K,
2950 2 LT_K ,IADI ,JDII ,ITOK ,LT_I ,
2952 5 MS ,X ,D ,DR ,NDOF ,
2953 6 IPARI ,INTBUF_TAB ,NUM_IMP,NS_IMP,
2954 7 NE_IMP,NSREM ,NSL ,IBFV ,SKEW ,
2955 8 XFRAME,MONVOL,VOLMON,IGRSURF ,
2956 9 FR_MV ,NMONV ,IMONV ,IND_IMP ,XI_C ,
2957 A IUPD ,IRBE3 ,LRBE3 ,IRBE2 ,LRBE2 ,
2958 B IADM ,JDIM ,DIAG_M,LT_M ,F_DDL ,
2959 C L_DDL ,ITASK ,V_W )
2969#include "implicit_f.inc"
2970#include "comlock.inc"
2974#include "com04_c.inc"
2978 INTEGER NDDL ,NDDLI,NDOF(*),IUPD,
2979 . IADK(*),JDIK(*),IADI(*),JDII(*),ITOK(*),
2980 . IPARI(*) ,NUM_IMP(*),NS_IMP(*) ,
2981 . NE_IMP(*),NSREM ,NSL,IBFV(*),IND_IMP(*),
2982 . IRBE3(*),LRBE3(*),F_DDL ,L_DDL ,ITASK,
2983 . IRBE2(*),LRBE2(*),IADM(*) ,JDIM(*)
2984 INTEGER NMONV,(*),MONVOL(*),FR_MV(*)
2987 . DIAG_K(*), W(*), LT_K(*) ,LT_I(*) ,V(*) ,
2988 . A(3,*),AR(3,*),VE(3,*),D(3,*),DR(3,*),X(3,*),
2989 . MS(*),(*),SKEW(*),XFRAME(
2992 TYPE(intbuf_struct_) INTBUF_TAB(*)
2993 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
3006 2 v ,v_w ,f_ddl ,l_ddl ,itask )
3017 1 nddl ,nddli ,iadk ,jdik ,diag_k,
3018 2 lt_k ,iadi ,jdii ,itok ,lt_i ,
3020 5 ve ,ms ,x ,d ,dr ,
3021 6 ndof ,ipari ,intbuf_tab ,num_imp,
3022 7 ns_imp,ne_imp,nsrem ,nsl ,ibfv ,
3023 8 skew ,xframe,monvol,volmon,igrsurf ,
3024 9 fr_mv,nmonv ,imonv ,ind_imp,
3025 a xi_c ,iupd ,irbe3 ,lrbe3 ,irbe2 ,
3026 b lrbe2 ,f_ddl ,l_ddl ,itask )
3031 1 nddl ,iadm ,jdim ,diag_m ,lt_m ,
3032 2 v_w ,w ,f_ddl ,l_ddl ,itask )
3046 1 NDDL ,IADM ,JDIM ,DIAG_M ,LT_M ,
3047 2 V ,Z ,F_DDL ,L_DDL ,ITASK )
3051#include "implicit_f.inc"
3055#include "impl1_c.inc"
3056#include "com01_c.inc"
3060 INTEGER NDDL ,IADM(*) ,JDIM(*),F_DDL ,L_DDL,ITASK
3063 . diag_m(*), z(*), lt_m(*) ,v(*)
3076 z(i) = v(i)*diag_m(i)
3078 ELSEIF (iprec==5)
THEN
3081 DO j =iadm(i),iadm(i+1)-1
3083 z(i) = z(i)+lt_m(j)*v(k)
3088 z(i) = z(i)*diag_m(i)
3111 1 NDDL ,IADM ,JDIM ,DIAG_M ,LT_M ,
3112 2 V ,Z ,F_DDL ,L_DDL ,ITASK )
3116#include "implicit_f.inc"
3120#include "impl1_c.inc"
3121#include "com01_c.inc"
3125 INTEGER NDDL ,IADM(*) ,JDIM(*),F_DDL ,L_DDL,ITASK
3128 . DIAG_M(*), Z(*), LT_M(*) ,V(*)
3143 z(i) = v(i)*diag_m(i)
3145 ELSEIF (iprec==5)
THEN
3148 z(i) = v(i)*diag_m(i)
3161 DO j =iadm(i),iadm(i+1)-1
3163 z(i) = z(i)+lt_m(j)*tmp(k)
3185 2 LT_I ,WORK_II ,V ,W ,ITASK )
3193#include "implicit_f.inc"
3197 INTEGER F_DDL ,L_DDL ,IADI(*) ,JDII(*),ITOK(*),ITASK
3200 . w(*), lt_i(*) ,v(*) ,work_ii(*)
3213 DO j =iadi(i),iadi(i+1)-1
3217 work_ii(i) = work_ii(i) + l_k*v(kk)
3226 work_ii(i) = work_ii(i) + l_k*v(kk)
3232 w(ii) = w(ii) + work_ii(i)
3255#include "implicit_f.inc"
3256#include "comlock.inc"
3260#include "com01_c.inc"
3261#include "timeri_c.inc"
3272 INTEGER F_DDL ,L_DDL ,ITSK
3284 rl = rl + x(j)*y(j)*w(j)
3286#include "lockon.inc"
3288#include "lockoff.inc"
3301#include "lockon.inc"
3303#include "lockoff.inc"
3320 . DD ,DDR ,Y ,R ,W_IMP )
3324#include "implicit_f.inc"
3328 INTEGER NDDL,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*) ,W_IMP(*)
3330 . DD(*),DDR(*), Y(*) ,R
3338 CALL D_TO_U(NDDL0 ,NDDL ,IDDL ,NDOF ,IKC ,
3358 . DD ,DDR ,NORM2 ,W_IMP )
3362#include "implicit_f.inc"
3366 INTEGER NDDL,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*),W_IMP(*) ,
3367 . f_ddl ,l_ddl ,itask
3370 . dd(*),ddr(*), norm2
3378 CALL imp_setb(dd ,ddr ,iddl ,ndof ,tmp_w1)
3380 CALL produt_hp(nddl,tmp_w1,tmp_w1,w_imp,norm2)
3396 . D1 ,D1R ,D2 ,D2R ,NORM2 ,
3401#include "implicit_f.inc"
3405 INTEGER NDDL,NDDL0,IDDL(*) ,NDOF(*) ,IKC(*),W_IMP(*)
3408 . D1(*),D1R(*), D2(*),D2R(*), NORM2
3414 . TMP_W1(NDDL0),TMP_W2(NDDL0)
3416 CALL IMP_SETB(D1 ,D1R ,IDDL ,NDOF ,TMP_W1)
3417 CALL IMP_SETB(D2 ,D2R ,IDDL ,NDOF ,TMP_W2)
3418 CALL CONDENS_B(NDDL0 ,IKC ,TMP_W1)
3419 CALL CONDENS_B(NDDL0 ,IKC ,TMP_W2)
3421 CALL produt_hp(nddl,tmp_w1,tmp_w2,w_imp,norm2)
3438#include "implicit_f.inc"
3442#include "com01_c.inc"
3443#include "com04_c.inc"
3444#include "comlock.inc"
3451 . dd(3,*),ddr(3,*), norm2
3455 INTEGER ITSK,NODFT ,NODLT,I
3461 IF (weight(i)==1)
THEN
3462#include "lockon.inc"
3463 norm2 = norm2 + dd(1,i)*dd(1,i)
3464 norm2 = norm2 + dd(2,i)*dd(2,i)
3465 norm2 = norm2 + dd(3,i)*dd(3,i)
3466#include "lockoff.inc"
3471 IF (weight(i)==1)
THEN
3472#include "lockon.inc"
3473 norm2 = norm2 + ddr(1,i)*ddr(1,i)
3474 norm2 = norm2 + ddr(2,i)*ddr(2,i)
3475 norm2 = norm2 + ddr(3,i)*ddr(3,i)
3476#include "lockoff.inc"
3497#include "implicit_f.inc"
3517 INTEGER I,ITSK,NFT,NLT
3520 CALL IMP_SMPINI(ITSK ,NFT ,NLT ,N )
3539#include "implicit_f.inc"
3560 INTEGER I,ITSK,NFT,NLT
3583#include "implicit_f.inc"
3604 INTEGER I,ITSK,NFT,NLT
3607 CALL IMP_SMPINI(ITSK ,NFT ,NLT ,N )
3609 v(i) = v(i) + s*y(i)
3627#include "implicit_f.inc"
3638 INTEGER I,ITSK,NFT,NLT
3641 CALL IMP_SMPINI(ITSK ,NFT ,NLT ,N )
3660#include "implicit_f.inc"
3664 INTEGER N ,X(*), XC(*)
3669 INTEGER I,ITSK,NFT,NLT
3691#include "implicit_f.inc"
3702 INTEGER I,ITSK,NFT,NLT,N3
subroutine copy_elbuf(elbuf_src, elbuf_tgt, iparg, ngroup)
subroutine copy_intbuf_tab(intbuf_tab, intbuf_tab_c)
subroutine fr_matv(a, v, d, ms, x, dr, ar, ipari, intbuf_tab, ndof, num_imp, ns_imp, ne_imp, lx, nsrem, nsl, ibfv, skew, xframe, f, irbe3, lrbe3, irbe2, lrbe2)
subroutine cp_inttd(nt_imp1, numimp, ns_imp, ne_imp, ind_imp, numimp1)
subroutine int_matvp(ipari, intbuf_tab, ndof, num_imp, ns_imp, ne_imp, index2, a, ar, v, x, ms, x_imp, ibfv, skew, xframe, u, f, dr, nsrem, nsl, iupd, irbe3, lrbe3, irbe2, lrbe2)
subroutine int_matv(ipari, intbuf_tab, ndof, num_imp, ns_imp, ne_imp, index2, a, ar, v, x, ms, x_imp, ibfv, skew, xframe, u, f, iupd, irbe3, lrbe3, irbe2, lrbe2)
subroutine imp_int_k(a, v, icodt, icodr, iskew, ibfv, npc, tf, vel, nsensor, sensor_tab, xframe, rby, x, skew, lpby, npby, itab, weight, ms, in, nrbyac, irbyac, nss, iss, ipari, intbuf_tab, nint2, iint2, iaint2, nss2, iss2, nddli, nnzi, iadi, jdii, diag_i, lt_i, iddli, nddl, iadk, jdik, ikc, diag_k, lt_k, iddl, num_imp, ns_imp, ne_imp, index2, ndofi, itok, ud, lb, gapmin, dirul, nt_rw, num_imp1, irbe3, lrbe3, frbe3, nss3, iss3, irbe2, lrbe2, nsb2, isb2)
subroutine imp_lanzp(iprec, n, nnz, iadk, jdik, diag_k, lt_k, ni, itok, iadi, jdii, lt_i, nnzm, iadm, jdim, diag_m, lt_m, x, r, itol, rtol, v, w, y, itask, iprint, shift, kcond, n_max, flm, f_x, istop, w_ddl, a, ar, ve, ms, xe, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, nmonv, imonv, monvol, igrsurf, volmon, fr_mv, ibfv, skew, xframe, ind_imp, xi_c, r0, nddli_g, intp_c, irbe3, lrbe3, irbe2, lrbe2)
subroutine imp_setb(f, m, iddl, ndof, b)
subroutine imp_solv(timers, python, icode, iskew, iskwn, ipart, ixtg, ixs, ixq, ixc, ixt, ixp, ixr, ixtg1, itab, itabm1, npc, ibcl, ibfv, sensor_tab, nnlink, lnlink, iparg, igrv, ipari, intbuf_tab, nprw, iconx, npby, lpby, lrivet, nstrf, ljoint, icodt, icodr, isky, adsky, iads_f, ilink, llink, weight, itask, ibvel, lbvel, fbvel, x, d, v, vr, dr, thke, damp, ms, in, pm, skews, geo, eani, bufmat, bufgeo, bufsf, tf, forc, vel, fsav, agrv, fr_wave, parts0, elbuf, rby, rivet, fr_elem, iad_elem, wa, a, ar, stifn, stifr, partsav, fsky, fskyi, iframe, xframe, w16, iactiv, fskym, igeo, ipm, wfext, nodft, nodlt, nint7, num_imp, ns_imp, ne_imp, ind_imp, it, rwbuf, lprw, fr_wall, nbintc, intlist, fopt, rwsav, fsavd, graphe, fac_k, ipiv_k, nkcond, nsensor, monvol, igrsurf, fr_mv, volmon, dirul, nodglob, mumps_par, cddlp, isendto, irecvfrom, newfront, imsch, i2msch, isizxv, ilenxv, islen7, irlen7, islen11, irlen11, islen17, irlen17, irlen7t, islen7t, kinet, num_imp1, temp, dt2prev, waint, lgrav, sh4tree, sh3tree, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, irbe3, lrbe3, frbe3, fr_i2m, iad_i2m, fr_rbe3m, iad_rbe3m, frwl6, irbe2, lrbe2, intbuf_tab_c, ikine, diag_sms, icfield, lcfield, cfield, count_remslv, count_remslve, elbuf_tab, elbuf_imp, xdp, weight_md, stack, dimfb, fbsav6, stabsen, tabsensor, drape_sh4n, drape_sh3n, h3d_data, multi_fvm, igrbric, igrsh4n, igrsh3n, igrbeam, forneqs, maxdgap, nddl0, nnzk0, it_t, impbuf_tab, cptreac, fthreac, nodreac, drapeg, interfaces, th_surf, dpl0cld, vel0cld, snpc, stf, glob_therm, wfext_md)
subroutine matv_kif(v, w)
subroutine imp_smpini(itsk, n1ftsk, n1ltsk, n1)
subroutine spmd_sumf_v(v)
subroutine mv_matv(monvol, volmon, x, igrsurf, fr_mv, nmonv, imonv, u, f, ndof, ipari, intbuf_tab, a, ar, x_imp, ibfv, skew, xframe, irbe3, lrbe3, irbe2, lrbe2)
integer, dimension(:), allocatable newfrcp
integer, dimension(:), allocatable iad_stifold
integer, dimension(:,:), allocatable iparicp
integer, dimension(:), allocatable ii7cp
integer, dimension(20) lenscp
integer, dimension(:), allocatable jdik0
integer, dimension(:), allocatable iadi0
integer, dimension(:), allocatable jdim0
integer, dimension(:), allocatable jdii0
integer, dimension(:), allocatable iadk0
integer, dimension(:), allocatable iadm0
type(real_pointer2), dimension(:), allocatable stif_oldfi
type(real_pointer2), dimension(:), allocatable secnd_frfi
type(real_pointer), dimension(:), allocatable condnfi
type(real_pointer), dimension(:), allocatable time_sfi
type(real_pointer2), dimension(:), allocatable vfi
type(int_pointer2), dimension(:), allocatable irtlm_fi
type(int_pointer), dimension(:), allocatable matsfi
type(real_pointer), dimension(:), allocatable tempfi
type(real_pointer), dimension(:), allocatable stifi
type(int_pointer), dimension(:), allocatable nsvsi
type(real_pointer2), dimension(:), allocatable penfi
type(real_pointer), dimension(:), allocatable stnfi
type(real_pointer2), dimension(:), allocatable afi
type(int_pointer), dimension(:), allocatable nsnsi
type(real_pointer), dimension(:), allocatable gapfi
type(int_pointer), dimension(:), allocatable nsvfi
type(real_pointer), dimension(:), allocatable areasfi
type(real_pointer), dimension(:), allocatable msfi
type(real_pointer), dimension(:), allocatable vscfi
type(real_pointer2), dimension(:), allocatable xfi
type(int_pointer), dimension(:), allocatable kinfi
integer, dimension(:), allocatable nlskyfi
type(real_pointer), dimension(:), allocatable fthefi
type(real_pointer2), dimension(:), allocatable pene_oldfi
type(int_pointer), dimension(:), allocatable nsnfi
type(int_pointer), dimension(:), allocatable itafi
subroutine nl_solv(nddl, iddl, ndof, ikc, d, dr, nnz, iadk, jdik, diag_k, lt_k, f, nddli, iadi, jdii, diag_i, lt_i, itok, iadm, jdim, diag_m, lt_m, r02, dd, ddr, itask0, it, itc, ru0, rold, idiv, inprint, icprec, istop, e02, de0, eimp, inloc, nddl0, ls, u02, gap, itab, fr_elem, iad_elem, w_ddl, a, ar, v, ms, x, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, icont, graphe, fac_k, ipiv_k, nk, nmonv, imonv, monvol, igrsurf, fr_mv, volmon, ibfv, skew, xframe, mumps_par, cddlp, ind_imp, nbintc, intlist, newfront, isendto, irecvfrom, irbe3, lrbe3, ndiv, icont0, isign, fext, dg, dgr, dg0, dgr0, rfext, ls1, nodft, nodlt, irbe2, lrbe2, idiv0, relres, anew_stif)
subroutine al_constraint1_hp(nddl0, nddl, iddl, ndof, ikc, dd, ddr, dg, dgr, di, dir, w_ddl, l_a, lamda, sw2, ier)
subroutine produt_u0(dd, ddr, norm2, weight)
subroutine produt_v0(nddl, x, y, r)
subroutine cp_int_hp(n, x, xc)
subroutine mortho_gs(f_ddl, l_ddl, nddl, md_f, md_l, a, wddl, itask)
subroutine mmv_lth(nddl, iadm, jdim, diag_m, lt_m, v, z, f_ddl, l_ddl, itask)
subroutine mav_lt_h(nddl, f_ddl, l_ddl, iadl, jdil, diag_k, lt_k, v, w)
subroutine mmav_lth(nddl, nddli, iadk, jdik, diag_k, lt_k, iadi, jdii, itok, lt_i, v, w, a, ar, ve, ms, x, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, ibfv, skew, xframe, monvol, volmon, igrsurf, fr_mv, nmonv, imonv, ind_imp, xi_c, iupd, irbe3, lrbe3, irbe2, lrbe2, iadm, jdim, diag_m, lt_m, f_ddl, l_ddl, itask, v_w)
subroutine vscal_h(f_ddl, l_ddl, v, s, itask)
subroutine cp_real(n, x, xc)
subroutine produt_vm(nddl0, nddl, iddl, ndof, ikc, dd, ddr, y, r, w_imp)
subroutine buf_dim1(l1, lt)
subroutine mav_ltgh(nddl, iadl, jdil, diag_k, lt_k, v, w, f_ddl, l_ddl, itask, nddli)
subroutine mav_mm(nd, md, a, b, itask)
subroutine zero_ud(num, iddl, ndof, ikc, d, dr, ir)
subroutine mav_mn(nd, md, a, b, c, itask)
subroutine mav_lt2(nddl, nddli, iadl, jdil, diag_k, lt_k, iadi, jdii, itok, lt_i, v, w, monvol, volmon, x, igrsurf, nmonv, imonv, ndof, ipari, intbuf_tab, a, ar, d, ibfv, skew, xframe, ve, ms, num_imp, ns_imp, ne_imp, index2, xi_c, iupd, irbe3, lrbe3)
subroutine mav_lt(nddl, nnz, iadl, jdil, diag_k, lt_k, v, w)
subroutine mav_lt1(nddl, nnz, iadl, jdil, diag_k, lt_k, v, w)
subroutine produt_u(nddl0, nddl, iddl, ndof, ikc, dd, ddr, norm2, w_imp)
subroutine vscal_hp(n, v, s)
subroutine mav_lth(nddl, nddli, iadl, jdil, diag_k, lt_k, iadi, jdii, itok, lt_i, v, w, a, ar, ve, ms, x, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, ibfv, skew, xframe, monvol, volmon, igrsurf, fr_mv, nmonv, imonv, index2, xi_c, iupd, irbe3, lrbe3, irbe2, lrbe2, f_ddl, l_ddl, itask)
subroutine produt_vmh(nddl0, nddl, iddl, ndof, ikc, dd, ddr, y, r, w_imp, f_ddl, l_ddl, itask)
subroutine mav_ltp(nddl, nddli, iadl, jdil, diag_k, lt_k, iadi, jdii, itok, lt_i, v, w, a, ar, ve, ms, x, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, ibfv, skew, xframe, monvol, volmon, igrsurf, fr_mv, nmonv, imonv, index2, xi_c, iupd, irbe3, lrbe3, irbe2, lrbe2)
subroutine d_to_u(nddl0, nddl, iddl, ndof, ikc, d, dr, u)
subroutine produt_v_loc(nddl, x, y, r)
subroutine mav_liuh(f_ddl, l_ddl, iadi, jdii, itok, lt_i, work_ii, v, w, itask)
subroutine mav_lui_h(f_ddl, l_ddl, v, w)
subroutine cp_ifront(iflag, ipari, islen7, irlen7, islen11, irlen11, islen17, irlen17, irlen7t, islen7t, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, newfront)
subroutine produt_w(nddl, x, y, w, r)
subroutine cp_real_hp(n, x, xc)
subroutine mav_zi(ii, nddl, nnz, iadl, jdil, diag_k, lt_k, nnzz, iadm, jdim, lt_m, w)
subroutine vaxpy_h(f_ddl, l_ddl, a, b, s, itask)
subroutine zeror_hp(x, n)
subroutine buf_dim(l1, l2, l3, l4)
subroutine produt_h(f_ddl, l_ddl, x, y, w, r, itask)
subroutine produt_uhp0(dd, ddr, norm2, weight)
subroutine mam_nm(f_nd, l_nd, nd, md, a, b, c, wddl, itask)
subroutine mav_nm(f_nd, l_nd, nd, md, a, b, c, wddl, itask)
subroutine mav_lu_h(nddl, f_ddl, l_ddl, iadl, jdil, diag_k, lt_k, v, w)
subroutine mmv_lh(nddl, iadm, jdim, diag_m, lt_m, v, z, f_ddl, l_ddl, itask)
subroutine produt_uhp(nddl0, nddl, iddl, ndof, ikc, dd, ddr, norm2, w_imp)
subroutine produt_uhp2(nddl0, nddl, iddl, ndof, ikc, d1, d1r, d2, d2r, norm2, w_imp)
subroutine produt_uh2(nddl0, nddl, iddl, ndof, ikc, d1, d1r, d2, d2r, norm2, w_imp, f_ddl, l_ddl, itask)
subroutine produt_v(nddl, x, y, r)
subroutine mav_z(ii, nddl, nnz, iadl, jdil, diag_k, lt_k, nnzm, iadm, jdim, lt_m, w)
subroutine cp_dm(numgeo, geo, igeo, dmcp, iflag)
subroutine produt_u2(nddl0, nddl, iddl, ndof, ikc, d1, d1r, d2, d2r, norm2, w_imp)
subroutine produt_uh(nddl0, nddl, iddl, ndof, ikc, dd, ddr, norm2, w_imp, f_ddl, l_ddl, itask)
subroutine produt_hp(nddl, x, y, w, r)
subroutine mav_lth0(nddl, nddli, iadl, jdil, diag_k, lt_k, iadi, jdii, itok, lt_i, v, w, a, ar, ve, ms, x, d, dr, ndof, ipari, intbuf_tab, num_imp, ns_imp, ne_imp, nsrem, nsl, ibfv, skew, xframe, monvol, volmon, igrsurf, fr_mv, nmonv, imonv, index2, xi_c, iupd, irbe3, lrbe3, irbe2, lrbe2, f_ddl, l_ddl, itask)
subroutine vscaly_hp(n, v, y, s)
subroutine vaxpy_hp(n, v, y, s)
subroutine cp_int(n, x, xc)
subroutine cp_impbuf(iflag, elbuf, elbuf_c, bufmat, bufmat_c, fsav, volmon, partsav, intbuf_tab, intbuf_tab_c, ipari, islen7, irlen7, islen11, irlen11, islen17, irlen17, irlen7t, islen7t, irlen20, islen20, irlen20t, islen20t, irlen20e, islen20e, newfront, elbuf_tab, elbuf_imp, iparg)
subroutine produt_vmhp(nddl0, nddl, iddl, ndof, ikc, dd, ddr, y, r, w_imp)
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)
subroutine startime(event, itask)
subroutine condens_b(nddl, ikc, b)