31 . NODE_FRAM2,GSTR,NEL,XL2,YL2,
32 . XL3,YL3,XL4,YL4,OFFSET,
33 . N_DIR2,DIRA_X,DIRA_Y,SMSTR,ISMSTR,
38#include "implicit_f.inc"
42 INTEGER,
INTENT(IN) :: I,NODE_FRAM1,NODE_FRAM2,II(6),NEL,ISMSTR,,ORIENT
43 my_real,
INTENT(IN) :: L0FRAM1,,XL2,YL2,XL3,YL3,XL4,YL4,OFFSET,N_DIR2(2)
44 my_real,
INTENT(INOUT) :: GSTR(NEL,8),DIRA_X,DIRA_Y
45 DOUBLE PRECISION,
INTENT(INOUT) :: SMSTR(L_SMSTR*NEL)
49 INTEGER NODE_FRAM_S,NODE_CORES_DIR1(4)
51 . (4),YLL(4),DIST,AREA0,FF(2,2),HH(2,2),
52 . UX13,UX24,UY13,UY24,PX1B,PX2B,PY1B,PY2B,VEC(2),N_DIR1(2)
60 node_cores_dir1(1) = 2
61 node_cores_dir1(2) = 1
62 node_cores_dir1(3) = 4
63 node_cores_dir1(4) = 3
65 node_cores_dir1(1) = 4
66 node_cores_dir1(2) = 3
67 node_cores_dir1(3) = 2
68 node_cores_dir1(4) = 1
80 node_fram_s = node_cores_dir1(node_fram1)
81 vec(1) = xll(node_fram_s)-xll(node_fram1)
82 vec(2) = yll(node_fram_s)-yll(node_fram1)
83 dist = sqrt(vec(1)**2+vec(2)**2)
84 n_dir1(1) = vec(1)/(dist*two)
85 n_dir1(2) = vec(2)/(dist*two)
87 node_fram_s = node_cores_dir1(node_fram2)
88 vec(1) = xll(node_fram_s)-xll(node_fram2)
89 vec(2) = yll(node_fram_s)-yll(node_fram2)
90 dist = sqrt(vec(1)**2+vec(2)**2)
91 n_dir1(1) = n_dir1(1) + vec(1)/(dist*two)
92 n_dir1(2) = n_dir1(2) + vec(2)/(dist*two)
99 node_fram_s = node_cores_dir1(node_fram1)
100 xll(node_fram1) = offset*n_dir1(1)
101 yll(node_fram1) = offset*n_dir1(2)
102 xll(node_fram_s) = xll(node_fram1) + l0fram1*n_dir1(1)
103 yll(node_fram_s) = yll(node_fram1) + l0fram1*n_dir1(2)
106 node_fram_s = node_cores_dir1(node_fram2)
107 xll(node_fram2) = n_dir2(1)
108 yll(node_fram2) = n_dir2(2)
109 xll(node_fram_s) = xll(node_fram2) + l0fram2*n_dir1(1)
110 yll(node_fram_s) = yll(node_fram2) + l0fram2*n_dir1(2)
113 xll(2) = xll(2)-xll(1)
114 xll(3) = xll(3)-xll(1)
115 xll(4) = xll(4)-xll(1)
116 yll(2) = yll(2)-yll(1)
117 yll(3) = yll(3)-yll(1)
118 yll(4) = yll(4)-yll(1)
128 IF (ismstr /= 11)
THEN
135 px1b = (yll(2)-yll(4))*half
136 py1b = (xll(4)-xll(2))*half
139 area0 = half*((xll(2)-xll(4))*yll(3)-xll(3)*(yll(2)-yll(4)))
142 ff(1,1)=(px1b*ux13+px2b*ux24)/area0
143 ff(2,2)=(py1b*uy13+py2b*uy24)/area0
144 ff(1,2)=(py1b*ux13+py2b*ux24)/area0
145 ff(2,1)=(px1b*uy13+px2b*uy24)/area0
152 gstr(i,3)=hh(1,2)*two
161 smstr(ii(1)+i-1)=xll(2)
162 smstr(ii(2)+i-1)=yll(2)
163 smstr(ii(3)+i-1)=xll(3)
164 smstr(ii(4)+i-1)=yll(3)
165 smstr(ii(5)+i-1)=xll(4)
166 smstr(ii(6)+i-1)=yll(4)
189#include "implicit_f.inc"
194 my_real,
INTENT(OUT) :: hh(2,2)
199 my_real FTF(2,2),FTF_VAL(2),FTF_VEC(2,2),HHB(2,2)
202 ftf(1,1) = ff(1,1)**2 + ff(2,1)**2
203 ftf(2,2) = ff(2,2)**2 + ff(1,2)**2
204 ftf(1,2) = ff(1,1)*ff(1,2) + ff(2,1)*ff(2,2)
205 ftf(2,1) = ff(1,1)*ff(1,2) + ff(2,1)*ff(2,2)
207 CALL jacobiew(ftf,2,ftf_val,ftf_vec,nrot)
209 ftf_val(1) = log(sqrt(ftf_val(1)))
210 ftf_val(2) = log(sqrt(ftf_val(2)))
217 hhb(i,j) = hhb(i,j) + ftf_vec(i,j) * ftf_val(j)
224 hh(i,j) = hh(i,j) + hhb(i,k) * ftf_vec(j,k)
subroutine shell_reactivation(i, ii, l0fram1, l0fram2, node_fram1, node_fram2, gstr, nel, xl2, yl2, xl3, yl3, xl4, yl4, offset, n_dir2, dira_x, dira_y, smstr, ismstr, l_smstr, orient)