28 SUBROUTINE i2therm(X ,NSN ,NSV ,IRTL ,MS ,
29 . WEIGHT ,IRECT ,CRST ,IADI2 ,KTHE ,
30 . TEMP ,AREAS ,FTHE ,FTHESKYI,CONDN ,
31 . CONDNSKYI,I0 ,ITAB ,IDT_THERM ,THEACCFACT)
35#include "implicit_f.inc"
46 INTEGER IRECT(4,*),NSV(*),IRTL(*),WEIGHT(*), IADI2(4,*),ITAB(*)
47 INTEGER ,
intent(in) :: IDT_THERM
48 my_real ,
intent(in) :: theaccfact
50 my_real :: x(3,*),temp(*),ms(*),crst(2,*),areas(*),fthe(*),ftheskyi(*),
51 . condn(*),condnskyi(*)
55 INTEGER I, ,L,W,IX1,IX2,IX3,IX4
58 . s, t, sp ,sm , tp, tm ,h1,h2,h3,h4,ax1,ay1,az1,ax2,ay2,az2,ax,ay,az,
59 . phi1,phi2,phi3,phi4,aream,areac,temps,tempm,phi,condint
93 ax1 = x(1,ix3) - x(1,ix1)
94 ay1 = x(2,ix3) - x(2,ix1)
95 az1 = x(3,ix3) - x(3,ix1)
96 ax2 = x(1,ix4) - x(1,ix2)
97 ay2 = x(2,ix4) - x(2,ix2)
98 az2 = x(3,ix4) - x(3,ix2)
100 ax = ay1*az2 - az1*ay2
101 ay = az1*ax2 - ax1*az2
102 az = ax1*ay2 - ay1*ax2
104 aream = one_over_8*sqrt(ax*ax+ay*ay+az*az)
105 areac =
min(areas(ii),aream)
108 tempm = h1*temp(ix1)+h2*temp(ix2)+h3*temp(ix3)+h4*temp(ix4)
110 phi = areac*(tempm - temps)*dt1*kthe*theaccfact
113 condint = areac*kthe*theaccfact
122 IF(idt_therm == 1) condn(i) = condn(i) + condint*w
124 IF (iparit == 0.AND.w == 1)
THEN
125 fthe(ix1)=fthe(ix1)+phi1
126 fthe(ix2)=fthe(ix2)+phi2
127 fthe(ix3)=fthe(ix3)+phi3
128 fthe(ix4)=fthe(ix4)+phi4
129 IF(idt_therm == 1)
THEN
130 condn(ix1)=condn(ix1)+abs(h1)*condint
131 condn(ix2)=condn(ix2)+abs(h2)*condint
132 condn(ix3)=condn(ix3)+abs(h3)*condint
133 condn(ix4)=condn(ix4)+abs(h4)*condint
135 ELSEIF (iparit > 0.AND.w == 1)
THEN
145 IF(idt_therm == 1)
THEN
147 condnskyi(nn)=abs(h1)*condint
149 condnskyi(nn)=abs(h2)*condint
151 condnskyi(nn)=abs(h3)*condint
153 condnskyi(nn)=abs(h4)*condint
subroutine i2therm(x, nsn, nsv, irtl, ms, weight, irect, crst, iadi2, kthe, temp, areas, fthe, ftheskyi, condn, condnskyi, i0, itab, idt_therm, theaccfact)