34
35
36
38 use element_mod , only : nixq
39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "mvsiz_p.inc"
47
48
49
50#include "com01_c.inc"
51#include "com04_c.inc"
52#include "param_c.inc"
53#include "vect01_c.inc"
54#include "tabsiz_c.inc"
55
56
57
58
59
60
61
62
63
64
65
66 INTEGER IXQ(NIXQ,SIXQ/NIXQ)
67 my_real pm(npropm,nummat), x(3,sx/3), t(*), grad(4,*), coef(*), fv(*)
68 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
69
70
71
72 INTEGER JFACE(MVSIZ), JVOIS(MVSIZ), NC1(MVSIZ)
73
74
75 . tflu(mvsiz), xf(mvsiz), n1y(mvsiz), n1z(mvsiz),
77
78 DATA iperm / 1,2,
79 . 2,3,
80 . 3,4,
81 . 4,1/
82
83
84
85
86
87
88
89 ifimp=0
90 DO i=lft,llt
91 ii =nft+i
92 mat=ixq(1,ii)
93 ifq=nint(pm(44,mat))
94 IF(ifq /= 0)THEN
95 tflu(i)=pm(60,mat)*fv(ifq)
96 xf(i)=one
97 ifimp=1
98 ELSE
99 tflu(i)=zero
100 xf(i)=zero
101 ENDIF
102 ENDDO
103
104 IF(ifimp == 0)RETURN
105
106
107
108 DO i=lft,llt
109 ii =nft+i
110 iad2 = ale_connect%ee_connect%iad_connect(ii)
111 lgth = ale_connect%ee_connect%iad_connect(ii+1) - iad2
112 DO j=1,lgth
113 jface(i)=j
114 jvois(i)=ale_connect%ee_connect%connected(iad2 + j - 1)
115 IF(jvois(i) <= 0)cycle
116 mat=ixq(1,jvois(i))
117 mtn=nint(pm(19,mat))
118 IF(mtn /= 11)EXIT
119 enddo
120 enddo
121
122
123
124
125 DO i=lft,llt
126 ii =nft+i
127 nc1(i) = ixq(1+iperm(1,jface(i)),ii)
128 nc2(i) = ixq(1+iperm(2,jface(i)),ii)
129
130 y1(i) = x(2,nc1(i))
131 z1(i) = x(3,nc1(i))
132
133 y2(i) = x(2,nc2(i))
134 z2(i) = x(3,nc2(i))
135
136 n1y(i) = (z2(i)-z1(i))
137 n1z(i) = -(y2(i)-y1(i))
138 ENDDO
139
140 IF(n2d == 1)THEN
141 DO i=lft,llt
142 n1y(i) = n1y(i)*(y1(i)+y2(i))*half
143 n1z(i) = n1z(i)*(y1(i)+y2(i))*half
144 ENDDO
145 ENDIF
146
147
148
149
150 DO i=lft,llt
151 ii = nft+i
152 area = sqrt(n1y(i)**2+n1z(i)**2)
153 t(ii) = (one-xf(i))*t(ii) + xf(i)*t(jvois(i)) -
area*tflu(i)*half*(coef(ii)+coef(jvois(i))) /
154 .
max(em20,coef(ii)*coef(jvois(i))*grad(jface(i),i))
155 ENDDO
156
157 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)