33
34
35
36
37#include "implicit_f.inc"
38
39
40
41#include "mvsiz_p.inc"
42
43
44
45#include "param_c.inc"
46#include "com04_c.inc"
47
48
49
50 INTEGER MAT(MVSIZ),JFT, JLT,PID(*),
51 . IHBE
52
54 . pm(npropm,*), off(*), geo(npropg,*)
56 . x2(mvsiz), x3(mvsiz), x4(mvsiz),
57 . y2(mvsiz), y3(mvsiz), y4(mvsiz),
58 .
area(mvsiz), aldt(mvsiz)
59
60
61
62 INTEGER I, MX,IPID
63
65 . al1(mvsiz), al2(mvsiz), al3(mvsiz),
66 . al4(mvsiz), al5(mvsiz), al6(mvsiz),
67 . almin(mvsiz),
68 . alquad, dtdyn, h1, h2, dthour
69
70 DO i=jft,jlt
71 al1(i)= x2(i) * x2(i) + y2(i) * y2(i)
72 al2(i)=(x3(i)-x2(i))*(x3(i)-x2(i))+(y3(i)-y2(i))*(y3(i)-y2(i))
73 al6(i)= x3(i) * x3(i) + y3(i) * y3(i)
74 al3(i)=(x4(i)-x3(i))*(x4(i)-x3(i))+(y4(i)-y3(i))*(y4(i)-y3(i))
75 al4(i)= x4(i) * x4(i) + y4(i) * y4(i)
76 al5(i)=(x4(i)-x2(i))*(x4(i)-x2(i))+(y4(i)-y2(i))*(y4(i)-y2(i))
77 ENDDO
78
79 DO i=jft,jlt
80 almin(i)=
min(al1(i),al2(i),al4(i))
81 alquad =
min(al3(i),al5(i),al6(i))
82 IF(al3(i)/=zero) almin(i)=
min(almin(i),alquad)
84 aldt(i)=
max( dtdyn , almin(i) )
85 ENDDO
86
87
88
89 IF(ihbe/=0)THEN
90 mx = mat(jft)
91 DO i=jft,jlt
92 IF(invstr>=35)THEN
93 ipid=pid(i)
94 h1 =geo(13,ipid)
95 h2 =geo(14,ipid)
96 ELSE
97 h1 =pm( 5,mx)
98 h2 =pm( 6,mx)
99 ENDIF
100 dthour = half * (almin(i)+aldt(i)) /
max(h1,h2)
101
102 IF (dthour<aldt(i)) aldt(i)=dthour
103 ENDDO
104 ELSE
105 mx = mat(jft)
106 DO i=jft,jlt
107 IF(invstr>=35)THEN
108 ipid=pid(i)
109 h1 =geo(13,ipid)
110 h2 =geo(14,ipid)
111 ELSE
112 h1 =pm( 5,mx)
113 h2 =pm( 6,mx)
114 ENDIF
115 dthour = half * (almin(i)+aldt(i)) /
max(h1,h2)
116 aldt(i) =
min(aldt(i),dthour)
117 ENDDO
118 ENDIF
119
120 DO i=jft,jlt
121 aldt(i)= sqrt( aldt(i) )
122 ENDDO
123
124 RETURN
subroutine area(d1, x, x2, y, y2, eint, stif0)