40
41
42
44 USE output_mod , ONLY : output_
45
46
47
48#include "implicit_f.inc"
49
50
51
52#include "com06_c.inc"
53
54
55
56#include "mvsiz_p.inc"
57
58
59
60 TYPE(OUTPUT_), INTENT(INOUT) :: OUTPUT
61 INTEGER, INTENT(IN) :: JTUR
62 INTEGER, INTENT(IN) :: JLAG
63 INTEGER, INTENT(IN) :: JPOR
64 INTEGER MLN,NEL
65 my_real off(*), snew(nel,6), qold(*), eint(*)
66 my_real vnew(*), espe(*), qnew(*), pnew(*), sold1(*), sold2(*),
67 . sold3(*), sold4(*), sold5(*), sold6(*),
68 . dvol(*), df(*), d1(*), d2(*), d3(*), d4(*), d5(*),
69 . d6(*), psh(*), einc(*),
70 . vis(*), tmu(*), vol_avg(*)
71
72
73
74#include "com08_c.inc"
75#include "scr06_c.inc"
76
77
78
79 INTEGER I
80 my_real pold(mvsiz), e1, e2, e3, e4, e5, e6, dta, wfextt
81
82
83
84 dta = half*dt1
85
86 IF(
ale%GLOBAL%INCOMP == 1 .AND. jlag == 0)
THEN
87 DO i=1,nel
88 pold(i)=(sold1(i)+sold2(i)+sold3(i))*third
89 eint(i)=eint(i)+(half*dvol(i)*(pold(i)-psh(i)))*off(i)
90 espe(i)=eint(i)*df(i) /
max(em15,vnew(i))
91 qold(i)=qnew(i)
92 ENDDO
93 RETURN
94 ENDIF
95
96 DO i=1,nel
97 pold(i)=(sold1(i)+sold2(i)+sold3(i)) * third
98 sold1(i)=sold1(i)-pold(i)
99 sold2(i)=sold2(i)-pold(i)
100 sold3(i)=sold3(i)-pold(i)
101 e1=d1(i)*(sold1(i)+snew(i,1))
102 e2=d2(i)*(sold2(i)+snew(i,2))
103 e3=d3(i)*(sold3(i)+snew(i,3))
104 e4=d4(i)*(sold4(i)+snew(i,4))
105 e5=d5(i)*(sold5(i)+snew(i,5))
106 e6=d6(i)*(sold6(i)+snew(i,6))
107 einc(i) = vol_avg(i) * (e1+e2+e3+e4+e5+e6) * dta
108 ENDDO
109
110 wfextt = zero
111 DO i=1,nel
112 wfextt = wfextt - dvol(i)*psh(i)
113 ENDDO
114
115 output%TH%WFEXT = output%TH%WFEXT + wfextt
116
117
118 IF(jtur == 0 .OR. jpor == 2)THEN
119 DO i=1,nel
120 eint(i)=eint(i)+(einc(i)+half*dvol(i)*(pold(i)-psh(i)-qold(i)-qnew(i)))*off(i)
121 ENDDO
122 ELSE
123 DO i=1,nel
124 eint(i)=eint(i) + (einc(i)*(vis(i)-tmu(i))/vis(i) + half*dvol(i)*(pold(i)-psh(i)-qold(i)-qnew(i)))*off(i)
125 ENDDO
126 ENDIF
127
128 DO i=1,nel
129 qold(i)=qnew(i)
130 espe(i)=eint(i)*df(i) /
max(em15,vnew(i))
131 ENDDO
132
133
134
135 IF(mln==21)THEN
136 DO i=1,nel
137 eint(i) = eint(i) - half*dvol(i)*(pnew(i)+psh(i))
138 ENDDO
139 ENDIF
140
141 RETURN