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,NPSOLID,
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 CHARACTER MESS*40
72 CHARACTER(LEN=NCHARKEY) :: KEY2, KEY3
73
74 nfilsol=0
75 numsol =0
76 numquad=0
77 numshel=0
78 numtrus=0
79 numbeam=0
80 numspri=0
81 numsh3n=0
82 nvshell0 = 33
83 nushell0 = 4
84 nortshel0 = 5
85 nvar_shell = 0
86 nubeam0 = 4
87 nubeam = 0
88 nvbeam = 0
89 nvspri = 0
90 nvtruss = 0
91 nvsh_stra =0
92
93 IF (isigi==3.OR.isigi==4.OR.isigi==5) THEN
94
95
96
97 rewind(iin5)
98
99 300 READ(iin5,fmt='(A)',END=309,ERR=399)line
100 IF(line(1:8)/='/CONTROL')GOTO 300
101 READ(iin5,fmt='(A)',END=309,ERR=399)line
102 305 READ(iin5,fmt='(A)',END=309,ERR=399)line
103 IF(line(1:1)=='#')GOTO 305
104
105 IF (ioutp_fmt==2) THEN
106 IF(line(1:8)==' ')GOTO 305
107
108 ELSE
109 IF(line(1:10)==' ')GOTO 305
110 END IF
111
112 IF(line(1:1)=='/')GOTO 309
113 306 READ(iin5,fmt='(A)',END=309,ERR=399)line
114 IF(line(1:1)=='#')GOTO 306
115
116 IF (ioutp_fmt==2) THEN
117 IF(line(1:8)==' ')GOTO 306
118
119 ELSE
120 IF(line(1:10)==' ')GOTO 306
121 END IF
122
123 IF(line(1:1)=='/')GOTO 309
124 IF (ioutp_fmt==2) THEN
125 READ(line,'(8I8)')
126 . numsol,numquad,numshel,numtrus,numbeam,numspri,numsh3n,
127 . numsphy
128
129 ELSE
130 READ(line,'(8I10)')
131 . numsol,numquad,numshel,numtrus,numbeam,numspri,numsh3n,
132 . numsphy
133
134 END IF
135 309 CONTINUE
136
137 iufacyld = 0
138 iushell = 0
139 nushell = 0
140 nvshell1 = 0
141 nvshell2 = 0
142 iusolid = 0
143 nusolid = 0
144 nvsolid1 = 0
145 nvsolid2 = 0
146 nvsolid3 = 0
147 nvsolid4 = 0
148 nvsolid5 = 0
149 nvsolid6 = 0
150 rewind(iin4)
151 400 READ(iin4,fmt='(A)',END=449,ERR=449)line
152 IF(line(1:8)=='/ENDDATA')THEN
153 rewind(iin4)
154 GO TO 409
155 ENDIF
156 IF(line(1:28)/='/SHELL /SCALAR /USERS')GOTO 400
157 READ(iin4,fmt='(A)',END=449,ERR=449)line
158 iushell = 1
159
160 i = 0
161 j = 0
162 405 READ(iin4,fmt='(A)',END=449,ERR=449)line
163 IF(line(1:1)=='#')GOTO 405
164 IF(line(1:1)=='/')GOTO 410
165 j=j+1
166 i=i+1
167 IF(j>numshel+numsh3n) GOTO 410
168 IF(ioutp_fmt==2)THEN
169 READ(line,fmt='(4I8)')ihbe,nip,npg,nuvar
170 ELSE
171 READ(line,fmt='(4I10)')ihbe,nip,npg,nuvar
172 ENDIF
173 nushell =
max(nushell,
max(1,npg)*
max(1,nip)*nuvar + nushell0)
174 nd = mod(nuvar,6)
175 nu = (nuvar - nd)/6
176 IF(nd/=0) nu = nu +1
177 IF(nuvar < 6) nu = 1
178
179 DO j1 = 1,nu *
max(1,nip)*
max(1,npg)
180 406 READ(iin4,fmt='(A)',END=449,ERR=449)line
181 IF(line(1:1)=='#')GOTO 406
182 IF(line(1:1)=='/')GOTO 410
183 ENDDO
184 GO TO 405
185 449 CONTINUE
186
187
188
189
190
191 409 READ(iin4,fmt='(A)',END=443,ERR=399)line
192 IF(line(1:8)=='/ENDDATA')THEN
193 rewind(iin4)
194 GOTO 425
195 ENDIF
196 410 IF(line(1:33)/='/SHELL /TENSOR /STRESS_FUL')GOTO 409
197
198 READ(iin4,fmt='(A)',END=443,ERR=499)line
199
200 i = 0
201 j = 0
202
203 411 READ(iin4,fmt='(A)',END=443,ERR=499)line
204 IF(line(1:1)=='#')GOTO 411
205 IF(line(1:1)=='/')GOTO 443
206 j=j+1
207 i=i+1
208
209 IF(j>numshel+numsh3n) GOTO 420
210 IF (ioutp_fmt==2) THEN
211 READ(line,'(2I8)')nip,npg
212 ELSE
213 READ(line,fmt=fmt_2i) nip,npg
214 ENDIF
215
216 READ(iin4,fmt='(A)',END=443,ERR=499)line
217 IF(nip==0)THEN
218 nvar_shell =
max(nvar_shell,
max(1,npg)*9)
219 ELSE
220 nvar_shell =
max(nvar_shell,
max(1,nip)*
max(1,npg)*6)
221 ENDIF
222
223 nvshell = nvar_shell
224 IF (npg==0.OR.npg==1)THEN
225 IF(nip==0)THEN
226 READ(iin4,fmt='(A)',END=443,ERR=399)line
227 READ(iin4,fmt='(A)',END=443,ERR=399)line
228 ELSE
229 DO k=1,nip
230 READ(iin4,fmt='(A)',END=443,ERR=399)line
231 ENDDO
232 ENDIF
233 ELSEIF(npg>1) THEN
234 IF(nip==0)THEN
235 DO n=1,npg
236 READ(iin4,fmt='(A)',END=443,ERR=399)line
237 READ(iin4,fmt='(A)',END=443,ERR=399)line
238 ENDDO
239 ELSE
240
241 DO k=1,nip
242 DO n=1,npg
243 READ(iin4,fmt='(A)',END=443,ERR=399)line
244
245 ENDDO
246 ENDDO
247 ENDIF
248 ELSE
249 ENDIF
250 GO TO 411
251 443 CONTINUE
252 rewind(iin4)
253
254
255
256 425 READ(iin4,fmt='(A)',END=429,ERR=399)line
257 IF(line(1:8) == '/ENDDATA')THEN
258 rewind(iin4)
259 GOTO 429
260 ENDIF
261 420 IF(line(1:30) /= '/SOLID /TENSOR /STR_FUL')GOTO 425
262 READ(iin4,fmt='(A)',END=429,ERR=399)line
263
264 i = 0
265 j = 0
266 426 READ(iin4,fmt='(A)',END=429,ERR=399)line
267 IF(line(1:1) == '#')GOTO 426
268 IF(line(1:1) == '/')GOTO 429
269 i=i+1
270 IF(i > numsol+numquad) GOTO 450
271
272 IF (ioutp_fmt == 2) THEN
273 READ(line,'(3I8)')nip,nums,jjhbe
274 ELSE
275 READ(line,'(3I10)')nip,nums, jjhbe
276 ENDIF
277 nvsolid1 =
max(nvsolid1,nip*9 + 4)
278 IF((nums == 8.OR.nums == 4).AND.jjhbe == 0)THEN
279
280 READ(iin4,fmt='(A)',END=429,ERR=399)line
281 IF(nip == 1)THEN
282 READ(iin4,fmt='(A)',END=429,ERR=399)line
283 READ(iin4,fmt='(A)',END=429,ERR=399)line
284 ELSE
285 DO k=1,nip
286 READ(iin4,fmt='(A)',END=429,ERR=399)line
287 READ(iin4,fmt='(A)',END=429,ERR=399)line
288 ENDDO
289 ENDIF
290 ELSEIF(nums == 10 .OR. nums == 16 .OR. nums == 20.OR.
291 . (nums == 8.AND.jjhbe == 14) .or .(nums == 8.AND.jjhbe == 1
292 . ((nums == 6.OR.nums == 8) .AND. (jjhbe==15 .or. jjhbe==12)))THEN
293
294 DO k=1,nip
295 READ(iin4,fmt='(A)',END=429,ERR=399)line
296 READ(iin4,fmt='(A)',END=429,ERR=399)line
297 ENDDO
298 ENDIF
299 GO TO 426
300
301 429 CONTINUE
302 rewind(iin4)
303
304
305
306 230 READ(iin4,fmt='(A)',END=235,ERR=399)line
307 IF(line(1:8)=='/ENDDATA')THEN
308 rewind(iin4)
309 GOTO 430
310 ENDIF
311 232 IF(line(1:33)/='/SOLID /TENSOR /STRESS')GOTO 230
312 READ(iin4,fmt='(A)',END=235,ERR=399)line
313
314 nvsolid1 =
max(nvsolid1, 6)
315 235 CONTINUE
316 rewind(iin4)
317
318
319 430 READ(iin4,fmt='(A)',END=435,ERR=399)line
320 IF(line(1:8)=='/ENDDATA')THEN
321 rewind(iin4)
322 GOTO 444
323 ENDIF
324 432 IF(line(1:33)/='/SOLID /TENSOR /STRAIN_FUL')GOTO 430
325 READ(iin4,fmt='(A)',END=435,ERR=399)line
326
327 i = 0
328 j = 0
329 434 READ(iin4,fmt='(A)',END=435,ERR=399)line
330 IF(line(1:1)=='#')GOTO 434
331 IF(line(1:1)=='/')GOTO 435
332 j=j+1
333 i=i+1
334 IF(i>numsol+numquad) GOTO 435
335 IF (ioutp_fmt==2) THEN
336 READ(line,'(3I8)')nip,nums,nels
337 ELSE
338 READ(line,'(3I10)')nip,nums, nels
339 ENDIF
340 nvsolid2 =
max(nvsolid2,
max(1,nip)*6)
341 DO kk = 1, nels
342 DO k=1,nip
343 READ(iin4,fmt='(A)',END=435,ERR=399)line
344 ENDDO
345 ENDDO
346 GOTO 434
347 435 CONTINUE
348 rewind(iin4)
349
350 444 READ(iin4,fmt='(A)',END=499,ERR=499)line
351 IF(line(1:8)=='/ENDDATA')THEN
352 rewind(iin4)
353 GOTO 498
354 ENDIF
355 450 IF(line(1:28)/='/SOLID /SCALAR /USERS')GOTO 444
356 READ(iin4,fmt='(A)',END=498,ERR=399)line
357 iusolid = 1
358 i = 0
359 455 READ(iin4,fmt='(A)',END=498,ERR=399)line
360 IF(line(1:1)=='#')GOTO 455
361 IF(line(1:1)=='/')GOTO 498
362 IF(ioutp_fmt==2)THEN
363 READ(line,'(4i8)')NUMS,NIP,NUVAR,JJHBE
364 ELSE
365 READ(LINE,'(4i10)')NUMS,NIP,NUVAR,JJHBE
366 ENDIF
367 NUSOLID = MAX(NUSOLID,NIP*NUVAR)
368 I=I+1
369 ND = MOD(NUVAR,6)
370 NU = (NUVAR - ND)/6
371 IF(ND/=0) NU = NU + 1
372 IF(NUVAR < 6) NU = MAX(1,NIP)
373 IF(I>NUMSOL+NUMQUAD) GOTO 498
374 IF (NUVAR==0) GOTO 455
375 DO J1 = 1,NU * MAX(1,NIP)
376 459 READ(IIN4,FMT='(a)',END=498,ERR=399)LINE
377 IF(LINE(1:1)=='#')GOTO 459
378 IF(line(1:1)=='/')GOTO 498
379 ENDDO
380
381 GO TO 455
382 498 CONTINUE
383 499 CONTINUE
384 nvshell = nvshell + nvshell0
385 rewind(iin4)
386 ENDIF
387
388 RETURN
389 399 CONTINUE
390 CALL ancmsg(msgid=557, msgtype=msgerror, anmode=aninfo_blind_1)
392 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)