34 1 INLOC,NROW ,ITAB ,SH4TREE,SH3TREE)
42#include "implicit_f.inc"
50#include "remesh_c.inc"
54 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),NDOF(*),NNMAX,
55 1 nkine,inloc(*),nrow(*),itab(*),
56 2 sh4tree(ksh4tree,*), sh3tree(ksh3tree,*)
62 INTEGER N, NN, LEVEL, IP, NLEV,I,J,K,L,M1,M2,MK1,MK2
63 INTEGER SON,M(4),MC,NI(5),MN,NS,NZ,NR,NK,NKS,IS
64 INTEGER,
DIMENSION(:),
ALLOCATABLE :: NROWK
65 INTEGER,
DIMENSION(:,:),
ALLOCATABLE :: ICOK
69 DO level=levelmax-1,0,-1
114 DO level=levelmax-1,0,-1
136 IF(
tagnod(mn)==0.AND.ndof(mn)>0)
THEN
162 IF(
tagnod(mn)==0.AND.ndof(mn)>0)
THEN
191 IF (mn>0.AND.mn<=nks) is = mn
209 IF (mn>0.AND.mn<=nks) is = mn
223 ALLOCATE(nrowk(nk),icok(nnmax+l,nk))
272 CALL reorder_a(nrowk(mk1),icok(1,mk1),nn)
276 CALL reorder_a(nrowk(mk2),icok(1,mk2),nn)
286 IF (inloc(ns)==0)
THEN
290 nrow(ns)=
max(nrow(ns),nrowk(k))
294 nnmax=
max(nnmax,nrowk(mn))
295 IF (inloc(nn)==0)
THEN
299 nrow(nn)=
max(nrow(nn),nrowk(mn))
317 DEALLOCATE(nrowk,icok)
339#include "implicit_f.inc"
344 INTEGER INLOC(*),NROWK(*),ICOK(NNMAX,*)
348 INTEGER , NN, LEVEL, IP, NLEV,I,J,K,M1,M2,MK1,
349 INTEGER MN,NS,NZ,NR,NK
361 CALL reorder_a(nrowk(mk1),icok(1,mk1),nn)
365 CALL reorder_a(nrowk(mk2),icok(1,mk2),nn)
383 SUBROUTINE rm_imp0(NDDL ,IADK ,JDIK ,DIAG_K ,LT_K ,
384 1 NDOF ,IDDL ,IKC ,B ,ITAB )
392#include "implicit_f.inc"
397 . IADK(*),JDIK(*),NDOF(*),IDDL(*),IKC(*),ITAB(*)
399 . diag_k(*),lt_k(*),b(*)
410 3 itab ,ikc ,ndof ,nddl ,iddl ,
411 4 iadk ,jdik ,diag_k,lt_k ,b )
417!||====================================================================
431 3 ITAB ,IKC ,NDOF ,NDDL ,IDDL ,
432 4 IADK ,JDIK ,DIAG_K,LT_K ,B )
436#include "implicit_f.inc"
441 . NIR,IRECT(*),I,NR,NODS(*),ITAB(*)
442 INTEGER NDDL,IADK(*),JDIK(*),NDOF(*),IDDL(*),IKC(*)
445 . diag_k(*),lt_k(*),b(*)
449 INTEGER J, J1, J2, J3, J4, K, JD, II, L, JJ,
450 . I1,ID,NL,NI,NJ,NIDOF,ND,NDI,NDJ,NDM,NM,L1,NM1,
454 . kdd(6,6),bd(6),kii(6,6),bi(6),facm,facm2
459 ndm =
max(ndm,ndof(nj))
472 CALL get_kii(i ,iddl ,iadk,diag_k,lt_k ,kdd,ndof(i))
476 nd =
min(ndm,ndof(nj))
477 CALL updkdd(nd,kdd,kii,facm2,1)
478 CALL put_kii(nj,iddl ,iadk,diag_k,lt_k ,kii,nd)
481 b(id) = b(id) + facm*bd(k)
485 nd =
min(nd,ndof(nm))
486 CALL updkdd(nd,kdd,kii,facm2,0)
487 CALL put_kij(nj,nm,iddl,iadk,jdik,lt_k,kii,nd,nd,ir)
488 IF (ir==1)
CALL print_wkij(itab(nj) ,itab(nm) ,3 )
496 CALL get_kij(ni,i,iddl,iadk,jdik,lt_k,kdd,nidof,ndof(i),ir)
497 IF (ir==1)
CALL print_wkij(itab(ni) ,itab(i) ,3 )
502 ndj =
min(ndm,ndof(nj))
505 CALL updkdd1(nidof,ndj,kdd,kii,facm,1)
506 CALL put_kii(nj ,iddl ,iadk,diag_k,lt_k,kii,ndj)
508 CALL updkdd1(ndi,ndof(i),kdd,kii,facm,0)
509 CALL put_kij(ni,nj,iddl,iadk,jdik,lt_k,kii,ndi,ndj,ir)
510 IF (ir==1)
CALL print_wkij(itab(ni) ,itab(nj) ,3 )
522!||--- uses -----------------------------------------------------
525 SUBROUTINE rm_imp2(IXC,IXTG,V ,VR ,SH4TREE,SH3TREE)
533#include "implicit_f.inc"
537#include "param_c.inc"
538#include "remesh_c.inc"
542 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),
543 2 SH4TREE(KSH4TREE,*), SH3TREE(KSH3TREE,*)
549 INTEGER N, NN, LEVEL, IP, NLEV, IERR
550 INTEGER SON,M(4),MC,N1,N2,N3,N4,
554 DO level=0,levelmax-1
568 IF(tagnod(mc)==0)
THEN
571 v(j,mc)= fourth*(v(j,n1)+v(j,n2)+v(j,n3)+v(j,n4))
574 vr(j,mc)= fourth*(vr(j,n1)+vr(j,n2)+vr(j,n3)+vr(j,n4))
584 IF(tagnod(m(1))==0)
THEN
587 v(j,m(1))= half*(v(j,n1)+v(j,n2))
590 vr(j,m(1))= half*(vr(j,n1)+vr(j,n2))
595 IF(tagnod(m(2))==0)
THEN
598 v(j,m(2))= half*(v(j,n2)+v(j,n3))
601 vr(j,m(2))= half*(vr(j,n2)+vr(j,n3))
606 IF(tagnod(m(3))==0)
THEN
609 v(j,m(3))= half*(v(j,n3)+v(j,n4))
612 vr(j,m(3))= half*(vr(j,n3)+vr(j,n4))
617 IF(tagnod(m(4))==0)
THEN
620 v(j,m(4))= half*(v(j,n4)+v(j,n1))
623 vr(j,m(4))= half*(vr(j,n4)+vr(j,n1))
642 IF(tagnod(m(1))==0)
THEN
645 v(j,m(1))= half*(v(j,n1)+v(j,n2))
648 vr(j,m(1))= half*(vr(j,n1)+vr(j,n2))
653 IF(tagnod(m(2))==0)
THEN
656 v(j,m(2))= half*(v(j,n2)+v(j,n3))
659 vr(j,m(2))= half*(vr(j,n2)+vr(j,n3))
664 IF(tagnod(m(3))==0)
THEN
667 v(j,m(3))= half*(v(j,n3)+v(j,n1))
670 vr(j,m(3))= half*(vr(j,n3)+vr(j,n1))
subroutine updkdd(ndl, kdd, kii, h2, isym)
subroutine updkdd1(ndi, ndj, kdd, kii, h, isym)
subroutine print_wkij(ni, nj, iflag)
subroutine put_kii(ni, iddl, iadk, k_diag, k_lt, kii, nd)
subroutine put_kij(ni, nj, iddl, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine get_kii(ni, iddl, iadk, k_diag, k_lt, kii, nd)
subroutine get_kij(ni, nj, iddl, iadk, jdik, k_lt, kij, nk, nl, ierr)
subroutine reorder_a(n, ic, id)
integer, dimension(:), allocatable lsh3act
integer, dimension(:), allocatable iad_nj
integer, dimension(:), allocatable lsh4kin
integer, dimension(:,:), allocatable ish_ms
integer, dimension(:), allocatable ish_ns
integer, dimension(:), allocatable jdi_nj
integer, dimension(:), allocatable lsh3kin
integer, dimension(:), allocatable psh4kin
integer, dimension(:), allocatable psh3kin
integer, dimension(:), allocatable tagnod
integer, dimension(:), allocatable lsh4act
subroutine cp_int(n, x, xc)
subroutine recudis(nddl, iddl, ndof, ikc, lx, d, dr, inloc)
subroutine recukin(rby, lpby, npby, skew, iskew, itab, weight, ms, in, ibfv, vel, icodt, icodr, nrbyac, irbyac, nint2, iint2, ipari, intbuf_tab, ndof, d, dr, x, xframe, lj, ixr, ixc, ixtg, sh4tree, sh3tree, irbe3, lrbe3, frbe3, irbe2, lrbe2)
subroutine rm_imp2(ixc, ixtg, v, vr, sh4tree, sh3tree)
subroutine rmind_imp(nnmax, inloc, nrowk, icok)
subroutine rm_imp1(nir, irect, i, nr, nods, itab, ikc, ndof, nddl, iddl, iadk, jdik, diag_k, lt_k, b)
subroutine rm_imp0(nddl, iadk, jdik, diag_k, lt_k, ndof, iddl, ikc, b, itab)
subroutine rmdim_imp(ixc, ixtg, ndof, nnmax, nkine, inloc, nrow, itab, sh4tree, sh3tree)