32
33
34
35
36
37
38
39
40
42 use element_mod , only :nixs
43
44
45
46#include "implicit_f.inc"
47
48
49
50#include "vect01_c.inc"
51#include "com04_c.inc"
52
53
54
55 INTEGER, INTENT(IN) :: IXS(NIXS,NUMELS), TRIMAT
56 my_real,
INTENT(IN) :: x(3,numnod)
57
58
59
60 INTEGER :: I, II, JJ
61 INTEGER :: NODE_ID
62 my_real :: reduc_factor(trimat), nodal_reduc_factor, xn, yn, zn, valnode
63 INTEGER :: ITRIMAT
64 INTEGER :: NNUM
66
67
68
69
70
71 DO i = lft, llt
72 ii = i + nft
73
77 reduc_factor = ep30
78 nnum = 0
79 DO itrimat = 1, trimat
83 nnum = nnum + 1
84
85 DO jj = 1, 8
86 node_id = ixs(jj+1, ii)
87
88 xn = x(1, node_id) ; yn = x(2, node_id) ; zn = x(3, node_id)
89
94 nodal_reduc_factor = one
96 nodal_reduc_factor =
99 ELSE IF (valnode -
alemuscl_buffer%VOLUME_FRACTION(ii,itrimat) < zero)
THEN
100 nodal_reduc_factor =
103 ENDIF
104 reduc_factor(itrimat) =
min(reduc_factor(itrimat), nodal_reduc_factor)
105 ENDDO
106 ELSE
107 reduc_factor(itrimat) = zero
108 ENDIF
109 ENDDO
110
111
112
113 DO itrimat = 1, trimat
117
121 ENDIF
122 ENDDO
123 ENDDO
124
125
type(alemuscl_param_) alemuscl_param
type(alemuscl_buffer_) alemuscl_buffer