33 use element_mod , only : nixc
34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "mvsiz_p.inc"
42#include "param_c.inc"
43
44
45
46 INTEGER :: JFT,JLT,NPLAT
47 INTEGER :: IXC(NIXC,*),IPLAT(*)
48 my_real ,
INTENT(IN) :: theaccfact
51 . tempnc(*), fphi(mvsiz,4), pm(npropm),dheat(*),
52 . thk(*),tel(*),bm(mvsiz,*)
53
54
55
56 INTEGER I,EP,N1,N2,N3,N4
58 . ca,cb ,kc ,phix,phiy,a,temp1,temp2,temp3,temp4,
59 . temp13,temp24,temph
60
61 ca = pm(75)
62 cb = pm(76)
63
64 DO ep=jft,nplat
65 i=iplat(ep)
66
67 kc = ( ca + cb*tel(i))*dtime*theaccfact
68
69 n1 = ixc(2,i)
70 n2 = ixc(3,i)
71 n3 = ixc(4,i)
72 n4 = ixc(5,i)
73
74 temp13 = tempnc(n1)-tempnc(n3)
75 temp24 = tempnc(n2)-tempnc(n4)
76 temph = tempnc(n1)-tempnc(n2)+tempnc(n3)-tempnc(n4)
77
78
79
80
81 phix = temp13*bm(i,1) + temp24*bm(i,2)+bm(i,3)*temph
82
83 phiy = temp13*bm(i,5) + temp24*bm(i,6)+bm(i,7)*temph
84
85 phix = kc*phix*thk(i)*
area(i)
86 phiy = kc*phiy*thk(i)*
area(i)
87
88
89
90
91 a = fourth *fourth * dheat(i)
92
93 fphi(i,1) = a - (phix*(bm(i,1)+bm(i,3)) + phiy*(bm(i,5)+bm(i,7)))
94 fphi(i,2) = a - (phix*(bm(i,2)-bm(i,3)) + phiy*(bm(i,6)-bm(i,7)))
95 fphi(i,3) = a - (phix*(bm(i,3)-bm(i,1)) + phiy*(bm(i,7)-bm(i,5)))
96 fphi(i,4) = a + (phix*(bm(i,2)+bm(i,3)) + phiy*(bm(i,6)+bm(i,7)))
97
98 END DO
99
100 DO ep=nplat+1,jlt
101
102 i=iplat(ep)
103
104 kc = ( ca + cb*tel(i))*dtime
105
106 n1 = ixc(2,i)
107 n2 = ixc(3,i)
108 n3 = ixc(4,i)
109 n4 = ixc(5,i)
110
111 temp1 = tempnc(n1)
112 temp2 = tempnc(n2)
113 temp3 = tempnc(n3)
114 temp4 = tempnc(n4)
115
116
117
118 phix = (bm(i,1)+bm(i,4))*temp1 + (bm(i,10)+bm(i,13))*temp2
119 . + (bm(i,19)+bm(i,22))*temp3 + (bm(i,28)+bm(i,31))*temp2
120
121 phiy = (bm(i,2)+bm(i,5))*temp1 + (bm(i,11)+bm(i,14
122 . + (bm(i,20)+bm(i,23))*temp3 + (bm(i,29)+bm(i,32))*temp2
123
124 phix = kc*phix*thk(i)*
area(i)
125 phiy = kc*phiy*thk(i)*
area(i)
126
127
128
129 a = fourth *fourth * dheat(i)
130
131 fphi(i,1) = a - (phix*(bm(i,1)+bm(i,4)) + phiy*(bm(i,2)+bm(i,5)))
132 fphi(i,2) = a - (phix*(bm(i,10)+bm(i,13)) + phiy*(bm(i,11)+bm(i,14)))
133 fphi(i,3) = a - (phix*(bm(i,19)+bm(i,22)) + phiy*(bm(i,20)+bm(i,23)))
134 fphi(i,4) = a - (phix*(bm(i,28)+bm(i,31)) + phiy*(bm(i,29)+bm(i,32)))
135
136 END DO
137
138 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)