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