107
108
109
110#include "implicit_f.inc"
111#include "comlock.inc"
112
113
114
115 INTEGER NRTM, IRECT(4,*),MSEGTYP(*), NVOISIN(8,*)
117 . xmax,
ymax, zmax, xmin, ymin, zmin, c_max,
118 . gap_mn(12,*),wagap(2,*),gap_m(*),gapmax,dgap_mn(4,*),
119 . dgap_m(*),dgapmax,stfm(*)
120
121
122
123 INTEGER II,M1,M2,M3,M4,NE,L
125 . gapn_old(4),gap_mmax
126
127
128
129
130
131 DO ne=1,nrtm
132 IF(stfm(ne) == zero) cycle
133 gap_mmax = zero
134 m1 = irect(1,ne)
135 m2 = irect(2,ne)
136 m3 = irect(3,ne)
137 m4 = irect(4,ne)
138
139 gapn_old(1) = gap_mn(1,ne)
140 gapn_old(2) = gap_mn(2,ne)
141 gapn_old(3) = gap_mn(3,ne)
142 gapn_old(4) = gap_mn(4,ne)
143
144 IF(msegtyp(ne) > 0 ) THEN
145
146 gap_mn(1,ne) =
max(gap_mn(1,ne), wagap(1,m1))
147 gap_mmax =
max(gap_mmax,gap_mn(1,ne))
148 gap_mn(2,ne) =
max(gap_mn(2,ne), wagap(1,m2))
149 gap_mmax =
max(gap_mmax,gap_mn(2,ne))
150 gap_mn(3,ne) =
max(gap_mn(3,ne), wagap(1,m3))
151 gap_mmax =
max(gap_mmax,gap_mn(3,ne))
152 gap_mn(4,ne) =
max(gap_mn(4,ne), wagap(1,m4))
153 gap_mmax =
max(gap_mmax,gap_mn(4,ne))
154
155 l = iabs(nvoisin(1,ne))
156 IF(l > 0) gap_mn(5,ne) =
max(gap_mn(5,ne), wagap(1,l))
157 l = iabs(nvoisin(2,ne))
158 IF(l > 0) gap_mn(6,ne) =
max(gap_mn(6,ne), wagap(1,l))
159 l = iabs(nvoisin(3,ne))
160 IF(l > 0) gap_mn(7,ne) =
max(gap_mn(7,ne), wagap(1,l))
161 l = iabs(nvoisin(4,ne))
162 IF(l > 0) gap_mn(8,ne) =
max(gap_mn(8,ne), wagap(1,l))
163 l = iabs(nvoisin(5,ne))
164 IF(l > 0) gap_mn(9,ne) =
max(gap_mn(9,ne), wagap(1,l))
165 l = iabs(nvoisin(6,ne))
166 IF(l > 0) gap_mn(10,ne) =
max(gap_mn(10,ne), wagap(1,l))
167 l = iabs(nvoisin(7,ne))
168 IF(l > 0) gap_mn(11,ne) =
max(gap_mn(11,ne), wagap(1,l))
169 l = iabs(nvoisin(8,ne))
170 IF(l > 0) gap_mn(12,ne) =
max(gap_mn(12,ne), wagap(1,l))
171 ELSEIF(msegtyp(ne) < 0) THEN
172 gap_mn(1,ne) =
max(gap_mn(1,ne), wagap(2,m1))
173 gap_mmax =
max(gap_mmax,gap_mn(1,ne))
174 gap_mn(2,ne) =
max(gap_mn(2,ne), wagap(2,m2))
175 gap_mmax =
max(gap_mmax,gap_mn(2,ne))
176 gap_mn(3,ne) =
max(gap_mn(3,ne), wagap(2,m3))
177 gap_mmax =
max(gap_mmax,gap_mn(3,ne))
178 gap_mn(4,ne) =
max(gap_mn(4,ne), wagap(2,m4))
179 gap_mmax =
max(gap_mmax,gap_mn(4,ne))
180
181 l = iabs(nvoisin(1,ne))
182 IF(l > 0) gap_mn(5,ne) =
max(gap_mn(5,ne), wagap(2,l))
183 l = iabs(nvoisin(2,ne))
184 IF(l > 0) gap_mn(6,ne) =
max(gap_mn(6,ne), wagap(2,l))
185 l = iabs(nvoisin(3,ne))
186 IF(l > 0) gap_mn(7,ne) =
max(gap_mn(7,ne), wagap(2,l))
187 l = iabs(nvoisin(4,ne))
188 IF(l > 0) gap_mn(8,ne) =
max(gap_mn(8,ne), wagap(2,l))
189 l = iabs(nvoisin(5,ne))
190 IF(l > 0) gap_mn(9,ne) =
max(gap_mn(9,ne), wagap(2,l))
191 l = iabs(nvoisin(6,ne))
192 IF(l > 0) gap_mn(10,ne) =
max(gap_mn(10,ne), wagap(2,l))
193 l = iabs(nvoisin(7,ne))
194 IF(l > 0) gap_mn(11,ne) =
max(gap_mn(11,ne), wagap(2,l))
195 l = iabs(nvoisin(8,ne))
196 IF(l > 0) gap_mn(12,ne) =
max(gap_mn(12,ne), wagap(2,l))
197 ENDIF
198 gap_m(ne) = gap_mmax
199 gapmax =
max(gapmax,gap_mmax)
200 dgap_mn(1,ne)= gap_mn(1,ne) - gapn_old(1)
201 dgap_mn(2,ne)= gap_mn(2,ne) - gapn_old(2)
202 dgap_mn(3,ne)= gap_mn(3,ne) - gapn_old(3)
203 dgap_mn(4,ne)= gap_mn(4,ne) - gapn_old(4)
204 dgap_m(ne) =
max(dgap_mn(1,ne), dgap_mn(2,ne),
205 . dgap_mn(3,ne), dgap_mn(4,ne))
206#include "lockon.inc"
207 dgapmax =
max(dgapmax, dgap_m(ne))
208#include "lockoff.inc"
209 ENDDO
210
211 RETURN
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)