34 1 IGROUPS ,IPARG ,ELBUF_TAB ,FORCE_INT ,
36 3 X_APPEND,V_APPEND,MASS_APPEND,KINET_APPEND,
65#include
"implicit_f.inc"
73 INTEGER,
DIMENSION(NPARI,*),
INTENT(in) :: IPARI
74 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP),
INTENT(in) :: ELBUF_TAB
75 INTEGER,
DIMENSION(NUMELS),
INTENT(in) ::
76 INTEGER,
DIMENSION(NPARG,*),
INTENT(in) ::IPARG
77 my_real,
DIMENSION(3,*),
INTENT(in) :: x,v
78 my_real,
DIMENSION(3,*),
INTENT(inout) :: x_append,v_append
79 my_real,
DIMENSION(*),
INTENT(in) :: ms
80 INTEGER,
DIMENSION(*),
INTENT(in) :: KINET
81 my_real,
DIMENSION(*),
INTENT(inout)
82 INTEGER,
DIMENSION(*),
INTENT(inout) :: KINET_APPEND
83 my_real,
DIMENSION(3,*),
INTENT(inout) :: force_int
84 REAL(kind=8), dimension(3,6,*),
INTENT(inout) :: force_int_pon
85 INTEGER,
DIMENSION(NIXS, *),
INTENT(in) :: IXS
86 TYPE(multi_fvm_struct) :: MULTI_FVM
87 TYPE (GROUP_) ,
DIMENSION(NGRBRIC),
INTENT(in) ::
91 INTEGER :: N,NN,II,JJ,MY_SIZE
92 INTEGER :: ,GROUP_ID,ILOC
93 INTEGER :: ISU1,NSN,NTY,INACTI,NODE_ID,IBRIC
94 LOGICAL,
DIMENSION(:),
ALLOCATABLE :: TAG
101 multi_fvm%INT18_GLOBAL_LIST(1:ninter) = .false.
102 ALLOCATE(tag(numels))
103 tag(1:numels)=.false.
104 IF( multi_fvm%IS_INT18_LAW151 )
THEN
105 DO n=1,multi_fvm%NUMBER_INT18
106 nn = multi_fvm%INT18_LIST(n)
107 multi_fvm%INT18_GLOBAL_LIST(nn) = .true.
110 x_append(1:3,1:numnod) = x(1:3,1:numnod)
111 v_append(1:3,1:numnod) = v(1:3,1:numnod)
112 mass_append(1:numnod) = ms(1:numnod)
113 kinet_append(1:numnod) = kinet(1:numnod)
115 x_append( 1:3,numnod+1:numnod+numels ) = zero
116 v_append( 1:3,numnod+1:numnod+numels ) = zero
118 mass_append(numnod+1:numnod+numels) = zero
119 kinet_append(numnod+1:numnod+numels) = 0
120 force_int(1:multi_fvm%SIZE_FORCE_INT_1,1:multi_fvm%SIZE_FORCE_INT_2) = zero
122 my_size = multi_fvm%SIZE_FORCE_INT_PON
123 force_int_pon(1:3,1:6,1:my_size) = zero
125 DO nn=1,multi_fvm%NUMBER_INT18
126 n = multi_fvm%INT18_LIST(nn)
130 ibric = igrbric(isu1)%ENTITY(ii) !
id of
the phantom element
131 IF(.NOT. tag(ibric))
THEN
132 group_id = igroups(ibric)
133 nft = iparg(3,group_id)
139 node_id = ixs(jj, ibric)
140 x_append(1, numnod + ibric) = x_append(1, numnod + ibric) + one_over_8 * x(1, node_id)
141 x_append(2, numnod + ibric) = x_append(2, numnod + ibric) + one_over_8 * x(2, node_id)
142 x_append(3, numnod + ibric) = x_append(3, numnod + ibric) + one_over_8 * x(3, node_id)
145 v_append(1, numnod + ibric) = multi_fvm%VEL(1, ibric)
146 v_append(2, numnod + ibric) = multi_fvm%VEL(2, ibric)
147 v_append(3, numnod + ibric) = multi_fvm%VEL(3, ibric)
153 IF(
ALLOCATED(tag))
DEALLOCATE(tag)
subroutine int18_law151_init(multi_fvm, igrbric, ipari, ixs, igroups, iparg, elbuf_tab, force_int, x, v, ms, kinet, x_append, v_append, mass_append, kinet_append, force_int_pon)