40
41
42
43#include "implicit_f.inc"
44
45
46
47#include "mvsiz_p.inc"
48
49
50
51 INTEGER, INTENT(INOUT) :: LFT
52 INTEGER, INTENT(INOUT) :: LLT
53 INTEGER, INTENT(INOUT) :: NFT
54 INTEGER IGIMP
55
57 . ansmx, fmx, fmy, fmz, peni
58 INTEGER IRECT(4,*), MSR(*), NSV(*), IRTL(*)
59
61 . stf(*), stfn(*), es(*), em(*)
62 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: n1,n2,n3
63 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: ans,xface
64 my_real,
DIMENSION(MVSIZ),
INTENT(IN) :: h1,h2,h3,h4,thk
65 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: fni
66 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: fxi,fyi,fzi
67 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: fx1,fx2,fx3,fx4
68 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: fy1,fy2,fy3,fy4
69 my_real,
DIMENSION(MVSIZ),
INTENT(INOUT) :: fz1,fz2,fz3,fz4
70
71
72
73
74
75
76 INTEGER I, IL, L, J3, J2, J1, I3,I2, I1
77
79 . penet
80
81 DO i=lft,llt
82 penet = (ans(i)-thk(i))*xface(i)
83 ansmx =
min(ansmx,penet)
84 ans(i)=
min(zero,penet)
85 IF (ans(i) == zero) xface(i)=zero
86 ans(i) = xface(i)*ans(i)
87 ENDDO
88
89 igimp = 0
90 DO i=lft,llt
91 igimp = igimp+abs(xface(i))
92 ENDDO
93 IF (igimp == 0) RETURN
94
95 DO i=lft,llt
96 fni(i)=ans(i)
97 fxi(i)=n1(i)*fni(i)
98 fyi(i)=n2(i)*fni(i)
99 fzi(i)=n3(i)*fni(i)
100 ENDDO
101
102 DO i=lft,llt
103 fx1(i)=fxi(i)*h1(i)
104 fy1(i)=fyi(i)*h1(i)
105 fz1(i)=fzi(i)*h1(i)
106
107 fx2(i)=fxi(i)*h2(i)
108 fy2(i)=fyi(i)*h2(i)
109 fz2(i)=fzi(i)*h2(i)
110
111 fx3(i)=fxi(i)*h3(i)
112 fy3(i)=fyi(i)*h3(i)
113 fz3(i)=fzi(i)*h3(i)
114
115 fx4(i)=fxi(i)*h4(i)
116 fy4(i)=fyi(i)*h4(i)
117 fz4(i)=fzi(i)*h4(i)
118 ENDDO
119
120 DO i=lft,llt
121 il=i+nft
122 l =irtl(il)
123 j3=3*irect(1,l)
124 j2=j3-1
125 j1=j2-1
126 em(j1)=em(j1)+fx1(i)
127 em(j2)=em(j2)+fy1(i)
128 em(j3)=em(j3)+fz1(i)
129
130 j3=3*irect(2,l)
131 j2=j3-1
132 j1=j2-1
133 em(j1)=em(j1)+fx2(i)
134 em(j2)=em(j2)+fy2(i)
135 em(j3)=em(j3)+fz2(i)
136
137 j3=3*irect(3,l)
138 j2=j3-1
139 j1=j2-1
140 em(j1)=em(j1)+fx3(i)
141 em(j2)=em(j2)+fy3(i)
142 em(j3)=em(j3)+fz3(i)
143
144 j3=3*irect(4,l)
145 j2=j3-1
146 j1=j2-1
147 em(j1)=em(j1)+fx4(i)
148 em(j2)=em(j2)+fy4(i)
149 em(j3)=em(j3)+fz4(i)
150 ENDDO
151
152 DO i=lft,llt
153 i3=3*(i+nft)
154 i2=i3-1
155 i1=i2-1
156 es(i1)=es(i1)-fxi(i)
157 es(i2)=es(i2)-fyi(i)
158 es(i3)=es(i3)-fzi(i)
159 fmx = fmx + fxi(i)
160 fmy = fmy + fyi(i)
161 fmz = fmz + fzi(i)
162 ENDDO
163
164 RETURN