30 1 NUMNOD,NUMELS,NGRBRIC,
31 2 MULTI_FVM,IGRBRIC,IPARI,IXS,
33 5 X_APPEND,V_APPEND,MASS_APPEND,KINET_APPEND)
52 use element_mod ,
only :nixs
56#include "implicit_f.inc"
60 INTEGER,
INTENT(in) :: S_APPEND_ARRAY
61 INTEGER,
INTENT(in) :: NINTER
62 INTEGER,
INTENT(in) :: NPARI
63 INTEGER,
INTENT(in) :: NUMNOD
64 INTEGER,
INTENT(in) ::
65 INTEGER,
INTENT(in) :: NGRBRIC
66 INTEGER,
DIMENSION(NPARI,NINTER),
INTENT(in) :: IPARI
67 my_real,
DIMENSION(3,NUMNOD),
INTENT(in) :: x
68 my_real,
DIMENSION(3,S_APPEND_ARRAY),
INTENT(inout) :: x_append,v_append
69 my_real,
DIMENSION(NUMNOD),
INTENT(in) :: ms
70 INTEGER,
DIMENSION(NUMNOD),
INTENT(in) :: KINET
71 my_real,
DIMENSION(S_APPEND_ARRAY),
INTENT(inout) :: mass_append
72 INTEGER,
DIMENSION(S_APPEND_ARRAY),
INTENT(inout) :: KINET_APPEND
73 INTEGER,
DIMENSION(NIXS,NUMELS),
INTENT(in) :: IXS
74 TYPE(multi_fvm_struct) :: MULTI_FVM
75 TYPE (GROUP_) ,
DIMENSION(NGRBRIC),
INTENT(in) ::
80 INTEGER :: ISU1,,NODE_ID,IBRIC
81 LOGICAL,
DIMENSION(:),
ALLOCATABLE :: TAG
88 multi_fvm%INT18_GLOBAL_LIST(1:ninter) = .false.
91 IF( multi_fvm%IS_INT18_LAW151 )
THEN
92 DO n=1,multi_fvm%NUMBER_INT18
93 nn = multi_fvm%INT18_LIST(n)
94 multi_fvm%INT18_GLOBAL_LIST(nn) = .true.
97 x_append(1:3,1:numnod) = x(1:3,1:numnod)
98 v_append(1:3,1:numnod) = v(1:3,1:numnod)
99 mass_append(1:numnod) = ms(1:numnod)
100 kinet_append(1:numnod) = kinet(1:numnod)
102 x_append( 1:3,numnod+1:numnod+numels ) = zero
103 v_append( 1:3,numnod+1:numnod+numels ) = zero
105 mass_append(numnod+1:numnod+numels) = zero
106 kinet_append(numnod+1:numnod+numels) = 0
108 DO nn=1,multi_fvm%NUMBER_INT18
109 n = multi_fvm%INT18_LIST(nn)
113 ibric = igrbric(isu1)%ENTITY(ii)
114 IF(.NOT. tag(ibric))
THEN
116 mass_append(numnod + ibric) = zero
119 node_id = ixs(jj, ibric)
120 x_append(1, numnod + ibric) = x_append(1, numnod + ibric) + one_over_8 * x(1, node_id)
121 x_append(2, numnod + ibric) = x_append(2, numnod + ibric) + one_over_8 * x(2, node_id)
122 x_append(3, numnod + ibric) = x_append(3, numnod + ibric) + one_over_8 * x(3, node_id)
125 v_append(1, numnod + ibric) = multi_fvm%VEL(1, ibric)
126 v_append(2, numnod + ibric) = multi_fvm%VEL(2, ibric)
127 v_append(3, numnod + ibric) = multi_fvm%VEL(3, ibric)
133 IF(
ALLOCATED(tag))
DEALLOCATE(tag)
subroutine int18_law151_init(s_append_array, ninter, npari, numnod, numels, ngrbric, multi_fvm, igrbric, ipari, ixs, x, v, ms, kinet, x_append, v_append, mass_append, kinet_append)