36
37
38
41 USE sensor_mod
42
43
44
45#include "implicit_f.inc"
46
47
48
49#include "com04_c.inc"
50#include "param_c.inc"
51#include "scr06_c.inc"
52#include "scr14_c.inc"
53#include "scr25_c.inc"
54
55
56
57 INTEGER ISPMD, MCHECK, IGEO(NPROPGI,*)
59 . geo(npropg,*)
60 TYPE (SENSORS_) ,INTENT(INOUT) :: SENSORS
61
62
63
64 INTEGER I, J, , IOK, IANIS0, NIPMAX, ,
65 . IUS,IPT,IGTYP,NPT,,NPTR,NPTT,NPTT_PLY,CPtPLY,NMAX,IGTYP15,
66 . IDX,NIPMAX_BEAM, NIPMAX_SOL,ICSTR,N14R,N14S,N14T
67
68 nipmax = 0
69 nipmax_beam = 0
70 nipmax_sol = 0
71 npts = 1
72 nptt = 0
73 nptr= 1
74 nptt_ply = 0
75 IF (mcheck == 0) THEN
76 ALLOCATE (sensors%ANIM(sensors%NANIM))
77 sensors%ANIM(:) = 0
78 END IF
79
80 IF (ispmd == 0 .AND. mcheck == 0) THEN
81
82
83
84 ianis0 = sensors%ANIM_ID
85 IF (ianis0 /= 0) THEN
86 DO i=1,sensors%NSENSOR
87 IF (ianis0 == sensors%SENSOR_TAB(i)%SENS_ID) sensors%ANIM_ID=i
88 ENDDO
89 ENDIF
90
91 DO k=1,sensors%NANIM
92 iok = 0
93 ianis0 = sensors%ANIM_TMP(k)
94 IF (ianis0 > 0) THEN
95 DO i=1,sensors%NSENSOR
96 IF (ianis0 == sensors%SENSOR_TAB(i)%SENS_ID) THEN
97 sensors%ANIM(k)=i
98 iok = 1
99 EXIT
100 ENDIF
101 ENDDO
102 ENDIF
103 IF (iok == 0) THEN
104 CALL ancmsg(msgid=228,msgtype=msgerror,anmode
106 ENDIF
107 ENDDO
108 END IF
109
110 IF (mcheck == 0 ) THEN
111 IF( istresall == 1 .OR. istraiall ==
112 . iepsdoall == 1 .OR. iepspall == 1 .OR.
113 . iphiall == 1 .OR.
114 . idamaall == 1 .OR.
115 . iepspfull > 0 .OR.
116 . istresfull > 0 .OR.
117 . iplyall > 0 .OR.
118 . istresall_ply>0 .OR.
119 . istrainall_ply>0 .OR.
120 . iepsdotall_ply>0 .OR.
121 . iepspall_ply>0 .OR.
122 . idamaall_ply>0 .OR.
123 . iphiall_ply > 0 .OR.
124 . ibrick_stressall > 0 .OR.
125 . ibrick_strainall > 0 .OR.
126 . ibrick_epspall > 0 .OR.
127 . idamafull > 0 .OR.
128 . istrainfull > 0 .OR.
129 . iepsdofull > 0 .OR.
130 . iwplaall > 0 .OR.
131 . iwplafull > 0 .OR.
132 . ibeam_epspall > 0 .OR.
133 . iepspnlall == 1 .OR.
134 . iepsdnlall == 1 .OR.
135 . itsaiwuall > 0 .OR.
136 . itsaiwufull > 0) THEN
137 nipmax = 0
138 DO i=1,numgeo
139 nipmax =
max(nipmax,nint(geo(6,i)))
140 ENDDO
141 IF(nipmax ==0) nipmax=1
142
143 nipmax_beam = 0
144 DO i=1,numgeo
145 igtyp = igeo(11,i)
146 IF (igtyp == 18) THEN
147 nipmax_beam =
max(nipmax_beam,igeo(3,i))
148 ENDIF
149 ENDDO
150 IF(nipmax_beam == 0) nipmax_beam=1
151
152 IF (istresall == 1)THEN
153 IF (anim_ct(3) == 0) THEN
154 anim_ct(3) = 1
155 nct_ani = nct_ani + 1
156 ENDIF
157 IF (anim_ct(4) == 0) THEN
158 anim_ct(4) = 1
159 nct_ani = nct_ani + 1
160 ENDIF
161
162 DO i=1,nipmax
163 anim_ct(100+i) = 1
164 nct_ani = nct_ani + 1
165 ENDDO
166
167 ENDIF
168 IF (istraiall == 1)THEN
169 IF (anim_ct(7) == 0) THEN
170 anim_ct(7) = 1
171 nct_ani = nct_ani + 1
172 ENDIF
173 IF (anim_ct(8) == 0) THEN
174 anim_ct(8) = 1
175 nct_ani = nct_ani + 1
176 ENDIF
177 IF(nipmax<=100)THEN
178 DO i=1,nipmax
179 anim_ct(200+i) = 1
180 nct_ani = nct_ani + 1
181 ENDDO
182 ENDIF
183 ENDIF
184 IF (iepsdoall == 1)THEN
185 IF (anim_ct(93) == 0) THEN
186 anim_ct(93) = 1
187 nct_ani = nct_ani + 1
188 ENDIF
189 IF (anim_ct(94) == 0) THEN
190 anim_ct(94) = 1
191 nct_ani = nct_ani + 1
192 ENDIF
193 IF(nipmax<=100)THEN
194 DO i=1,nipmax
195 anim_ct(300+i) = 1
196 nct_ani = nct_ani + 1
197 ENDDO
198 ENDIF
199 ENDIF
200 IF (iepspall == 1)THEN
201 IF (anim_ce(2040) == 0) THEN
202 anim_ce(2040) = 1
203 nce_ani = nce_ani + 1
204 ENDIF
205 IF (anim_ce(2041) == 0) THEN
206 anim_ce(2041) = 1
207 nce_ani = nce_ani + 1
208 ENDIF
209 IF(nipmax<=100)THEN
210 DO i=1,nipmax
211 IF (anim_ce(2041+i) == 0) THEN
212 anim_ce(2041+i) = 1
213 nce_ani = nce_ani + 1
214 ENDIF
215 ENDDO
216 ENDIF
217 ENDIF
218
219 IF (iepspfull == 1) THEN
220
221 IF (nipmax <= 100) THEN
222 DO i=1,nipmax
223 DO j=1,10
224 ius = 10*i+j
225 IF (anim_ce(10877 + ius) == 0 .AND. anim_epsp(i) > 0) THEN
226 anim_ce(10877 + ius) = 1
227 nce_ani = nce_ani + 1
228 ENDIF
229 ENDDO
230 ENDDO
231 ENDIF
232 ELSEIF (iepspfull == 2) THEN
233
234 IF (nipmax <= 100) THEN
235 DO i=1,nipmax
236 DO j=1,10
237 ius = 10*i+j
238 IF (anim_ce(10877 + ius) == 0) THEN
239 anim_ce(10877 + ius) = 1
240 nce_ani
241 ENDIF
242 ENDDO
243 ENDDO
244 ENDIF
245 ENDIF
246
247 IF (istresfull == 1) THEN
248
249 IF (nipmax <= 100) THEN
250 DO i=1,nipmax
251 DO j=1,10
252 ius = 10*i+j
253 IF (anim_ct(600 + ius) == 0 .AND. anim_stress(i) > 0) THEN
254 anim_ct(600 + ius) = 1
255 nct_ani = nct_ani + 1
256 ENDIF
257 ENDDO
258 ENDDO
259 ENDIF
260 ELSEIF (istresfull == 2) THEN
261
262 IF (nipmax <= 100) THEN
263 DO i=1,nipmax
264 DO j=1,10
265 ius = 10*i+j
266 IF (anim_ct(600 + ius) == 0) THEN
267 anim_ct(600 + ius) = 1
268 nct_ani = nct_ani + 1
269 ENDIF
270 ENDDO
271 ENDDO
272 ENDIF
273 ENDIF
274
275 IF (iphiall == 1)THEN
276 IF(nipmax<=100)THEN
277 DO i=1,nipmax
278 anim_ce(10139+i) = 1
279 nce_ani = nce_ani + 1
280 ENDDO
281 ENDIF
282 ENDIF
283 ENDIF
284
285 IF( iorthdall == 1 )THEN
286 nipmax_sol = 1
287 DO i=1,numgeo
288 nipmax_sol =
max(nipmax_sol,igeo(30,i))
289 ENDDO
290 DO i=1,nipmax_sol
291 anim_se(286+3*(i-1)+1) = 1
292 anim_se(286+3*(i-1)+2) = 1
293 anim_se(286+3*(i-1)+3) = 1
294 nse_ani = nse_ani + 3
295 ENDDO
296 ENDIF
297
298 IF (idamaall == 1)THEN
299 IF(nipmax<=100)THEN
300 DO i=1,nipmax
301 anim_ce(10259+i) = 1
302 nce_ani = nce_ani + 1
303 ENDDO
304 ENDIF
305 ENDIF
306
307 IF (inxtfall == 1)THEN
308 IF(nipmax<=100)THEN
309 DO i=1,nipmax
310 anim_ce(10362+i) = 1
311 nce_ani = nce_ani + 1
312 ENDDO
313 ENDIF
314 ENDIF
315
316 IF (sigh1all == 1)THEN
317 IF(nipmax<=100)THEN
318 DO i=1,nipmax
319 anim_ce(10465+i) = 1
320 nce_ani = nce_ani + 1
321 ENDDO
322 ENDIF
323 ENDIF
324
325 IF (sigh2all == 1)THEN
326 IF(nipmax<=100)THEN
327 DO i=1,nipmax
328 anim_ce(10568+i) = 1
329 nce_ani = nce_ani + 1
330 ENDDO
331 ENDIF
332 ENDIF
333
334 IF( iplyall == 1 )THEN
335 cptply = 0
336 DO i=1,numgeo
337 IF(igeo(11,i) == 19) THEN
338 cptply = cptply + 1
339 ply_anim( 3 * (cptply - 1) + 1) = igeo(1,i)
340 ply_anim( 3 * (cptply - 1) + 2) = 1
341 IF(cptply < mx_ply_anim) THEN
342 anim_ce(11925 + cptply) = 1
343 nce_ani = nce_ani + 1
344 ELSE
345 CALL ancmsg(msgid=268,msgtype=msgwarning
346 ENDIF
347 ENDIF
348 ENDDO
349
350 DO i=1,numply
351 cptply = cptply + 1
352 ply_anim( 3 * (cptply - 1) + 1) =
ply_info(1,i)
353 ply_anim( 3 * (cptply - 1) + 2) = 1
354 IF(cptply < mx_ply_anim) THEN
355 anim_ce(11925 + cptply) = 1
356 nce_ani = nce_ani + 1
357 ELSE
358 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
359 ENDIF
360 ENDDO
361 ENDIF
362
363 IF( istresall_ply == 1 )THEN
364 cptply = 0
365 DO i=1,numgeo
366 IF(igeo(11,i) == 19) THEN
367 DO ipt=1,igeo(44,i)
368 cptply = cptply + 1
369 ply_anim_stress( 3 * (cptply - 1) + 1) = igeo(1,i)
370 ply_anim_stress( 3 * (cptply - 1) + 2) = 2
371 ply_anim_stress( 3 * (cptply - 1) + 3) = ipt
372 IF( cptply < mx_ply_anim) THEN
373 anim_ct(1610 + cptply) = 1
374 nct_ani = nct_ani + 1
375 ELSE
376 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
377 ENDIF
378 ENDDO
379 ENDIF
380 ENDDO
381
382 DO i=1,numply
384 cptply = cptply + 1
385 ply_anim_stress( 3 * (cptply - 1) + 1) =
ply_info(1,i)
386 ply_anim_stress( 3 * (cptply - 1) + 2) = 2
387 ply_anim_stress( 3 * (cptply - 1) + 3) = ipt
388 IF(cptply < mx_ply_anim) THEN
389 anim_ct(1610 + cptply) = 1
390 nct_ani = nct_ani + 1
391 ELSE
392 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
393 ENDIF
394 ENDDO
395 ENDDO
396 ENDIF
397
398 IF( istrainall_ply == 1 )THEN
399 cptply = 0
400 DO i=1,numgeo
401 IF(igeo(11,i) == 19) THEN
402 DO ipt=1,igeo(44,i)
403 cptply = cptply + 1
404 ply_anim_strain( 3 * (cptply - 1) + 1) = igeo(1,i)
405 ply_anim_strain( 3 * (cptply - 1) + 2) = 3
406 ply_anim_strain( 3 * (cptply - 1) + 3) = ipt
407 IF(cptply < mx_ply_anim) THEN
408 anim_ct( (1610+mx_ply_anim) + cptply) = 1
409 nct_ani = nct_ani + 1
410 ELSE
411 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
412 ENDIF
413 ENDDO
414 ENDIF
415 ENDDO
416
417 DO i=1,numply
419 cptply = cptply + 1
420 ply_anim_strain( 3 * (cptply - 1) + 1) =
ply_info(1,i)
421 ply_anim_strain( 3 * (cptply - 1) + 2) = 3
422 ply_anim_strain( 3 * (cptply - 1) + 3) = ipt
423 IF(cptply < mx_ply_anim) THEN
424 anim_ct( (1610 + mx_ply_anim) + cptply) = 1
425 nct_ani = nct_ani + 1
426 ELSE
427 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
428 ENDIF
429 ENDDO
430 ENDDO
431 ENDIF
432
433 IF( iepsdotall_ply == 1 )THEN
434 cptply = 0
435 DO i=1,numgeo
436 IF(igeo(11,i) == 19) THEN
437 DO ipt=1,igeo(44,i)
438 cptply = cptply + 1
439 ply_anim_epsdot( 3 * (cptply - 1) + 1) = igeo(
440 ply_anim_epsdot( 3 * (cptply - 1) + 2) = 6
441 ply_anim_epsdot( 3 * (cptply - 1) + 3) = ipt
442 IF(cptply < mx_ply_anim) THEN
443 anim_ct( (1610+ 2*mx_ply_anim) + cptply) =
444 nct_ani = nct_ani + 1
445 ELSE
446 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
447 ENDIF
448 ENDDO
449 ENDIF
450 ENDDO
451
452 DO i=1,numply
454 cptply = cptply + 1
455 ply_anim_epsdot( 3 * (cptply
456 ply_anim_epsdot( 3 * (cptply - 1) + 2) = 6
457 ply_anim_epsdot( 3 * (cptply - 1) + 3) = ipt
458 IF(cptply < mx_ply_anim) THEN
459 anim_ct( (1610 + 2*mx_ply_anim) + cptply) = 1
460 nct_ani = nct_ani + 1
461 ELSE
462 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
463 ENDIF
464 ENDDO
465 ENDDO
466 ENDIF
467
468 IF (istrainfull == 1) THEN
469 idx = 1810 + 3*mx_ply_anim
470
471 IF (nipmax <= 100) THEN
472 DO i=1,nipmax
473 DO j=1,10
474 ius = 10*i+j
475 IF (anim_ct(idx + ius) == 0 .AND. anim_strain(i) > 0) THEN
476 anim_ct(idx + ius) = 1
477 nct_ani = nct_ani + 1
478 ENDIF
479 ENDDO
480 ENDDO
481 ENDIF
482 ELSEIF (istrainfull == 2) THEN
483 idx = 1810 + 3*mx_ply_anim
484
485 IF (nipmax <= 100) THEN
486 DO i=1,nipmax
487 DO j=1,10
488 ius = 10*i+j
489 IF (anim_ct(idx + ius) == 0) THEN
490 anim_ct(idx + ius) = 1
491 nct_ani = nct_ani + 1
492 ENDIF
493 ENDDO
494 ENDDO
495 ENDIF
496 ENDIF
497
498 IF (iepsdofull == 1) THEN
499 idx = 2820 + 3*mx_ply_anim
500
501 IF (nipmax <= 100) THEN
502 DO i=1,nipmax
503 DO j=1,10
504 ius = 10*i+j
505 IF (anim_ct(idx + ius) == 0 .AND. anim_epsdot(i) > 0) THEN
506 anim_ct(idx + ius) = 1
507 nct_ani = nct_ani + 1
508 ENDIF
509 ENDDO
510 ENDDO
511 ENDIF
512 ELSEIF (iepsdofull == 2) THEN
513 idx = 2820 + 3*mx_ply_anim
514
515 IF (nipmax <= 100) THEN
516 DO i=1,nipmax
517 DO j=1,10
518 ius = 10*i+j
519 IF (anim_ct(idx + ius) == 0) THEN
520 anim_ct(idx + ius) = 1
521 nct_ani = nct_ani + 1
522 ENDIF
523 ENDDO
524 ENDDO
525 ENDIF
526 ENDIF
527
528
529 IF( iphiall_ply == 1 )THEN
530 cptply = 0
531 DO i=1,numgeo
532 IF(igeo(11,i) == 19) THEN
533 DO ipt=1,igeo(44,i)
534 cptply = cptply + 1
535 ply_anim_phi( 3 * (cptply - 1) + 1) = igeo(1,i)
536 ply_anim_phi( 3 * (cptply - 1) + 2) = 4
537 ply_anim_phi( 3 * (cptply - 1) + 3) = ipt
538 IF( cptply < mx_ply_anim) THEN
539 anim_ce( (11925 + mx_ply_anim) + cptply) = 1
540 nce_ani = nce_ani + 1
541 ELSE
542 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
543 ENDIF
544 ENDDO
545 ENDIF
546 ENDDO
547
548 DO i=1,numply
550 cptply = cptply + 1
551 ply_anim_phi( 3 * (cptply - 1) + 1) =
ply_info(1,i)
552 ply_anim_phi( 3 * (cptply - 1) + 2) = 4
553 ply_anim_phi( 3 * (cptply - 1) + 3) = ipt
554 IF( cptply < 11925) THEN
555 anim_ce( (11925 + mx_ply_anim) + cptply) = 1
556 nce_ani = nce_ani + 1
557 ELSE
558 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
559 ENDIF
560 ENDDO
561 ENDDO
562 ENDIF
563
564 IF( iepspall_ply == 1 )THEN
565 cptply = 0
566 DO i=1,numgeo
567 IF(igeo(11,i) == 19) THEN
568 DO ipt=1,igeo(44,i)
569 cptply = cptply + 1
570 ply_anim_epsp( 3 * (cptply - 1) + 1) = igeo(1,i)
571 ply_anim_epsp( 3 * (cptply - 1) + 2) = 5
572 ply_anim_epsp( 3 * (cptply - 1) + 3) = ipt
573 IF( cptply < mx_ply_anim) THEN
574 anim_ce( (11925 + ( 2*mx_ply_anim ) ) + cptply) = 1
575 nce_ani = nce_ani + 1
576 ELSE
577 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
578 ENDIF
579 ENDDO
580 ENDIF
581 ENDDO
582
583 DO i=1,numply
585 cptply = cptply + 1
586 ply_anim_epsp( 3 * (cptply - 1) + 1) =
ply_info(1,i)
587 ply_anim_epsp( 3 * (cptply - 1) + 2) = 5
588 ply_anim_epsp( 3 * (cptply - 1) + 3) = ipt
589 IF( cptply < mx_ply_anim) THEN
590 anim_ce( (11925 + (2*mx_ply_anim)) + cptply) = 1
591 nce_ani = nce_ani + 1
592 ELSE
593 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
594 ENDIF
595 ENDDO
596 ENDDO
597 ENDIF
598
599 IF( idamaall_ply == 1 )THEN
600 cptply = 0
601 DO i=1,numgeo
602 IF(igeo(11,i) == 19) THEN
603 DO ipt=1,igeo(44,i)
604 cptply = cptply + 1
605 ply_anim_dama( 3 * (cptply - 1) + 1) = igeo(1,i)
606 ply_anim_dama( 3 * (cptply - 1) + 2) = 5
607 ply_anim_dama( 3 * (cptply - 1) + 3) = ipt
608 IF( cptply < mx_ply_anim) THEN
609 anim_ce( (11925 + ( 3*mx_ply_anim ) ) + cptply) = 1
610 nce_ani = nce_ani + 1
611 ELSE
612 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
613 ENDIF
614 ENDDO
615 ENDIF
616 ENDDO
617
618 DO i=1,numply
620 cptply = cptply + 1
621 ply_anim_dama( 3 * (cptply - 1) + 1) =
ply_info(1,i)
622 ply_anim_dama( 3 * (cptply - 1) + 2) = 7
623 ply_anim_dama( 3 * (cptply - 1) + 3) = ipt
624 IF( cptply < mx_ply_anim) THEN
625 anim_ce( (11925 + (3*mx_ply_anim)) + cptply) = 1
626 nce_ani = nce_ani + 1
627 ELSE
628 CALL ancmsg(msgid=268,msgtype=msgwarning,i1=mx_ply_anim,anmode=aninfo)
629 ENDIF
630 ENDDO
631 ENDDO
632 ENDIF
633
634 IF (idamafull == 1) THEN
635 idx = 11931 + 4*mx_ply_anim
636
637 IF (nipmax <= 100) THEN
638 DO i=1,nipmax
639 DO j=1,10
640 ius = 10*i+j
641 IF (anim_ce(idx + 300 + ius) == 0 .AND. anim_dama(i) > 0) THEN
642 anim_ce(idx + 300 + ius) = 1
643 nce_ani = nce_ani + 1
644 ENDIF
645 ENDDO
646 ENDDO
647 ENDIF
648 ELSEIF (idamafull == 2) THEN
649 idx = 11931 + 4*mx_ply_anim
650
651 IF (nipmax <= 100) THEN
652 DO i=1,nipmax
653 DO j=1,10
654 ius = 10*i+j
655 IF (anim_ce(idx + 300 + ius) == 0) THEN
656 anim_ce(idx + 300 + ius) = 1
657 nce_ani = nce_ani + 1
658 ENDIF
659 ENDDO
660 ENDDO
661 ENDIF
662 ENDIF
663
664 IF (ibrick_stressall == 1 .OR. ibrick_strainall == 1 . or.
665 . ibrick_epspall == 1) THEN
666 nptr= 1
667 npts= 1
668 nptt= 1
669 igtyp15 = 0
670 DO i=1,numgeo
671 npt = igeo(44,i)
672 ihbe = igeo(10,i)
673 igtyp = igeo(11,i)
674 icstr= igeo(14,i)
675 IF(igtyp == 6 .OR. igtyp == 14 ) THEN
676 SELECT CASE (ihbe)
677 CASE(14,16,222)
678 IF (npt == 0) npt = 222
679 nptr=
max(nptr,npt/100)
680 npts=
max(npts,mod(npt/10,10))
681 nptt=
max(nptt,mod(npt,10))
682 CASE(1,2,101,102,24)
686 CASE(12,112,13,17,18)
690 END SELECT
691 ELSE IF(igtyp == 20 .OR. igtyp == 21 .OR. igtyp == 22) THEN
692 SELECT CASE (ihbe)
693
694 CASE(14)
695 n14r=npt/100
696 n14s=mod(npt/10,10)
697 n14t=mod(npt,10)
698 SELECT CASE (icstr)
699 CASE(100)
700 IF (n14t==0) n14t= igeo(15,i)
701 CASE(10)
702 IF (n14s==0) n14s= igeo(15,i)
703 CASE(1)
704 IF (n14r==0) n14r= igeo(15,i)
705 END SELECT
706
707
708
709 n14s=
max(n14r,n14s,n14t)
711 npts=
max(npts,igeo(15,i),n14s)
713 CASE(15)
714
715
716
718 CASE(16)
719 IF (npt == 0) npt = 222
720 nptr=
max(nptr,npt/100)
721 npts=
max(npts,mod(npt/10,10))
722 nptt=
max(nptt,mod(npt,10))
723 END SELECT
724 ENDIF
725 ENDDO
726
727 IF (numels10>0) THEN
731 END IF
732 ENDIF
733
734 nptt_ply = 0
735 DO i=1,numgeo
736 igtyp = igeo(11,i)
737 IF(igtyp == 19) nptt_ply =
max(nptt_ply, igeo(44,i))
738 ENDDO
739 DO i=1,numply
741 ENDDO
742
743 IF (iwplaall == 1)THEN
744 idx = 13247 + 4*mx_ply_anim
745 nmax =
min(100,nipmax)
746 DO i=1,nmax
747 IF (anim_ce(idx + i) == 0) THEN
748 anim_ce(idx + i) = 1
749 nce_ani = nce_ani + 1
750 ENDIF
751 ENDDO
752 ENDIF
753 IF (iwplafull == 1) THEN
754
755 idx = 13547 + 4*mx_ply_anim
756 nmax =
min(100,nipmax)
757 DO i=1,nmax
758 DO j=1,nptt_ply
759 ius = 10*(i-1) + j
760 IF (anim_ce(idx + ius) == 0 .AND. anim_wpla(i) > 0) THEN
761 anim_ce(idx + ius) = 1
762 nce_ani = nce_ani + 1
763 ENDIF
764 ENDDO
765 ENDDO
766 ELSEIF (iwplafull == 2) THEN
767
768 idx = 13547 + 4*mx_ply_anim
769 nmax =
min(100,nipmax)
770 DO i=1,nmax
771 DO j=1,nptt_ply
772 ius = 10*(i-1) + j
773 IF (anim_ce(idx + ius) == 0) THEN
774 anim_ce(idx + ius) = 1
775 nce_ani = nce_ani + 1
776 ENDIF
777 ENDDO
778 ENDDO
779 ENDIF
780
781 IF( ibrick_stressall == 1 )THEN
782 IF( npts < 10 )THEN
783
784 DO i=1,nptr
785 DO j=1,npts
786 DO k=1,nptt
787 anim_st(10+ (i*100) + (j*10) + k)=1
788 nst_ani = nst_ani + 1
789 ENDDO
790 ENDDO
791 ENDDO
792 ELSE
793
794 DO i=1,nptr
795 DO j=1,npts
796 DO k=1,nptt
797 anim_st(2010+ k + (j*10) + (i*2010) ) = 1
798 nst_ani = nst_ani + 1
799 ENDDO
800 ENDDO
801 ENDDO
802 ENDIF
803
804 IF( igtyp15 == 1 )THEN
805 DO j=1,npts
806 anim_st(2010+ (j*10) ) = 1
807 nst_ani = nst_ani + 1
808 ENDDO
809 ENDIF
810 ENDIF
811
812 IF( ibrick_strainall == 1 )THEN
813 IF( npts < 10 )THEN
814
815 DO i=1,nptr
816 DO j=1,npts
817 DO k=1,nptt
818 anim_st(1010+ (i*100) + (j*10) + k)=1
819 nst_ani = nst_ani + 1
820 ENDDO
821 ENDDO
822 ENDDO
823 ELSE
824
825 DO i=1,nptr
826 DO j=1,npts
827 DO k=1,nptt
828 anim_st(22110+ k + (j*10) + (i*2010) ) = 1
829 nst_ani = nst_ani + 1
830 ENDDO
831 ENDDO
832 ENDDO
833 ENDIF
834
835 IF( igtyp15 == 1 )THEN
836 DO j=1,npts
837 anim_st(22110+ (j*10) ) = 1
838 nst_ani = nst_ani + 1
839 ENDDO
840 ENDIF
841 ENDIF
842
843 IF( ibrick_epspall == 1) THEN
844 IF (npts < 10) THEN
845 DO i=1,nptr
846 DO j=1,npts
847 DO k=1,nptt
848 anim_st(42210 + (i*100) + (j*10) + k) = 1
849 nst_ani = nst_ani + 1
850 ENDDO
851 ENDDO
852 ENDDO
853 ELSE
854 DO i=1,nptr
855 DO j=1,npts
856 DO k=1,nptt
857 anim_st(43210 + k + (j*10) + (i*2010)) = 1
858 nst_ani = nst_ani + 1
859 ENDDO
860 ENDDO
861 ENDDO
862 ENDIF
863
864 IF (igtyp15 == 1) THEN
865 DO j=1,npts
866 anim_st(43210 + (j*10)) = 1
867 nst_ani = nst_ani + 1
868 ENDDO
869 ENDIF
870 ENDIF
871
872 IF ( ibeam_epspall > 0 ) THEN
873 IF (nipmax_beam <= 100) THEN
874 DO i=1,nipmax_beam
875 anim_fe(22+i) = 1
876 nfe_ani = nfe_ani + 1
877 ENDDO
878 ENDIF
879 ENDIF
880
881
882 IF (iepspnlall == 1) THEN
883 idx = 4*mx_ply_anim + 14567
884 IF (anim_ce(idx) == 0) THEN
885 anim_ce(idx) = 1
886 nce_ani = nce_ani + 1
887 ENDIF
888 IF (anim_ce(idx+1) == 0) THEN
889 anim_ce(idx+1) = 1
890 nce_ani = nce_ani + 1
891 ENDIF
892 IF (anim_ce(idx+2) == 0) THEN
893 anim_ce(idx+2) = 1
894 nce_ani = nce_ani + 1
895 ENDIF
896 IF (nipmax <= 11)THEN
897 DO i=1,nipmax
898 IF (anim_ce(idx+2+i) == 0) THEN
899 anim_ce(idx+2+i) = 1
900 nce_ani = nce_ani + 1
901 ENDIF
902 ENDDO
903 ENDIF
904 ENDIF
905
906
907 IF (iepsdnlall == 1) THEN
908 idx = 4*mx_ply_anim + 14581
909 IF (anim_ce(idx) == 0) THEN
910 anim_ce(idx) = 1
911 nce_ani = nce_ani + 1
912 ENDIF
913 IF (anim_ce(idx+1) == 0) THEN
914 anim_ce(idx+1) = 1
915 nce_ani = nce_ani + 1
916 ENDIF
917 IF (anim_ce(idx+2) == 0) THEN
918 anim_ce(idx+2) = 1
919 nce_ani = nce_ani + 1
920 ENDIF
921 IF (nipmax <= 11)THEN
922 DO i=1,nipmax
923 IF (anim_ce(idx+2+i) == 0) THEN
924 anim_ce(idx+2+i) = 1
925 nce_ani = nce_ani + 1
926 ENDIF
927 ENDDO
928 ENDIF
929 ENDIF
930
931
932 IF (itsaiwuall == 1)THEN
933 idx = 14597 + 4*mx_ply_anim
934 nmax =
min(100,nipmax)
935 DO i=1,nmax
936 IF (anim_ce(idx + i) == 0) THEN
937 anim_ce(idx + i) = 1
938 nce_ani = nce_ani + 1
939 ENDIF
940 ENDDO
941 ELSEIF (itsaiwuall == 2) THEN
942
943 idx = 14897 + 4*mx_ply_anim
944 nmax =
min(100,nipmax)
945 DO i=1,nmax
946 DO j=1,nptt_ply
947 ius = 10*(i-1) + j
948 IF (anim_ce(idx + ius) == 0) THEN
949 anim_ce(idx + ius) = 1
950 nce_ani = nce_ani + 1
951 ENDIF
952 ENDDO
953 ENDDO
954 ENDIF
955
956 IF (itsaiwufull > 0) THEN
957
958 idx = 14897 + 4*mx_ply_anim
959 itsaiwufull =
min(100,itsaiwufull)
960 DO j=1,nptt_ply
961 ius = 10*(itsaiwufull-1) + j
962 IF (anim_ce(idx + ius) == 0) THEN
963 anim_ce(idx + ius) = 1
964 nce_ani = nce_ani + 1
965 ENDIF
966 ENDDO
967 ENDIF
968
969 ELSE
970 DO i = 1,mx_ani
971 nv_ani = nv_ani + anim_v(i)
972 nt_ani = nt_ani + anim_t(i)
973 ne_ani = ne_ani + anim_e(i)
974 nn_ani = nn_ani + anim_n(i)
975 nst_ani = nst_ani + anim_st(i)
976 nse_ani = nse_ani + anim_se(i)
977 nct_ani = nct_ani + anim_ct(i)
978 nce_ani = nce_ani + anim_ce(i)
979 nft_ani = nft_ani + anim_ft(i)
980 nfe_ani = nfe_ani + anim_fe(i)
981 ENDDO
982 IF(anim_v(12) == 1)nv_ani=nv_ani+1
983 IF(anim_v(4)==1.AND.animcont == 0) nv_ani=nv_ani-1
984 IF(anim_v(27)==1)nv_ani=nv_ani+1
985 ENDIF
986
987 RETURN
integer, dimension(:,:), allocatable ply_info
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)