35
36
37
38 USE format_mod , ONLY : fmw_4i, fmw_i_3f
39
40
41
42#include "implicit_f.inc"
43
44
45
46#include "mvsiz_p.inc"
47
48
49
50 INTEGER ITAB(*),CAND_M(*),CAND_S(*),INACTI,IGAP, N1(*) ,N2(*) ,M1(*) ,M2(*)
51 INTEGER NSV(*),IWPENE
52 LOGICAL PRINT_WARNING
53 my_real stfs(*),stfm(*),x(3,*),gap_s(*) ,gap_m(*),penis(2,*), penim(2,*),nx(mvsiz), ny(mvsiz), nz(mvsiz),gapv(*)
54
55
56
57#include "units_c.inc"
58#include "vect07_c.inc"
59#include "scr03_c.inc"
60
61
62
63 INTEGER I, IS, IM,JWARN
64 my_real pene(mvsiz), peneold, s2, d, pplus
65
66
67 jwarn = 0
68 DO i=1,llt
69 s2 = sqrt(nx(i)**2 + ny(i)**2 + nz(i)**2)
70 gapv(i) = sqrt(gapv(i))
71 pene(i) = gapv(i) - s2
73 nx(i) = nx(i)*s2
74 ny(i) = ny(i)*s2
75 nz(i) = nz(i)*s2
76 ENDDO
77
78 DO 100 i=lft,llt
79 IF(ipri>=1)THEN
80 WRITE(iout,fmt=fmw_4i)
81 2 itab(n1(i)),itab(n2(i)),itab(m1(i)),itab(m2(i))
82 ENDIF
83 IF(pene(i)>zero)THEN
84 IF(ipri>=5)THEN
85 WRITE(iout,1000)pene(i)
86 WRITE(iout,fmt=fmw_i_3f)itab(n1(i)),
87 . x(1,n1(i))+pene(i)*nx(i),
88 . x(2,n1(i))+pene(i)*ny(i),
89 . x(3,n1(i))+pene(i)*nz(i)
90 WRITE(iout,fmt=fmw_i_3f)itab(n2(i)),
91 . x(1,n2(i))+pene(i)*nx(i),
92 . x(2,n2(i))+pene(i)*ny(i),
93 . x(3,n2(i))+pene(i)*nz(i)
94 ENDIF
95
96 IF(inacti/=6)THEN
97 pene(i) = pene(i) + em8*pene(i)
98 IF(inacti==1) THEN
99
100 WRITE(iout,'(A)')'SECONDARY STIFFNESS IS SET TO ZERO'
101 stfs(cand_s(i)) = zero
102 ELSE IF(inacti==2) THEN
103
104 WRITE(iout,'(A)')'MAIN STIFFNESS IS SET TO ZERO'
105 stfm(cand_m(i)) = zero
106 ELSE IF(inacti==5) THEN
107
108 IF(pene(i)>=gapv(i)*zep995)THEN
109 WRITE(iout,'(a)')' *** penetration > gap - 0.5%
110 WRITE(iout,'(A)')'SECONDARY STIFFNESS IS SET TO ZERO'
111 pene(i)=gapv(i)
112 stfs(cand_s(i)) =zero
113 ELSE
114 jwarn = 1
115 is=cand_s(i)
116 im=cand_m(i)
117 penis(2,is)=
max(penis(2,is),half*pene(i))
118 penim(2,im)=
max(penim(2,im),half*pene(i))
119 penis(1,is)=penis(2,is)
120 penim(1,im)=penim(2,im)
121 ENDIF
122 ENDIF
123
124 ELSE
125
126 IF(pene(i)>=gapv(i)*zep995)THEN
127 WRITE(iout,'(A)')' *** PENETRATION > GAP - 0.5% !! '
128 WRITE(iout,'(A)')'SECONDARY STIFFNESS IS SET TO ZERO'
129 pene(i)=gapv(i)
130 stfs(cand_s(i)) = zero
131 ELSE
132 jwarn = 1
133 is=cand_s(i)
134 im=cand_m(i)
135 pplus=half*(pene(i)+zep05*(gapv(i)-pene(i)))
136 penis(2,is)=
max(penis(2,is),pplus)
137 penim(2,im)=
max(penim(2,im),pplus)
138 penis(1,is)=penis(2,is)
139 penim(1,im)=penim(2,im)
140 ENDIF
141 END IF
142
143 iwpene=iwpene+1
144 ENDIF
145 100 CONTINUE
146 IF (jwarn==1 .AND. print_warning ) THEN
147 WRITE(iout,'(A)')'REDUCE INITIAL GAP'
148 print_warning = .false.
149 ENDIF
150
151 1000 FORMAT(2x,'** INITIAL PENETRATION =',1pg20.13,
152 . ' POSSIBLE NEW COORDINATES OF SECONDARY NODES')
153 RETURN