35
36
37
41 USE format_mod , ONLY : fmt_2i
42 USE reader_old_mod , ONLY : line
43
44
45
46#include "implicit_f.inc"
47
48
49
50 TYPE (GROUP_) , DIMENSION(NGRBRIC) :: IGRBRIC
51
52
53
54#include "scry_c.inc"
55#include "scr16_c.inc"
56#include "scr17_c.inc"
57#include "com01_c.inc"
58#include "com04_c.inc"
59#include "units_c.inc"
60
61
62
63 INTEGER
64 . I,J,NGAUSS,NLAYER ,
65 . NUMS,NIP,NUVAR,JJHBE,J1,NU,IP,N,,
66 . K,IHBE,NPG,ND,NVAR_SHELL,NPT,NE,
67 . NVSHELL0,NUSHELL0,NORTSHEL0,NUSOLID0,NELS,KK,JJ,
68 . ISOLNOD,ISOLID,IFRAM,IORTH,IREP,IGTYP,ISH3N,NDIR,NLAYERS,
69 . UID,SUB_ID,NLAY,NPTR,NPTS,NPTT,IFAIL,IRUPT_TYP,NVAR_RUPT,
70 . ILAY,IMAT,NPT_MAX,NUBEAM0,NVSH_STRA,ISMSTR
71 INTEGER IGBR, JGBR, IOK
72 CHARACTER MESS*40
73 CHARACTER(LEN=NCHARKEY) :: KEY2, KEY3
74
75 nfilsol=0
76 numsol =0
77 numquad=0
78 numshel=0
79 numtrus=0
80 numbeam=0
81 numspri=0
82 numsh3n=0
83 nvshell0 = 33
84 nushell0 = 4
85 nortshel0 = 5
86 nvar_shell = 0
87 nubeam0 = 4
88 nubeam = 0
89 nvbeam = 0
90 nvspri = 0
91 nvtruss = 0
92 nvsh_stra =0
93
94 IF (isigi==3.OR.isigi==4.OR.isigi==5) THEN
95
96
97
98 rewind(iin5)
99
100 300 READ(iin5,fmt='(A)',END=309,ERR=399)line
101 IF(line(1:8)/='/CONTROL')GOTO 300
102 READ(iin5,fmt='(A)',END=309,ERR=399)line
103 305 READ(iin5,fmt='(A)',END=309,ERR=399)line
104 IF(line(1:1)=='#')GOTO 305
105
106 IF (ioutp_fmt==2) THEN
107 IF(line(1:8)==' ')GOTO 305
108
109 ELSE
110 IF(line(1:10)==' ')GOTO 305
111 END IF
112
113 IF(line(1:1)=='/')GOTO 309
114 306 READ(iin5,fmt='(A)',END=309,ERR=399)line
115 IF(line(1:1)=='#')GOTO 306
116
117 IF (ioutp_fmt==2) THEN
118 IF(line(1:8)==' ')GOTO 306
119
120 ELSE
121 IF(line(1:10)==' ')GOTO 306
122 END IF
123
124 IF(line(1:1)=='/')GOTO 309
125 IF (ioutp_fmt==2) THEN
126 READ(line,'(8I8)')
127 . numsol,numquad,numshel,numtrus,numbeam,numspri,numsh3n,
128 . numsphy
129
130 ELSE
131 READ(line,'(8I10)')
132 . numsol,numquad,numshel,numtrus,numbeam,numspri,numsh3n
133 . numsphy
134
135 END IF
136 309 CONTINUE
137
138 iufacyld = 0
139 iushell = 0
140 nushell = 0
141 nvshell1 = 0
142 nvshell2 = 0
143 iusolid = 0
144 nusolid = 0
145 nvsolid1 = 0
146 nvsolid2 = 0
147 nvsolid3 = 0
148 nvsolid4 = 0
149 nvsolid5 = 0
150 nvsolid6 = 0
151 rewind(iin4)
152 400 READ(iin4,fmt='(A)',END=449,ERR=449)line
153 IF(line(1:8)=='/ENDDATA')THEN
154 rewind(iin4)
155 GO TO 409
156 ENDIF
157 IF(line(1:28)/='/SHELL /SCALAR /USERS')GOTO 400
158 READ(iin4,fmt='(A)',END=449,ERR=449)line
159 iushell = 1
160
161 i = 0
162 j = 0
163 405 READ(iin4,fmt='(A)',END=449,ERR=449)line
164 IF(line(1:1)=='#')GOTO 405
165 IF(line(1:1)=='/')GOTO 410
166 j=j
167 i=i+1
168 IF(j>numshel+numsh3n) GOTO 410
169 IF(ioutp_fmt==2)THEN
170 READ(line,fmt='(4I8)')ihbe,nip,npg,nuvar
171 ELSE
172 READ(line,fmt='(4I10)')ihbe,nip,npg,nuvar
173 ENDIF
174 nushell =
max(nushell,
max(1,npg)*
max(1,nip)*nuvar + nushell0)
175 nd = mod(nuvar,6)
176 nu = (nuvar - nd)/6
177 IF(nd/=0) nu = nu +1
178 IF(nuvar < 6) nu = 1
179
180 DO j1 = 1,nu *
max(1,nip)*
max(1,npg)
181 406 READ(iin4,fmt='(A)',END=449,ERR=449)line
182 IF(line(1:1)=='#')GOTO 406
183 IF(line(1:1)=='/')GOTO 410
184 ENDDO
185 GO TO 405
186 449 CONTINUE
187
188
189
190
191
192 409 READ(iin4,fmt='(A)',END=443,ERR=399)line
193 IF(line(1:8)=='/ENDDATA')THEN
194 rewind(iin4)
195 GOTO 425
196 ENDIF
197 410 IF(line(1:33)/='/SHELL /TENSOR /STRESS_FUL')GOTO 409
198
199 READ(iin4,fmt='(A)',END=443,ERR=499)line
200
201 i = 0
202 j = 0
203
204 411 READ(iin4,fmt='(a)',END=443,ERR=499)LINE
205 IF(LINE(1:1)=='#')GOTO 411
206 IF(line(1:1)=='/')GOTO 443
207 j=j+1
208 i=i+1
209
210 IF(j>numshel+numsh3n) GOTO 420
211 IF (ioutp_fmt==2) THEN
212 READ(line,'(2I8)')nip,npg
213 ELSE
214 READ(line,fmt=fmt_2i) nip,npg
215 ENDIF
216
217 READ(iin4,fmt='(a)',END=443,ERR=499)LINE
218 IF(NIP==0)THEN
219 NVAR_SHELL = MAX(NVAR_SHELL, MAX(1,NPG)*9)
220 ELSE
221 NVAR_SHELL = MAX(NVAR_SHELL, MAX(1,NIP)*MAX(1,NPG)*6)
222 ENDIF
223
224 NVSHELL = NVAR_SHELL
225.OR. IF (NPG==0NPG==1)THEN
226 IF(NIP==0)THEN
227 READ(IIN4,FMT='(a)',END=443,ERR=399)LINE
228 READ(IIN4,FMT='(a)',END=443,ERR=399)line
229 ELSE
230 DO k=1,nip
231 READ(iin4,fmt='(A)',END=443,ERR=399)line
232 ENDDO
233 ENDIF
234 ELSEIF(npg>1) THEN
235 IF(nip==0)THEN
236 DO n=1,npg
237 READ(iin4,fmt='(A)',END=443,ERR=399)line
238 READ(iin4,fmt='(A)',END=443,ERR=399)line
239 ENDDO
240 ELSE
241
242 DO k=1,nip
243 DO n=1,npg
244 READ(iin4,fmt='(A)',END=443,ERR=399)line
245
246 ENDDO
247 ENDDO
248 ENDIF
249 ELSE
250 ENDIF
251 GO TO 411
252 443 CONTINUE
253 rewind(iin4)
254
255
256
257 425 READ(iin4,fmt='(A)',END=429,ERR=399)line
258 IF(line(1:8) == '/ENDDATA')THEN
259 rewind(iin4)
260 GOTO 429
261 ENDIF
262 420 IF(line(1:30) /= '/SOLID /TENSOR /STR_FUL')GOTO 425
263 READ(iin4,fmt='(A)',END=429,ERR=399)line
264
265 i = 0
266 j = 0
267 426 READ(iin4,fmt='(A)',END=429,ERR=399)line
268 IF(line(1:1) == '#')GOTO 426
269 IF(line(1:1) == '/')GOTO 429
270 i=i+1
271 IF(i > numsol+numquad) GOTO 450
272
273 IF (ioutp_fmt == 2) THEN
274 READ(line,'(3I8)')nip,nums,jjhbe
275 ELSE
276 READ(line,'(3I10)')nip,nums, jjhbe
277 ENDIF
278 nvsolid1 =
max(nvsolid1,nip*9 + 4)
279 IF((nums == 8.OR.nums == 4).AND.jjhbe == 0)THEN
280
281 READ(iin4,fmt='(A)',END=429,ERR=399)line
282 IF(nip == 1)THEN
283 READ(iin4,fmt='(A)',END=429,ERR=399)line
284 READ(iin4,fmt='(A)',END=429,ERR=399)line
285 ELSE
286 DO k=1,nip
287 READ(iin4,fmt='(A)',END=429,ERR=399)line
288 READ(iin4,fmt='(A)',END=429,ERR=399)line
289 ENDDO
290 ENDIF
291 ELSEIF(nums == 10 .OR. nums == 16 .OR. nums == 20.OR.
292 . (nums == 8.AND.jjhbe == 14) .or .(nums == 8.AND.jjhbe == 17).OR.
293 . ((nums == 6.OR.nums == 8) .AND. (jjhbe==15 .or. jjhbe==12)))THEN
294
295 DO k=1,nip
296 READ(iin4,fmt='(A)',END=429,ERR=399)line
297 READ(iin4,fmt='(A)',END=429,ERR=399)line
298 ENDDO
299 ENDIF
300 GO TO 426
301
302 429 CONTINUE
303 rewind(iin4)
304
305
306
307 230 READ(iin4,fmt='(A)',END=235,ERR=399)line
308 IF(line(1:8)=='/ENDDATA')THEN
309 rewind(iin4)
310 GOTO 430
311 ENDIF
312 232 IF(line(1:33)/='/SOLID /TENSOR /STRESS')GOTO 230
313 READ(iin4,fmt='(A)',END=235,ERR=399)line
314
315 nvsolid1 =
max(nvsolid1, 6)
316 235 CONTINUE
317 rewind(iin4)
318
319
320 430 READ(iin4,fmt='(A)',END=435,ERR=399)line
321 IF(line(1:8)=='/ENDDATA')THEN
322 rewind(iin4)
323 GOTO 444
324 ENDIF
325 432 IF(line(1:33)/='/SOLID /TENSOR /STRAIN_FUL')GOTO 430
326 READ(iin4,fmt='(A)',END=435,ERR=399)line
327
328 i = 0
329 j = 0
330 434 READ(iin4,fmt='(A)',END=435,ERR=399)line
331 IF(line(1:1)=='#')GOTO 434
332 IF(line(1:1)=='/')GOTO 435
333 j=j+1
334 i=i+1
335 IF(i>numsol+numquad) GOTO 435
336 IF (ioutp_fmt==2) THEN
337 READ(line,'(3I8)')nip,nums,nels
338 ELSE
339 READ(line,'(3I10)')nip,nums, nels
340 ENDIF
341 nvsolid2 =
max(nvsolid2,
max(1,nip)*6)
342 DO kk = 1, nels
343 DO k=1,nip
344 READ(iin4,fmt='(A)',END=435,ERR=399)line
345 ENDDO
346 ENDDO
347 GOTO 434
348 435 CONTINUE
349 rewind(iin4)
350
351 444 READ(iin4,fmt='(A)',END=499,ERR=499)line
352 IF(line(1:8)=='/ENDDATA')THEN
353 rewind(iin4)
354 GOTO 498
355 ENDIF
356 450 IF(line(1:28)/='/SOLID /SCALAR /USERS')GOTO 444
357 READ(iin4,fmt='(A)',END=498,ERR=399)line
358 iusolid = 1
359 i = 0
360 455 READ(iin4,fmt='(A)',END=498,ERR=399)line
361 IF(line(1:1)=='#')GOTO 455
362 IF(line(1:1)=='/')GOTO 498
363 IF(ioutp_fmt==2)THEN
364 READ(line,'(4I8)')nums,nip,nuvar,jjhbe
365 ELSE
366 READ(line,'(4I10)')nums,nip,nuvar,jjhbe
367 ENDIF
368 nusolid =
max(nusolid,nip*nuvar)
369 i=i+1
370 nd = mod(nuvar,6)
371 nu = (nuvar - nd)/6
372 IF(nd/=0) nu = nu + 1
373 IF(nuvar < 6) nu =
max(1,nip)
374 IF(i>numsol+numquad) GOTO 498
375 IF (nuvar==0) GOTO 455
376 DO j1 = 1,nu *
max(1,nip)
377 459 READ(iin4,fmt='(A)',END=498,ERR=399)line
378 IF(line(1:1)=='#')GOTO 459
379 IF(line(1:1)=='/')GOTO 498
380 ENDDO
381
382 GO TO 455
383 498 CONTINUE
384 499 CONTINUE
385 nvshell = nvshell + nvshell0
386 rewind(iin4)
387 ENDIF
388
389 RETURN
390 399 CONTINUE
391 CALL ancmsg(msgid=557, msgtype=msgerror, anmode=aninfo_blind_1)
393 RETURN
integer, parameter ncharkey
subroutine ancmsg(msgid, msgtype, anmode, i1, i2, i3, i4, i5, i6, i7, i8, i9, i10, i11, i12, i13, i14, i15, i16, i17, i18, i19, i20, r1, r2, r3, r4, r5, r6, r7, r8, r9, c1, c2, c3, c4, c5, c6, c7, c8, c9, prmode)