33
34
35
36
37
38
39
40
41
42
43
44
46
47
48
49#include "implicit_f.inc"
50
51
52
53#include "mvsiz_p.inc"
54
55
56
57 INTEGER,INTENT(IN) :: NEL
58 my_real,
INTENT(INOUT) :: temp(nel)
59 my_real,
INTENT(INOUT) :: phin(nel)
61 my_real,
INTENT(IN) :: phi(*), grad(6,nel), vol(nel)
63 TYPE(t_ale_connectivity), INTENT(IN) :: ALE_CONNECT
64
65
66
67#include "com08_c.inc"
68#include "vect01_c.inc"
69
70
71
72 INTEGER I, IE, IV1, IV2, IV3, IV4, IV5, IV6, IAD2
76
77
78
79 DO i=1,nel
80 ie =nft+i
81 iad2 = ale_connect%ee_connect%iad_connect(ie)
82 iv1 = ale_connect%ee_connect%connected(iad2 + 1 - 1)
83 iv2 = ale_connect%ee_connect%connected(iad2 + 2 - 1)
84 iv3 = ale_connect%ee_connect%connected(iad2 + 3 - 1)
85 iv4 = ale_connect%ee_connect%connected(iad2 + 4 - 1)
86 iv5 = ale_connect%ee_connect%connected(iad2 + 5 - 1)
87 iv6 = ale_connect%ee_connect%connected(iad2 + 6 - 1)
88
89
90 IF(iv1 <= 0)iv1=ie
91 IF(iv2 <= 0)iv2=ie
92 IF(iv3 <= 0)iv3=ie
93 IF(iv4 <= 0)iv4=ie
94 IF(iv5 <= 0)iv5=ie
95 IF(iv6 <= 0)iv6=ie
96
97
105
106 IF(aa(1) == zero) aa(1)=aa(0)
107 IF(aa(2) == zero) aa(2)=aa(0)
108 IF(aa(3) == zero) aa(3)=aa(0)
109 IF(aa(4) == zero) aa(4)=aa(0)
110 IF(aa(5) == zero) aa(5)=aa(0)
111 IF(aa(6) == zero) aa(6)=aa(0)
112
113 aa_face(1) = (aa(0)*aa(1)) /
max(em20,(aa(0)+aa(1)))
114 aa_face(2) = (aa(0)*aa(2)) /
max(em20,(aa(0)+aa(2)))
115 aa_face(3) = (aa(0)*aa(3)) /
max(em20,(aa(0)+aa(3)))
116 aa_face(4) = (aa(0)*aa(4)) /
max(em20,(aa(0)+aa(4)))
117 aa_face(5) = (aa(0)*aa(5)) /
max(em20,(aa(0)+aa(5)))
118 aa_face(6) = (aa(0)*aa(6)) /
max(em20,(aa(0)+aa(6)))
119
120
121 dphi(i) = aa_face(1) * (phi(iv1)-phi(ie))*grad(1,i)
122 2 + aa_face(2) * (phi(iv2)-phi(ie))*grad(2,i)
123 3 + aa_face(3) * (phi(iv3)-phi
124 4 + aa_face(4) * (phi(iv4)-phi(ie))*grad(4,i)
125 5 + aa_face(5) * (phi(iv5)-phi(ie))*grad(5,i)
126 6 + aa_face(6) * (phi(iv6)-phi(ie))*grad(6,i)
127 enddo
128
129
130
131
132 DO i=1,nel
133 dphi(i) = two*dphi(i)*dt1/
max(vol(i),em20)
134 ENDDO
135
136
137 DO i=1,nel
138 phin(i) = phin(i)+dphi(i)
139 ENDDO
140
141
142 IF(rhocp > zero)THEN
143 DO i=1,nel
144 temp(i) = temp(i) + dphi(i)/rhocp
145 ENDDO
146 ENDIF
147
148 RETURN