98
99
100
103 USE elbufdef_mod
107 use element_mod , only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
108
109
110
111#include "implicit_f.inc"
112
113
114
115#include "com01_c.inc"
116#include "com04_c.inc"
117#include "com09_c.inc"
118#include "sphcom.inc"
119#include "param_c.inc"
120#include "units_c.inc"
121#include "scr14_c.inc"
122#include "scr15_c.inc"
123#include "scr16_c.inc"
124#include "scr12_c.inc"
125#include "scr17_c.inc"
126
127
128
129 INTEGER IXS(NIXS,*), IXQ(NIXQ,*), IXC(NIXC,*), IXT(NIXT,*),
130 . IXP(NIXP,*), IXR(NIXR,*), IXTG(NIXTG,*), SWAFT,
131 . IPARG(NPARG,*), ITAB(*), LPBY(*), NPBY(NNPBY,*),
132 . NSTRF(*), NPRW(*), IPART(LIPART1,*),
133 . IPARTS(*), IPARTQ(*), IPARTC(*), IPARTT(*),
134 . IPARTP(*), IPARTR(*), IPARTTG(*),SWA4,
135 . IPARTX(*), KXSP(NISP,*),IXSP(KVOISPH,*),
136 . IPARTSP(*), IXS10(6,*), IXS20(12,*), IXS16(8,*),
137 . IPM(NPROPMI,*), IGEO(NPROPGI,*), SMATER, SEL2FA,
138 . SNFACPTX, SIXEDGE, SOFFX1, SNUMX1, SXNORM, SINVERT,
139 . SFUNC1, SIAD, NMANIM, SMAS, FXANI(2,*),
140 . NLEVEL, ELSUB(NLEVEL,*),DSANIM, NELEM, CEP(*), CEPSP(*),
141 . SPH2SOL(*)
142 INTEGER NOM_OPT(LNOPT1,*),PTR_NOPT_RWALL,PTR_NOPT_SECT
143
145 . x(3,*), bufel(*), pm(npropm,*), geo(npropg,*),
146 . skew(lskew,*), rwbuf(nrwlp,*), rby(nrby,*), bufsf(*),
147 . spbuf(*), d(3,*), ms(*), mbufel(lbufel,*),
148 . mdepl(3*numnod,*)
149 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
150
151 TYPE (SUBSET_) , DIMENSION(NSUBS) :: SUBSET
152 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
153
154
155
156 INTEGER LTITL, ISPH3D, I161, I16A, I16B, I16C, I16D, I16E, I16F,
157 . I16G, I16H, I16I, FILEN, CTEXT(200), NSKEWA, NB1D, I,
158 . MATER(SMATER), NBPART, NBF, NBF_L, EL2FA(SEL2FA), NODCUT,
159 . NELCUT, NCUTS, NUMSPH_T, NESCT, NERWL, NNWL, NESBW2,
160 . NESRG, NNSRG, NSURG, NESMD, NNSMD, NSMAD, NESPH, NNSPH,
161 . NNSPHG, NUMELS_T, NUMELS16_T, NUMELT_T, NUMELR_T,
162 . NUMELP_T, MAGIC, IFLAG1D, BUFL, , SZ16,
163 . BUF, NESCT1, NERWL1, ISECT, IRWL, NESRG1, ISRG, NESMD1,
164 . J, IB, NDMA2, IFUNC, SZNNSPH, SHFTSPH, SHFT16, INSPH, NNN,
165 . NERBY, NB1D_T, IPRT, NERBT(NRBODY), NERBY1, IRBY, LRBUF,
166 . NFACPTX(3,SNFACPTX), IXEDGE(SIXEDGE),
167 . IAD(SIAD), IOFFX1(SOFFX1), INUMX1(SNUMX1), MXSUBS, N1, N2,
168 . N3, K, M3, M4, N0, NESPHG, ISRF, INVERT(SINVERT), M01,
169 . M1, M2, NNNSRG, M, N, LID, NMFUNC(9)
170 INTEGER FVOFF(2,NFVBAG), INOD(4), INORM(3), NFVTR, NFVNOD,
171 . NFVPART, NFVSUBS, IDMAX, KK, NN, FVIAD, JJ, OFFPART,
172 . ELOFF, IDCMAX, NND, NBID1, NBID2, NBID3, NFVNODT, IDP,
173 . NBPART2D, IDPART2DMAX, II
174 INTEGER, DIMENSION(:), ALLOCATABLE :: OFFTR, ITAGT, FVEL2FA,
175 . FVINUM, FVPBUF
176C
178 . cdg(3), waft(swaft), xmin, ymin, zmin, xmax,
ymax, zmax,
179 . xnorm(sxnorm), xfunc1(sfunc1), mas(smas), rid
180 REAL R4, WA4(SWA4)
181 CHARACTER FILNAM*103, CHANIM*3, CHANIM1*4, CTMOD*100
182 CHARACTER*80 STR
183 CHARACTER(LEN=NCHARTITLE) :: TITL
184
185 INTEGER OFF
187 . func(
max(nelem,numsph))
188 CHARACTER*33 CTITR(MAX(1,NLEVEL))
189 CHARACTER*80 STRZZ
190C
191 ltitl = 40
192
193 IF(anim_vers<44)THEN
194 isph3d=1
195 ELSE
196 isph3d=0
197 ENDIF
198 i161=1
199 i16a=i161+lnopt1*nrbody
200 i16b=i16a+lnopt1*naccelm
201 i16c=i16b+lnopt1*nvolu
202 i16d=i16c+lnopt1*(ninter+nintsub)
203 i16e=i16d+lnopt1*nrwall
204 i16f=i16e
205 i16g=i16f+lnopt1*njoint
206 i16h=i16g+lnopt1*nsect
207 i16i=i16h+lnopt1*nlink
208 mas(1:smas) = zero
209
210
211
212 IF(anim_vers>=50)THEN
213 IF(ianim>=10000)ianim=1
214 WRITE(chanim1,'(I4.4)')ianim
216 . rootnam(1:rootlen)//'_'//chanim1//'.ani'
217
218 ELSE
219 IF(ianim>=1000)ianim=1
220 WRITE(chanim,'(I3.3)')ianim
222 . rootnam(1:rootlen)//'A'//chanim
224 ENDIF
225
226 DO i=1,filen
227 ctext(i)=ichar(filnam(i:i))
228 ENDDO
230 CALL open_c(ctext,filen,0)
231
232
233
234 WRITE(ctitr(1),'(A25)') 'SPMD Domain Decomposition'
235 DO i=2,nlevel
236 WRITE(ctitr(i),'(A30,I3)') 'Impl. graph - Dom. Dec. Level '
237 ENDDO
238
239
240
241
242 nskewa=numelp + numelt + numskw
243 nb1d =numelp + numelt + numelr
244 DO i=1,numelr
245 IF(nint(geo(12,ixr(1,i)))==4 .OR.
246 . nint(geo(12,ixr(1,i)))==13.OR.
247 . nint(geo(12,ixr(1,i)))==45.OR.
248 . (nint(geo(12,ixr(1,i)))>=29.AND.
249 . nint(geo(12,ixr(1,i)))<=33))THEN
250 nskewa=nskewa+1
251 ELSEIF(nint(geo(12,ixr(1,i)))==12)THEN
252 nskewa=nskewa+2
253 nb1d =nb1d+1
254 ENDIF
255 ENDDO
256
257
258
259
260
261 DO i=1,npart
262 mater(i)=0
263 ENDDO
264 DO i=1,numelq
265 mater(ipartq(i))=1
266 ENDDO
267 DO i=1,numelc
268 mater(ipartc(i))=1
269 ENDDO
270 DO i=1,numeltg
271 mater(iparttg(i))=1
272 ENDDO
273
274 nbpart = 0
275 DO i=1,npart
276 nbpart = nbpart + mater(i)
277 ENDDO
278
279 nbf = numelq + numelc + numeltg
280 nbf_l = nbf
281
282 DO i=1,numelq + numelc + numeltg + 1
283 el2fa(i)=0
284 ENDDO
285
286
287
288 nodcut=0
289 nelcut=0
290 ncuts=0
291
292 numsph_t = numsph
293 nesct = 0
294 nerwl = 0
295 nnwl = 0
296 nesbw2= 0
297 IF(nsect+nrwall>0) THEN
298 CALL dseccnt(nesct,nerwl,nesbw2
299 1 rwbuf ,nprw,nnwl,ixs
300 END IF
301
302 nesrg=0
303 nnsrg=0
304 nsurg=0
305 IF (nsurf>0)
306 .
CALL dsrgcnt(igrsurf, nsurg,nesrg,nnsrg,nesbw2)
307 nesmd=0
308 nnsmd=0
309 nsmad=0
310 nesph=0
311 nnsph=0
312 nnsphg = 0
313 IF (isph3d==1.AND.numsph_t+maxpjet>0)
314 .
CALL dsphcnt(nesph,nnsph,nesphg,nnsphg)
315
316
317
318 nfvnod=0
319 nfvtr=0
320 nfvpart=0
321 nfvsubs=0
323 idmax=0
324 DO i=1,numnod
325 idmax=
max(idmax,itab(i))
326 ENDDO
327 ENDIF
328
329 IF (ifvani==1) THEN
331 nfvtr=nfvtr+
fvdata(i)%NNTR
332 fvoff(1,i)=numnod+nodcut+nsect+nrwall+nnwl
333 . +nnsrg+nnsmd+nnsph+2*numels16+nfvnod
334 fvoff(2,i)=idmax+nfvnod
335 nfvnod=nfvnod+
fvdata(i)%NNS_ANIM
336 nfvpart=nfvpart+
fvdata(i)%NPOLH_ANIM
337 nfvsubs=nfvsubs+1
338 ENDDO
339 ENDIF
340
341 IF (nfvtr>0)
342 . ALLOCATE(fvel2fa(nfvtr), fvinum(nfvtr))
343
344
345
346
347 numels_t = numels
348 numels16_t = numels16
349 numelt_t = numelt
350 numelr_t = numelr
351 numelp_t = numelp
352
353 magic = 21548
355 r4=ianim
357 CALL ani_txt(
'Mode number=',12)
359 CALL ani_txt(
'Radioss Run=',12)
360
363
364 IF(numels_t+isph3d*(numsph_t+maxpjet)==0) THEN
366 ELSE
368 ENDIF
369 iflag1d = numelt_t+numelp_t+numelr_t+nanim1d
370 IF (iflag1d/=0) iflag1d = 1
372
373
375
377
378 IF(ishfram==1)THEN
380 ELSE
382 ENDIF
383
384 IF(isph3d==0.AND.
385 . (numsph_t+maxpjet/=0))THEN
387 ELSE
389 ENDIF
390
393
394 IF (nfvnod>0) THEN
395 nfvnodt=nfvnod+3
396 ELSE
397 nfvnodt=0
398 ENDIF
399
400 CALL write_i_c(numnod+nodcut+nsect+nrwall+nnwl
401 . +nnsrg+nnsmd+nnsph+2*numels16+nfvnodt,1)
402 CALL write_i_c(nbf+nelcut+nesbw2+nfvtr,1)
403 nbpart2d=nbpart+ncuts+nsect+nrwall+nsurg+nsmad
405 . +nsect+nrwall+nsurg+nsmad+nfvpart,1)
407 IF(nbf+nelcut+nesbw2+nfvtr==0)THEN
409 ELSE
410 IF (dsanim==1) THEN
411 nce_ani=nce_ani+nlevel
412 ELSEIF (decani==1) THEN
413 nce_ani=nce_ani+1
414 ENDIF
416 ENDIF
418 IF(nbf+nelcut+nesbw2+nfvtr==0)THEN
420 ELSE
422 ENDIF
424
425
426
427 bufl=1
428 CALL aniskew(elbuf_tab,skew ,iparg ,x ,ixt,
429 2 ixp ,ixr ,geo ,bufl )
430
431
432
433 xmin = ep30
434 ymin = ep30
435 zmin = ep30
436 xmax = -ep30
438 zmax = -ep30
439
440 DO n=1,numnod
441 xmin =
min(xmin,(x(1,n)-d(1,n)))
442 ymin =
min(ymin,(x(2,n)-d(2,n)))
443 zmin =
min(zmin,(x(3,n)-d(3,n)))
444 xmax =
max(xmax,(x(1,n)-d(1,n)))
446 zmax =
max(zmax,(x(3,n)-d(3,n)))
447 END DO
448
449 cdg(1) = half * (xmax + xmin)
450 cdg(2) = half * (
ymax + ymin)
451 cdg(3) = half * (zmax + zmin)
452
453 DO i=1,numnod
454 r4 = x(1,i)
456 r4 = x(2,i)
458 r4 = x(3,i)
460 END DO
461
463 2 nstrf,rwbuf,nprw ,x,xmin,
464 3 ymin,zmin,xmax,
ymax,zmax,
465 4 itab)
466
467 IF (nsurg>0)
CALL dxyzsrg(nesrg,igrsurf,bufsf)
468
469 snnsphg = 0
470 IF (isph3d*(numsph_t+maxpjet)>0)
471 .
CALL dxyzsph(nesph,kxsp,x,spbuf,snnsphg,nnsph)
472
473 sz16 = numels16
474 IF (sz16>0)
475 2
CALL xyz16(ixs,ixs10,ixs20,ixs16,x)
476
477 IF (nfvnod>0) THEN
480 r4=
fvdata(i)%NOD_ANIM(1,j)
482 r4=
fvdata(i)%NOD_ANIM(2,j)
484 r4=
fvdata(i)%NOD_ANIM(3,j)
486 ENDDO
487 ENDDO
488
489 r4=em10
491 r4=zero
493 r4=zero
495 r4=zero
497 r4=em10
499 r4=zero
501 r4=zero
503 r4=zero
505 r4=em10
507 nbid1=numnod+nodcut+nsect+nrwall+nnwl
508 . +nnsrg+nnsmd+nnsph+2*numels16
509 nbid2=nbid1+1
510 nbid3=nbid2+1
511
512 ENDIF
513
514
515
516 CALL parsorc(x ,d, xnorm,iad ,cdg ,
517 . bufel,iparg,ixq ,ixc ,ixtg ,
519 . mater,ipartq,ipartc,iparttg,
520 . elbuf_tab)
521
522 IF(nsect+nrwall>0)
CALL dparrws(
523 1 nesbw2,nstrf, ixc ,
524 2 ixtg ,x ,nodcut,rwbuf,nprw,
525 3 ixs)
526
527 IF (nsurg>0)
CALL dparsrg(nsurg,nnwl,nodcut)
528
529 ii=0
530 IF (ifvani==1) THEN
533 ALLOCATE(itagt(
fvdata(i)%NNTR))
535 itagt(j)=0
536 ENDDO
537
538 DO j=1,
fvdata(i)%NPOLH_ANIM
539 DO k=
fvdata(i)%IFVPADR_ANIM(j),
540 .
fvdata(i)%IFVPADR_ANIM(j+1)-1
541 kk=
fvdata(i)%IFVPOLH_ANIM(k)
542 DO n=
fvdata(i)%IFVTADR_ANIM(kk),
543 .
fvdata(i)%IFVTADR_ANIM(kk+1)-1
544 nn=
fvdata(i)%IFVPOLY_ANIM(n)
545 IF (itagt(nn)==1) cycle
546 inod(1)=fvoff(1,i)+
fvdata(i)%IFVTRI_ANIM(1,nn)-1
547 inod(2)=fvoff(1,i)+
fvdata(i)%IFVTRI_ANIM(2,nn)-1
548 inod(3)=fvoff(1,i)+
fvdata(i)%IFVTRI_ANIM(3,nn)-1
549 inod(4)=inod(3)
550 ii=ii+1
551
552 nnd=1
553 IF (inod(2)/=inod(1)) nnd=nnd+1
554 IF (inod(3)/=inod(1).AND.
555 . inod(3)/=inod(2)) nnd=nnd+1
556 IF (nnd/=3) THEN
557 inod(1)=nbid1-1
558 inod(2)=nbid2-1
559 inod(3)=nbid3-1
560 inod(4)=inod(3)
561 ENDIF
562
564 itagt(nn)=1
567 ENDDO
568 ENDDO
569 ENDDO
571 DEALLOCATE(itagt)
572 ENDDO
573 ENDIF
574
575
576
577 CALL anioffc(elbuf_tab,iparg,waft ,el2fa,nbf )
578
579 DO j=1,nesbw2+nelcut
581 ENDDO
582
583 IF (ifvani==1) THEN
584 ALLOCATE(offtr(nfvtr))
585 DO i=1,nfvtr
586 offtr(i)=0
587 ENDDO
593 DO n=
fvdata(i)%IFVTADR(kk),
594 .
fvdata(i)%IFVTADR(kk+1)-1
596 IF (nn>0) THEN
597 n1=
fvdata(i)%IFVTRI_ANIM(1,nn)
598 n2=
fvdata(i)%IFVTRI_ANIM(2,nn)
599 n3=
fvdata(i)%IFVTRI_ANIM(3,nn)
600 nnd=1
601 IF (n2/=n1) nnd=nnd+1
602 IF (n3/=n2.AND.n3/=n1) nnd=nnd+1
603
605 IF (nnd==3) offtr(nn)=1
606 ENDIF
607 ENDDO
608 ENDDO
609 ENDDO
611 ENDDO
612
614 DEALLOCATE(offtr)
615 ENDIF
616
617
618
620 nesct1=0
621 DO isect=1,nsect
622 CALL donesec(isect,nesct1,nstrf,ixs)
624 END DO
625
626 nerwl1=0
627 DO irwl=1,nrwall
629 CALL write_i_c(nelcut+nbf+nesct+nerwl1,1)
630 END DO
631 nesrg1=0
632
633 DO isrg=1,nsurg
635 CALL write_i_c(nelcut+nbf+nesct+nerwl+nesrg1,1)
636 END DO
637 nesmd1=0
638
639 IF (ifvani==1) THEN
640 fviad=nelcut+nbf+nesct+nerwl+nesrg+nesmd1
642 ALLOCATE(itagt(
fvdata(i)%NNTR))
644 itagt(j)=0
645 ENDDO
646
647 DO j=1,
fvdata(i)%NPOLH_ANIM
648 DO k=
fvdata(i)%IFVPADR_ANIM(j),
649 .
fvdata(i)%IFVPADR_ANIM(j+1)-1
650 kk=
fvdata(i)%IFVPOLH_ANIM(k)
651 DO n=
fvdata(i)%IFVTADR_ANIM(kk),
652 .
fvdata(i)%IFVTADR_ANIM(kk+1)-1
653 nn=
fvdata(i)%IFVPOLY_ANIM(n)
654 IF (itagt(nn)==0) THEN
655 fviad=fviad+1
656 itagt(nn)=1
657 ENDIF
658 ENDDO
659 ENDDO
661 ENDDO
662
663 DEALLOCATE(itagt)
664 ENDDO
665 ENDIF
666
667
668
669 idpart2dmax=0
670 DO i=1,npart
671 IF(mater(i)/=0)THEN
672 idpart2dmax=
max(idpart2dmax,ipart(4,i))
673 WRITE(str,'(I8,A1)')ipart(4,i),':'
674 DO j=1,9
675 ctext(j)=ichar(str(j:j))
676 ENDDO
677 ib = 9
678 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
679 DO j=1,ltitl
680 IF(titl(j:j)/=' ') ib = j+9
681 ctext(j+9)=ichar(titl(j:j))
682 ENDDO
683 ctext(ib+1)=0
685 ENDIF
686 ENDDO
687
688
689
690
691
692 IF (invstr<40) THEN
693 DO isect=1,nsect
694 WRITE(str,'(I8,A2,A7)') isect,': ','Section'
695 DO j=1,17
696 ctext(j)=ichar(str(j:j))
697 ENDDO
698 ib = 17
699 ctext(ib+1)=0
701 END DO
702 ELSE
703 DO isect=1,nsect
704 WRITE(str,'(I8,A2)') nom_opt(1,ptr_nopt_sect+isect),': '
705 DO j=1,10
706 ctext(j)=ichar(str(j:j))
707 ENDDO
708 CALL fretitl2(titl,nom_opt(lnopt1-ltitr+1,ptr_nopt_sect+isect),
709 . ltitl)
710 ib = ltitl+9
711 DO j=1,ltitl
712 ctext(j+10)=ichar(titl(j:j))
713 ENDDO
714 ctext(ib+1)=0
716 END DO
717 END IF
718
719 IF (invstr<40) THEN
720 DO irwl=1,nrwall
721 WRITE(str,'(I8,A2,A10)') irwl,': ','Rigid Wall'
722 DO j=1,20
723 ctext(j)=ichar(str(j:j))
724 ENDDO
725 ib = 20
726 ctext(ib+1)=0
728 END DO
729 ELSE
730 DO irwl=1,nrwall
731 WRITE(str,'(I8,A2)') nom_opt(1,ptr_nopt_rwall+irwl),': '
732 DO j=1,10
733 ctext(j)=ichar(str(j:j))
734 ENDDO
735 ib = ltitl+9
736 CALL fretitl2(titl,nom_opt(lnopt1-ltitr+1,ptr_nopt_rwall+irwl),
737 . ltitl)
738 DO j=1,ltitl
739 ctext(j+10)=ichar(titl(j:j))
740 END DO
741 ctext(ib+1)=0
743 END DO
744 ENDIF
745
746 isrg=1
747 DO isrf=1,nsurf
748 IF (igrsurf(isrf)%TYPE==101) THEN
749
750 WRITE(str,'(I8,A1)') isrg,':'
751 DO j=1,9
752 ctext(j)=ichar(str(j:j))
753 ENDDO
754 ib=9
755 titl = igrsurf(isrf)%TITLE
756 DO j=1,ltitl
757 IF(titl(j:j)/=' ') ib = j+9
758 ctext(j+9)=ichar(titl(j:j))
759 END DO
760 ctext(ib+1)=0
762 isrg=isrg+1
763 END IF
764 END DO
765 idpart2dmax = idpart2dmax + nsect + nrwall + nsurg + nsmad + ncuts
766
767
768
769 IF (ifvani==1) THEN
771 DO j=1,
fvdata(i)%NPOLH_ANIM
772 WRITE(str,'(I8,A1)') j+idpart2dmax,':'
773 DO k=1,9
774 ctext(k)=ichar(str(k:k))
775 ENDDO
776 titl=' '
777 WRITE(titl,'(A11,I8)') 'POLYHEDRON ',j
778 DO k=1,ltitl
779 ctext(k+9)=ichar(titl(k:k))
780 ENDDO
781 ctext(29)=0
783 ENDDO
784 idpart2dmax = idpart2dmax +
fvdata(i)%NPOLH_ANIM
785 ENDDO
786 ENDIF
787
788
789
791
793 IF (nsurg>0)
CALL dsrgnor(igrsurf,bufsf)
794 snnsphg = 0
795 IF (isph3d*(numsph_t+maxpjet)>0)
796 .
CALL dsphnor(kxsp,x,spbuf,nnsphg)
797 IF (numels16>0)
798 .
CALL xyznor16(ixs,ixs10,ixs20,ixs16,x)
799
800 IF (ifvani==1) THEN
801 DO i=1,nfvnod
802 inorm(1) = 0
803 inorm(2) = 0
804 inorm(3) = 0
806 ENDDO
807 IF (nfvnod>0) THEN
808 DO i=1,3
809 inorm(1) = 0
810 inorm(2) = 0
811 inorm(3) = 0
813 ENDDO
814 ENDIF
815 ENDIF
816
817
818
819 IF(anim_m==1.OR.anim_ce(3)==1.OR.
820 . anim_ce(25)==1)THEN
821 CALL dmasanic(elbuf_tab, x ,d ,geo ,iparg,
822 . ixq ,ixc ,ixtg ,mas ,pm ,
823 . el2fa,nbf )
824 ENDIF
825
826
827
828 IF(nbf+nelcut+nesbw2/=0)THEN
829 DO i=1,nmanim
830 WRITE(ctmod,'(A7,I4,A8,I4,A18)')
831 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Specific Energy'
833 WRITE(ctmod,'(A7,I4,A8,I4,A11)')
834 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Pressure'
836 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
837 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Von Mises'
839 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
840 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress X '
842 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
843 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress Y '
845 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
846 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress Z '
848 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
849 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress XY'
851 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
852 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress YZ'
854 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
855 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress XZ'
857 ENDDO
858 IF (dsanim==1) THEN
859 DO i=1,nlevel
861 ENDDO
862 ELSEIF (decani==1) THEN
864 ENDIF
865 ENDIF
866
867
868
869 ndma2= numnod*(
min(1,anim_n(1)+outp_n(1))
870 . +
min(1,anim_n(2)+outp_n(2))
871 . +
min(1,anim_n(12)+outp_n(3)))
872 IF((nbf+nelcut+nesbw2/=0)) THEN
873 DO i = 1,mx_ani
874 ifunc = i
875 IF(anim_ce(i)==1) THEN
876
877 CALL dfuncc(elbuf_tab,bufel,waft ,ifunc,iparg,
878 . ixq ,ixc ,ixtg ,pm ,el2fa,
879 . nbf )
880 r4 = zero
881 DO j=1,nesbw2
883 ENDDO
884
885 IF (nfvtr>0) THEN
886 r4=zero
887 DO j=1,nfvtr
889 ENDDO
890 ENDIF
891
892 ENDIF
893 ENDDO
894
895 nmfunc(1)=3
896 nmfunc(2)=6
897 nmfunc(3)=7
898 nmfunc(4)=14
899 nmfunc(5)=15
900 nmfunc(6)=16
901 nmfunc(7)=17
902 nmfunc(8)=18
903 nmfunc(9)=19
904 DO i=1,nmanim
905 DO j=1,9
906 ifunc=nmfunc(j)
907 CALL dfuncc(elbuf_tab,mbufel(1,i), waft, ifunc, iparg,
908 . ixq, ixc, ixtg, pm,
909 . el2fa, nbf)
910 r4 = zero
911 DO k=1,nesbw2
913 ENDDO
914 IF (nfvtr>0) THEN
915 r4=zero
916 DO k=1,nfvtr
918 ENDDO
919 ENDIF
920 ENDDO
921 ENDDO
922
923 IF (dsanim==1) THEN
924 DO i=1,nlevel
925 DO j=1,nbf
926 func(j)=zero
927 ENDDO
928
929 off=1+numels
930 CALL delsub(nlevel, elsub, i, off, numelq+numelc,
931 . el2fa , func)
932
933 off=off+numelq+numelc+numelt+numelp+numelr
934 CALL delsub(nlevel, elsub, i, off, numeltg,
935 . el2fa(1+numelq+numelc), func)
936
937 DO j=1,nbf
938 r4=func(j)
940 ENDDO
941 r4=zero
942 DO j=1,nesbw2
944 ENDDO
945 IF (nfvtr>0) THEN
946 r4=zero
947 DO j=1,nfvtr
949 ENDDO
950 ENDIF
951 ENDDO
952 ELSEIF (decani==1) THEN
953 DO i=1,nbf
954 func(i)=zero
955 ENDDO
956
957 off=1+numels
958 CALL delsub(1, cep, 1, off, numelq+numelc,
959 . el2fa, func)
960
961 off=off+numelq+numelc+numelt+numelp+numelr
962 CALL delsub(1, cep, 1, off, numeltg,
963 . el2fa(1+numelq+numelc), func)
964
965 DO i=1,nbf
966 r4=func(i)
968 ENDDO
969 r4=zero
970 DO i=1,nesbw2
972 ENDDO
973 IF (nfvtr>0) THEN
974 r4=zero
975 DO j=1,nfvtr
977 ENDDO
978 ENDIF
979 ENDIF
980 ENDIF
981
982
983
984 DO i=1,nmanim
985 WRITE(ctmod,'(A7,I4,A8,I4,A15)')
986 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Displacement'
988 ENDDO
989
990 nnnsrg=nnsrg+nnsmd+nnsph+2*numels16
991 DO i=1,nmanim
992 CALL velvec(mdepl(1,i),nnwl,nnnsrg)
993 ENDDO
994
995
996
997 IF((nbf+nelcut+nesbw2/=0))THEN
998 DO i=1,nmanim
999 WRITE(ctmod,'(A7,I4,A8,I4,A21)')
1000 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),
1001 . ' - Stress (membrane)'
1003 WRITE(ctmod,'(A7,I4,A8,I4,A23)')
1004 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),
1005 . ' - Stress (moment/t^2)'
1007 ENDDO
1008
1009
1010
1011 DO i = 1,mx_ani
1012 ifunc = i
1013 IF(anim_ct(i)==1)THEN
1014 CALL tensorc(elbuf_tab ,iparg,ifunc,
1015 .
invert,nelcut,el2fa,nbf ,waft ,
1016 . iad,nbf_l,nbpart,
1017 . x, ixc, igeo,ixtg )
1018 r4 = zero
1019 DO j=1,nesbw2
1023 ENDDO
1024 ENDIF
1025 ENDDO
1026 nmfunc(1)=1
1027 nmfunc(2)=2
1028 DO i=1,nmanim
1029 DO j=1,2
1030 ifunc=nmfunc(j)
1031
1032
1033
1034
1035 r4 = zero
1036 DO k=1,nesbw2
1040 ENDDO
1041 ENDDO
1042 ENDDO
1043 ENDIF
1044
1045
1046
1047 IF(anim_m==1)THEN
1048 DO i=1,nbf
1049 r4 = mas(i)
1051 ENDDO
1052
1053 r4 = 0.
1054 DO j=1,nesbw2+nelcut
1056 ENDDO
1057 IF (nfvtr>0) THEN
1058 r4=zero
1059 DO j=1,nfvtr
1061 ENDDO
1062 ENDIF
1063
1064
1065
1066 DO i=1,numnod
1067 wa4(i)=ms(i)
1068 ENDDO
1069
1070 DO n=1,nrbykin
1071 m=npby(1,n)
1072 IF (m>0) THEN
1073 wa4(m)=wa4(m)+(rby(15,n)-ms(m))
1074 ENDIF
1075 ENDDO
1076
1077 DO k=1,numnod
1078 r4 = wa4(n)
1080 ENDDO
1081
1082 r4 = zero
1083 sz16 = numels16
1084 sznnsph = nnsph
1085 DO n=1,nsect+nrwall+nnwl+nnsrg+nnsmd+sznnsph+2*sz16
1087 ENDDO
1088 IF (nfvnod>0) THEN
1089 r4=zero
1090 DO n=1,nfvnod+3
1092 ENDDO
1093 ENDIF
1094 ENDIF
1095
1096
1097
1099 sz16 = numels16
1100 sznnsph = nnsph
1101 DO i=1,nodcut+nsect+nrwall+nnwl+nnsrg+nnsmd+sznnsph+2*sz16
1103 ENDDO
1104
1105 IF (nfvnod>0) THEN
1107 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
1108 DO j=1,
fvdata(i)%NNS_ANIM
1109 jj=fvoff(2,i)+j
1111 ENDDO
1112 ENDIF
1113 ENDDO
1117 ENDIF
1118
1119
1120
1121 CALL delnumbc(iparg,ixq ,ixc ,ixtg ,
1122 . el2fa,nbf ,waft ,nelcut,
1123 . nbpart,idcmax)
1124 DO j=1,nesbw2
1126 ENDDO
1127 IF (nfvtr>0) THEN
1128 DO i=1,nfvtr
1130 ENDDO
1131 DEALLOCATE(fvel2fa, fvinum)
1132 ENDIF
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143 DO i=1,npart
1144 IF(mater(i)==1) THEN
1145 IF (ipart(3,i)<nsubs) THEN
1147 ELSE
1149 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1150 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1151 END IF
1152 END IF
1153 ENDDO
1154 DO i=1,ncuts
1156 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1157 . +
min(1,nsurg+nsmad)-1,1)
1158 ENDDO
1159 DO i=1,nsect
1161 END DO
1162 DO i=1,nrwall
1164 END DO
1165 DO i=1,nsurg
1167 . +
min(1,nrwall)-1,1)
1168 END DO
1169 DO i=1,nsmad
1171 . +
min(1,nrwall)-1,1)
1172 END DO
1173 IF (nfvtr>0) THEN
1174 ii=nsubs
1175 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1176 . +
min(1,nsurg+nsmad)-1
1178 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
1179 ii=ii+1
1180 DO j=1,
fvdata(i)%NPOLH_ANIM
1182 ENDDO
1183 ENDIF
1184 ENDDO
1185 ENDIF
1186
1187 DO i=1,npart
1188 IF(mater(i)==1)
CALL write_i_c(ipart(1,i),1)
1189 ENDDO
1190 DO i=1,ncuts+nrwall+nsect+nsurg+nsmad
1192 ENDDO
1193 DO i=1,nfvpart
1195 ENDDO
1196
1197 DO i=1,npart
1198 IF(mater(i)==1)
CALL write_i_c(ipart(2,i),1)
1199 ENDDO
1200 DO i=1,ncuts+nrwall+nsect+nsurg+nsmad
1202 ENDDO
1203 DO i=1,nfvpart
1205 ENDDO
1206
1207
1208
1209
1210
1211 IF (numels_t+numels16_t+isph3d*(numsph_t+maxpjet)>=0.OR.
1212 . (isph3d==1.AND.numsph_t+maxpjet>0)) THEN
1213 IF (dsanim==1) THEN
1214 nse_ani=nse_ani+nlevel
1215 ELSEIF (decani==1) THEN
1216 nse_ani=nse_ani+1
1217 ENDIF
1218 ENDIF
1219 IF(numels_t+numels16_t+isph3d*(numsph_t+maxpjet)==0)GOTO 400
1220
1221
1222
1223
1224 DO i=1,numels
1225 mater(iparts(i))=2
1226 el2fa(i)=0
1227 ENDDO
1228
1229 DO i=1,3*numels16
1230 el2fa(numels+i)=0
1231 ENDDO
1232
1233
1234
1235 IF(isph3d/=0)THEN
1236 DO i=1,numsph+maxpjet
1237 mater(ipartsp(i))=2
1238 el2fa(numels+3*numels16+i)=0
1239 ENDDO
1240 ENDIF
1241
1242 nbpart = 0
1243 DO i=1,npart
1244 nbpart = nbpart + mater(i)/2
1245 ENDDO
1246
1247
1248
1249 CALL write_i_c(numels+isph3d*(numsph+maxpjet)
1250 . +3*numels16,1)
1254
1255
1256
1257 shftsph = numnod+nodcut+nsect+nrwall+nnwl+nnsrg+nnsmd
1258 shft16 = numnod+nodcut+nsect+nrwall+nnwl+nnsrg+nnsmd+nnsphg
1259 insph=numnod+nodcut+nsect+nrwall+nnwl
1260 . +nnsrg+nnsmd
1261 CALL parsors(iad ,iparg ,ixs ,mater,iparts,
1262 2 el2fa ,
1263 3 insph ,kxsp ,ipartsp,
1264 4 ixs10 ,ixs20 ,ixs16 ,nnsph ,isph3d,
1265 5 shft16 ,shftsph,nnsphg )
1266
1267
1268
1269 nnn = numels+isph3d*(numsph+maxpjet)+3*numels16
1270 CALL anioffs(elbuf_tab ,iparg,waft ,el2fa ,
1271 . nnn ,nbpart,isph3d )
1272
1273
1274
1276
1277
1278
1279 DO i=1,npart
1280 IF(mater(i)==2)THEN
1281 WRITE(str,'(I8,A1)')ipart(4,i),':'
1282 DO j=1,9
1283 ctext(j)=ichar(str(j:j))
1284 ENDDO
1285 ib = 9
1286 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
1287 DO j=1,ltitl
1288 IF(titl(j:j)/=' ') ib = j+9
1289 ctext(j+9)=ichar(titl(j:j))
1290 END DO
1291 ctext(ib+1)=0
1293 ENDIF
1294 ENDDO
1295
1296
1297
1298 IF(anim_m==1.OR.anim_se(3)==1.OR.
1299 . anim_se(25)==1)THEN
1301 2 ixs ,mas ,pm ,el2fa ,numels ,
1302 3 ipart ,ipartsp ,isph3d )
1303 ENDIF
1304
1305
1306
1307 ctext(81)=0
1308 DO i=1,nmanim
1309 WRITE(ctmod,'(A7,I4,A8,I4,A18)')
1310 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Specific Energy'
1312 WRITE(ctmod,'(A7,I4,A8,I4,A11)')
1313 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Pressure'
1315 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1316 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Von Mises'
1318 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1319 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress X '
1321 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1322 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress Y '
1324 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1325 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress Z '
1327 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1328 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress XY'
1330 WRITE(ctmod,'(a7,i4,a8,i4,a12)')
1331 . 'fxbody ',FXANI(1,I),' - mode ',FXANI(2,I),' - stress yz'
1332 CALL ANI_TXT(CTMOD,35)
1333 WRITE(CTMOD,'(a7,i4,a8,i4,a12)')
1334 . 'fxbody ',FXANI(1,I),' - mode ',FXANI(2,I),' - stress xz'
1335 CALL ANI_TXT(CTMOD,35)
1336 ENDDO
1337 IF (DSANIM==1) THEN
1338 DO I=1,NLEVEL
1339 CALL ANI_TXT(CTITR(I),33)
1340 ENDDO
1341 ELSEIF (DECANI==1) THEN
1342 CALL ANI_TXT(CTITR(1),25)
1343 ENDIF
1344
1345
1346
1347 NDMA2= NUMNOD*(MIN(1,ANIM_N(1)+OUTP_N(1))
1348 . +MIN(1,ANIM_N(2)+OUTP_N(2))
1349 . +MIN(1,ANIM_N(12)+OUTP_N(3)))
1350 NNN = NUMELS+ISPH3D*(NUMSPH+MAXPJET)+3*NUMELS16
1351 DO I = 1,MX_ANI
1352 IFUNC = I
1353 IF(ANIM_SE(I)==1) THEN
1354 CALL DFUNCS(ELBUF_TAB ,WAFT ,IFUNC ,IPARG ,
1355 2 IXS ,PM ,EL2FA ,NNN ,ISPH3D )
1356 ENDIF
1357 ENDDO
1358
1359 NMFUNC(1)=3
1360 NMFUNC(2)=6
1361 NMFUNC(3)=7
1362 NMFUNC(4)=14
1363 NMFUNC(5)=15
1364 NMFUNC(6)=16
1365 NMFUNC(7)=17
1366 NMFUNC(8)=18
1367 NMFUNC(9)=19
1368 DO I=1,NMANIM ! Don't work
1369 DO j=1,9
1370 ifunc=nmfunc(j)
1371 CALL dfuncs(mbufel(1,i), waft, ifunc, iparg,
1372 . ixs,pm ,el2fa, nnn,isph3d)
1373 ENDDO
1374 ENDDO
1375 IF (dsanim==1) THEN
1376 DO i=1,nlevel
1377 DO j=1,nnn
1378 func(j)=zero
1379 ENDDO
1380
1381 off=1
1382 CALL delsub(nlevel, elsub, i, off, numels,
1383 . el2fa, func)
1384
1385 DO j=1,nnn
1386 r4=func(j)
1388 ENDDO
1389 ENDDO
1390 ELSEIF (decani==1) THEN
1391 DO i=1,nnn
1392 func(i)=zero
1393 ENDDO
1394
1395 off=1
1396 CALL delsub(1, cep, 1, off, numels,
1397 . el2fa, func)
1398
1399 IF (isph3d==1) THEN
1400 off=1
1401 CALL delsub(1, cepsp,1 ,off, numsph,
1402 . el2fa(1+numels), func)
1403 ENDIF
1404
1405 DO i=1,nnn
1406 r4=func(i)
1408 ENDDO
1409 ENDIF
1410
1411
1412
1413 DO i=1,nmanim
1414 WRITE(ctmod,'(A7,I4,A8,I4,A9)')
1415 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress'
1417 ENDDO
1418
1419
1420
1421 DO i = 1,mx_ani
1422 ifunc = i
1423 IF(anim_st(i)==1)THEN
1424 CALL tensors(elbuf_tab ,iparg ,ifunc ,ixs ,pm ,
1425 2 el2fa ,nnn ,waft ,
1426 3 x ,ipart ,ipartsp ,isph3d ,ipm )
1427 ENDIF
1428 ENDDO
1429 nmfunc(1)=1
1430 DO i=1,nmanim
1431 DO j=1,1
1432 ifunc=nmfunc(j)
1433
1434
1435
1436 ENDDO
1437 ENDDO
1438
1439
1440
1441 IF(anim_m==1)THEN
1442 DO i=1,nnn
1443 r4 = mas(i)
1445 ENDDO
1446 ENDIF
1447
1448
1449
1450 CALL delnumbs(iparg,ixs ,el2fa,nnn ,waft ,
1451 . kxsp ,isph3d )
1452
1453
1454
1455 DO i=1,npart
1456 IF(mater(i)==2)THEN
1457 IF (ipart(3,i)<nsubs) THEN
1459 ELSE
1461 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1462 . +
min(1,nsurg+nsmad)-1,1)
1463 END IF
1464 END IF
1465 ENDDO
1466 DO i=1,npart
1467 IF(mater(i)==2)
CALL write_i_c(ipart(1,i),1)
1468 ENDDO
1469 DO i=1,npart
1470 IF(mater(i)==2)
CALL write_i_c(ipart(2,i),1)
1471 ENDDO
1472
1473 400 CONTINUE
1474
1475
1476
1477
1478
1479
1480 nerby = 0
1481 IF (nrbody>0)
1483 nb1d_t = nb1d
1484 IF(nb1d+nanim1d+nerby==0) GOTO 600
1485
1486
1487
1488
1489 DO i=1,numelt
1490 mater(ipartt(i))=3
1491 ENDDO
1492 DO i=1,numelp
1493 mater(ipartp(i))=3
1494 ENDDO
1495 DO i=1,numelr
1496 mater(ipartr(i))=3
1497 ENDDO
1498 DO i=1,numelx
1499 iprt=ipartx(i)
1500 IF (nfacptx(1,iprt)>0) THEN
1501 mater(iprt)=3
1502 ELSE
1503 mater(iprt)=0
1504 ENDIF
1505 ENDDO
1506
1507 nbpart = 0
1508 DO i=1,npart
1509 nbpart = nbpart + mater(i)/3
1510 ENDDO
1511
1512 DO i=1,nb1d + 1
1513 el2fa(i)=0
1514 ENDDO
1515
1516
1517
1520 IF (dsanim==1) THEN
1521 nfe_ani=nfe_ani+nlevel
1522 ELSEIF (decani==1) THEN
1523 nfe_ani=nfe_ani+1
1524 ENDIF
1527
1529
1530
1531
1532
1533 CALL parsorf(iad ,iparg,ixt ,ixp ,ixr ,
1534 . mater,el2fa,
1535 . ipartt,ipartp,ipartr,nfacptx,ixedge)
1536 IF(nrbody>0) THEN
1538 ENDIF
1539
1540
1541
1542 CALL aniofff(elbuf_tab,iparg,waft,el2fa,
1543 . nb1d ,ioffx1)
1544 DO j=1,nerby
1546 ENDDO
1547
1548
1549
1551 DO i=1,nrbody
1552 nerbt(i)=0
1553 ENDDO
1554 nerby1=0
1555 DO irby=1,nrbody
1556 CALL donerby(irby,nerby1,npby,nerbt)
1558 END DO
1559
1560
1561
1562 DO i=1,npart
1563 IF(mater(i)==3)THEN
1564 WRITE(str,'(I8,A1)')ipart(4,i),':'
1565 DO j=1,9
1566 ctext(j)=ichar(str(j:j))
1567 ENDDO
1568 ib = 9
1569
1570 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
1571 DO j=1,ltitl
1572 IF(titl(j:j)/=' ') ib = j+9
1573 ctext(j+9)=ichar(titl(j:j))
1574 END DO
1575 ctext(ib+1)=0
1577
1578 ENDIF
1579 ENDDO
1580
1581 IF (invstr<40) THEN
1582 DO irby=1,nrbody
1583 WRITE(str,'(I8,A2,A10)') irby,': ','Rigid Body'
1584 DO j=1,20
1585 ctext(j)=ichar(str(j:j))
1586 ENDDO
1587 ib = 20
1588 ctext(ib+1)=0
1589
1591 END DO
1592 ELSE
1593 DO irby=1,nrbody
1594 WRITE(str,'(I8,A2)') nom_opt(1,irby),': '
1595 DO j=1,10
1596 ctext(j)=ichar(str(j:j))
1597 ENDDO
1598
1599 CALL fretitl2(titl,nom_opt(lnopt1-ltitr+1,irby),
1600 . ltitl)
1601 ib = ltitl+9
1602 DO j=1,ltitl
1603 ctext(j+10)=ichar(titl(j:j))
1604 END DO
1605 ctext(ib+1)=0
1607 END DO
1608 END IF
1609
1610
1611
1612 IF(anim_m==1.OR.anim_fe(3)==1)THEN
1613 CALL dmasanif(x ,d ,elbuf_tab,geo ,iparg,
1614 . ixt ,ixp ,ixr
1615 . el2fa ,nb1d )
1616 ENDIF
1617
1618
1619
1620 DO i=1,nmanim
1621 WRITE(ctmod,'(A7,I4,A8,I4,A18)')
1622 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Specific Energy'
1624 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1625 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Von Mises'
1627 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1628 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress X '
1630 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1631 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress Y '
1633 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1634 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress Z '
1636 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1637 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress XY'
1639 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1640 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress YZ'
1642 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1643 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress XZ'
1645 ENDDO
1646 IF (dsanim==1) THEN
1647 DO i=1,nlevel
1649 ENDDO
1650 ELSEIF (decani==1) THEN
1652 ENDIF
1653
1654
1655
1656 ndma2= numnod*(
min(1,anim_n(1)+outp_n(1))
1657 . +
min(1,anim_n(2)+outp_n(2))
1658 . +
min(1,anim_n(12)+outp_n(3)))
1659 DO i = 1,mx_ani
1660 ifunc = i
1661 IF(anim_fe(i)==1) THEN
1662
1663 CALL dfuncf(elbuf_tab,waft ,ifunc ,iparg ,geo ,
1664 . ixt ,ixp ,ixr ,mas ,pm ,
1665 . el2fa ,nb1d ,iad ,nbpart ,xfunc1)
1666 r4 = zero
1667 DO j=1,nerby
1669 ENDDO
1670 ENDIF
1671 ENDDO
1672
1673 nmfunc(1)=3
1674 nmfunc(2)=7
1675 nmfunc(3)=14
1676 nmfunc(4)=15
1677 nmfunc(5)=16
1678 nmfunc(6)=17
1679 nmfunc(7)=18
1680 nmfunc(8)=19
1681 DO i=1,nmanim
1682 DO j=1,8
1683 ifunc=nmfunc(j)
1684
1685
1686
1687
1688 r4 = zero
1689 DO k=1,nerby
1691 ENDDO
1692 ENDDO
1693 ENDDO
1694 IF (dsanim==1) THEN
1695 DO i=1,nlevel
1696 DO j=1,nb1d
1697 func(j)=zero
1698 ENDDO
1699
1700 off=1+numels+numelq+numelc
1701 CALL delsub(nlevel, elsub, i, off, numelt+numelp+numelr,
1702 . el2fa, func )
1703
1704 DO j=1,nb1d
1705 r4=func(j)
1707 ENDDO
1708 r4 = zero
1709 DO j=1,nanim1d
1711 ENDDO
1712 DO j=1,nerby
1714 ENDDO
1715 ENDDO
1716 ELSEIF (decani==1) THEN
1717 DO i=1,nb1d
1718 func(i)=zero
1719 ENDDO
1720
1721 off=1+numels+numelq+numelc
1722 CALL delsub(1, cep, 1, off, numelt+numelp+numelr,
1723 . el2fa, func)
1724
1725 DO i=1,nb1d
1726 r4=func(i)
1728 ENDDO
1729 r4=zero
1730 DO i=1,nanim1d
1732 ENDDO
1733 DO i=1,nerby
1735 ENDDO
1736 ENDIF
1737
1738
1739
1740 lrbuf = 0
1741
1742 CALL aniskewf(geo,skew,iparg,ixr,lrbuf)
1743 DO i=1,nanim1d
1745 ENDDO
1746 DO j=1,nerby
1748 ENDDO
1749
1750
1751
1752 IF(anim_m==1)THEN
1753 DO i=1,nb1d
1754 r4 = mas(i)
1756 ENDDO
1757 r4 = 0.
1758 DO j=1,nerby
1760 ENDDO
1761 ENDIF
1762
1763
1764
1765 CALL delnumbf(iparg,ixt ,ixp ,ixr ,
1766 . el2fa,nb1d ,waft ,
1767 . inumx1 )
1768 DO j=1,nerby
1770 ENDDO
1771
1772
1773
1774 DO i=1,npart
1775 IF(mater(i)==3)THEN
1776 IF (ipart(3,i)<nsubs) THEN
1778 ELSE
1780 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1781 . +
min(1,nsurg+nsmad)-1,1)
1782 END IF
1783 END IF
1784 ENDDO
1785
1786 DO i=1,nrbody
1788 END DO
1789 DO i=1,npart
1790 IF(mater(i)==3)
CALL write_i_c(ipart(1,i),1)
1791 ENDDO
1792 DO i=1,nrbody
1794 ENDDO
1795 DO i=1,npart
1796 IF(mater(i)==3)
CALL write_i_c(ipart(2,i),1)
1797 ENDDO
1798 DO i=1,nrbody
1800 ENDDO
1801
1802 600 CONTINUE
1803
1804
1805
1806
1807
1808 j=0
1809 DO i=1,npart
1810 IF(mater(i)==1)THEN
1811 j=j+1
1812 mater(i)=j
1813 ELSE
1814 mater(i)=-mater(i)
1815 ENDIF
1816 ENDDO
1817 m01=j
1818 j=j+ncuts+nrwall+nsect+nsurg+nsmad
1819 m1=j
1820 DO i=1,npart
1821 IF(mater(i)==-2)THEN
1822 j=j+1
1823 mater(i)=j
1824 ENDIF
1825 ENDDO
1826 m2=j
1827 DO i=1,npart
1828 IF(mater(i)==-3)THEN
1829 j=j+1
1830 mater(i)=j
1831 ENDIF
1832 ENDDO
1833 m3=j+nrbody
1834
1835
1836
1838 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1839 . +
min(1,nsurg+nsmad)+nfvsubs,1)
1840
1841
1842
1843 IF (nsubs==1) THEN
1844
1845
1846
1847 mxsubs=1
1848
1849
1850
1851 IF (nrbody>0) THEN
1852 WRITE(str,'(I8,A14)')mxsubs+1,':RBODIES MODEL'
1853 DO j=1,22
1854 ctext(j)=ichar(str(j:j))
1855 ENDDO
1856 ctext(23)=0
1858
1860 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1861 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1862
1864
1865
1866 n1=0
1867 n2=0
1868 n3=nrbody
1869
1871
1873
1875 DO j=nrbody,1,-1
1877 ENDDO
1878 END IF
1879
1880
1881
1882 IF (nsect>0) THEN
1883 WRITE(str,
'(I8,A15)')mxsubs+
min(1,nrbody)+1,
':SECTIONS MODEL'
1884 DO j=1,23
1885 ctext(j)=ichar(str(j:j))
1886 ENDDO
1887 ctext(24)=0
1889
1891 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1892 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1893
1895
1896
1897 n1=nsect
1898 n2=0
1899 n3=0
1900
1902 DO j=nsect,1,-1
1903 CALL write_i_c(m1-nsurg-nsmad-nrwall-j,1)
1904 ENDDO
1905
1907
1909 END IF
1910
1911
1912
1913 IF (nrwall>0) THEN
1914 WRITE(str,'(I8,A13)')mxsubs
1915 . +
min(1,nsect)+
min(1,nrbody)+1,
':RWALLS MODEL'
1916 DO j=1,21
1917 ctext(j)=ichar(str(j:j))
1918 ENDDO
1919 ctext(22)=0
1921
1923 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1924 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1925
1927
1928
1929 n1=nrwall
1930 n2=0
1931 n3=0
1932
1934 DO j=nrwall,1,-1
1936 ENDDO
1937
1939
1941 END IF
1942
1943
1944
1945 IF (nsurg+nsmad>0) THEN
1946 WRITE(str,'(I8,A15)')mxsubs
1947 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)+1,
1948 . ':SURFACES MODEL'
1949 DO j=1,23
1950 ctext(j)=ichar(str(j:j))
1951 ENDDO
1952 ctext(24)=0
1954
1956 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1957 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1958
1960
1961
1962 n1=nsurg+nsmad
1963 n2=0
1964 n3=0
1965
1967 DO j=nsurg+nsmad,1,-1
1969 ENDDO
1970
1972
1974 END IF
1975
1976
1977
1978 IF (nfvsubs>0) THEN
1979 ii=nsubs
1980 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1981 . +
min(1,nsurg+nsmad)
1982 offpart=nbpart2d
1984 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
1985 ii=ii+1
1986 WRITE(str,'(I8,A11,I8)')
1987 . ii,
':FVMBAG ID ',
fvdata(i)%ID
1988 DO j=1,27
1989 ctext(j)=ichar(str(j:j))
1990 ENDDO
1991 ctext(28)=0
1993
1995 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1996 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1997
1999
2001 DO j=1,
fvdata(i)%NPOLH_ANIM
2003 ENDDO
2004 offpart=offpart+
fvdata(i)%NPOLH_ANIM
2005
2007
2009 ENDIF
2010 ENDDO
2011 ENDIF
2012
2013
2014
2015 WRITE(str,'(I8,A13)')1,':GLOBAL MODEL'
2016 DO j=1,21
2017 ctext(j)=ichar(str(j:j))
2018 ENDDO
2019 ctext(22)=0
2021
2023
2025 . +
min(1,nsurg+nsmad)+nfvsubs,1)
2026
2027 IF (nrbody>0)
2029 IF (nsect>0)
2031 IF (nrwall>0)
2033 IF (nsurg+nsmad>0)
2035 . +
min(1,nrwall)-1,1)
2036 IF (nfvsubs>0) THEN
2037 ii=
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2038 . +
min(1,nsurg+nsmad)+1
2040 ii=ii+1
2042 ENDDO
2043 ENDIF
2044
2045 n1=0
2046 n2=0
2047 n3=0
2048 DO k=1,npart
2049 IF(mater(k)>0.AND.mater(k)<=m01)THEN
2050 n1=n1+1
2051 ELSEIF(mater(k)>m1.AND.mater(k)<=m2)THEN
2052 n2=n2+1
2053 ELSEIF(mater(k)>m2)THEN
2054 n3=n3+1
2055 ENDIF
2056 ENDDO
2057
2058 n1=n1+ncuts
2059
2061 DO k=1,npart
2062 IF(mater(k)>0.AND.mater(k)<=m01)
2064 ENDDO
2065
2066 DO j=1,ncuts
2067 CALL write_i_c(m1-nrwall-nsect-nsurg-nsmad-j,1)
2068 ENDDO
2069
2071 DO k=1,npart
2072 IF(mater(k)>m1.AND.mater(k)<=m2)
2074 ENDDO
2075
2077 DO k=1,npart
2078 IF(mater(k)>m2)
CALL write_i_c(mater(k)-m2-1,1)
2079 ENDDO
2080 ELSE
2081
2082
2083
2084 mxsubs=0
2085 DO i=1,nsubs-1
2086 IF (subset(i)%ID > mxsubs) mxsubs=subset(i)%ID
2087 WRITE(str,'(I8,A1)')subset(i)%ID,':'
2088 DO j=1,9
2089 ctext(j)=ichar(str(j:j))
2090 ENDDO
2091 ib = 9
2092 titl = subset(i)%TITLE
2093 DO j=1,ltitl
2094 IF(titl(j:j)/=' ') ib = j+9
2095 ctext(j+9)=ichar(titl(j:j))
2096 ENDDO
2097 ctext(ib+1)=0
2099
2100 IF (subset(i)%PARENT < nsubs) THEN
2102 ELSE
2104 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2105 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2106 END IF
2107
2109
2110 DO j=1,subset(i)%NCHILD
2112 ENDDO
2113
2114 n1=0
2115 n2=0
2116 n3=0
2117 DO j=1,subset(i)%NPART
2118 k = subset(i)%PART(j)
2119 IF(mater(k)>0.AND.mater(k)<=m01)THEN
2120 n1=n1+1
2121 ELSEIF(mater(k)>m1.AND.mater(k)<=m2)THEN
2122 n2=n2+1
2123 ELSEIF(mater(k)>m2)THEN
2124 n3=n3+1
2125 ENDIF
2126 ENDDO
2127
2129 DO j=1,subset(i)%NPART
2130 k = subset(i)%PART(j)
2131 IF(mater(k)>0.AND.mater(k)<=m01)
2133 ENDDO
2134
2136 DO j=1,subset(i)%NPART
2137 k = subset(i)%PART(j)
2138 IF(mater(k)>m1.AND.mater(k)<=m2)
2140 ENDDO
2141
2143 DO j=1,subset(i)%NPART
2144 k = subset(i)%PART(j)
2145 IF(mater(k)>m2)
CALL write_i_c(mater(k)-m2-1,1)
2146 ENDDO
2147 ENDDO
2148
2149
2150
2151 IF (nrbody>0) THEN
2152 WRITE(str,'(I8,A14)')mxsubs+1,':RBODIES MODEL'
2153 DO j=1,22
2154 ctext(j)=ichar(str(j:j))
2155 ENDDO
2156 ctext(23)=0
2158
2160 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2161 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2162
2164
2165
2166 n1=0
2167 n2=0
2168 n3=nrbody
2169
2171
2173
2175 DO j=nrbody,1,-1
2177 ENDDO
2178 END IF
2179
2180
2181
2182 IF (nsect>0) THEN
2183 WRITE(str,
'(I8,A15)')mxsubs+
min(1,nrbody)+1,
':SECTIONS MODEL'
2184 DO j=1,23
2185 ctext(j)=ichar(str(j:j))
2186 ENDDO
2187 ctext(24)=0
2189
2191 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2192 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2193
2195
2196
2197 n1=nsect
2198 n2=0
2199 n3=0
2200
2202 DO j=nsect,1,-1
2203 CALL write_i_c(m1-nsurg-nsmad-nrwall-j,1)
2204 ENDDO
2205
2207
2209 END IF
2210
2211
2212
2213 IF (nrwall>0) THEN
2214 WRITE(str,'(I8,A13)')mxsubs
2215 . +
min(1,nsect)+
min(1,nrbody)+1,
':RWALLS MODEL'
2216 DO j=1,21
2217 ctext(j)=ichar(str(j:j))
2218 ENDDO
2219 ctext(22)=0
2221
2223 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2224 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2225
2227
2228
2229 n1=nrwall
2230 n2=0
2231 n3=0
2232
2234 DO j=nrwall,1,-1
2236 ENDDO
2237
2239
2241 END IF
2242
2243
2244
2245 IF (nsurg+nsmad>0) THEN
2246 WRITE(str,'(I8,A15)')mxsubs
2247 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)+1,
2248 . ':SURFACES MODEL'
2249 DO j=1,23
2250 ctext(j)=ichar(str(j:j))
2251 ENDDO
2252 ctext(24)=0
2254
2256 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2257 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2258
2260
2261
2262 n1=nsurg+nsmad
2263 n2=0
2264 n3=0
2265
2267 DO j=nsurg+nsmad,1,-1
2269 ENDDO
2270
2272
2274 END IF
2275
2276
2277
2278 IF (nfvsubs>0) THEN
2279 ii=nsubs
2280 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2281 . +
min(1,nsurg+nsmad)-1
2282 offpart=nbpart2d
2284 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
2285 ii=ii+1
2286 WRITE(str,'(I8,A11,I8)')
2287 . ii,
':FVMBAG ID ',
fvdata(i)%ID
2288 DO j=1,27
2289 ctext(j)=ichar(str(j:j))
2290 ENDDO
2291 ctext(28)=0
2293
2295 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2296 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2297
2299
2301 DO j=1,
fvdata(i)%NPOLH_ANIM
2303 ENDDO
2304 offpart=offpart+
fvdata(i)%NPOLH_ANIM
2305
2307
2309 ENDIF
2310 ENDDO
2311 ENDIF
2312
2313
2314
2315 WRITE(str,'(I8,A1)') subset(nsubs)%ID,':'
2316 DO j=1,9
2317 ctext(j)=ichar(str(j:j))
2318 ENDDO
2319 ib = 9
2320 titl = subset(nsubs)%TITLE
2321 DO j=1,ltitl
2322 IF(titl(j:j)/=' ') ib = j+9
2323 ctext(j+9)=ichar(titl(j:j))
2324 ENDDO
2325 ctext(ib+1)=0
2327
2328 CALL write_i_c(subset(nsubs)%PARENT-1,1)
2329
2331 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2332 . +
min(1,nsurg+nsmad)+nfvsubs,1)
2333
2334 DO j=1,subset(nsubs)%NCHILD
2335 CALL write_i_c(subset(nsubs)%CHILD(j)-1,1)
2336 ENDDO
2337 IF (nrbody>0)
2339 IF (nsect>0)
2341 IF (nrwall>0)
2343 IF (nsurg+nsmad>0)
2345 . +
min(1,nrwall)-1,1)
2346 IF (nfvsubs>0) THEN
2347 ii=nsubs+
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2348 . +
min(1,nsurg+nsmad)
2351 ii=ii+1
2352 ENDDO
2353 ENDIF
2354
2355 n1=0
2356 n2=0
2357 n3=0
2358 DO j=1,subset(i)%NPART
2359 k = subset(i)%PART(j)
2360 IF(mater(k)>0.AND.mater(k)<=m01)THEN
2361 n1=n1+1
2362 ELSEIF(mater(k)>m1.AND.mater(k)<=m2)THEN
2363 n2=n2+1
2364 ELSEIF(mater(k)>m2)THEN
2365 n3=n3+1
2366 ENDIF
2367 ENDDO
2368
2369 n1=n1+ncuts
2370
2372 DO j=1,subset(i)%NPART
2373 k = subset(i)%PART(j)
2374 IF(mater(k)>0.AND.mater(k)<=m01)
2376 ENDDO
2377
2378 DO j=1,ncuts
2379 CALL write_i_c(m1-nrwall-nsect-nsurg-nsmad-j,1)
2380 ENDDO
2381
2383 DO j=1,subset(i)%NPART
2384 k = subset(i)%PART(j)
2385 IF(mater(k)>m1.AND.mater(k)<=m2)
2387 ENDDO
2388
2390 DO j=1,subset(i)%NPART
2391 k = subset(i)%PART(j)
2392 IF(mater(k)>m2)
CALL write_i_c(mater(k)-m2-1,1)
2393 ENDDO
2394 ENDIF
2395
2396
2397
2400
2401
2402
2404 DO i=1,nummat
2405 WRITE(str,'(I8,A1)') ipm(1,i),':'
2406 DO j=1,9
2407 ctext(j)=ichar(str(j:j))
2408 ENDDO
2409 ib = 9
2410 CALL fretitl2(titl,ipm(npropmi-ltitr+1,i),ltitl)
2411 DO j=1,ltitl
2412 IF(titl(j:j)/=' ') ib = j+9
2413 ctext(j+9)=ichar(titl(j:j))
2414 ENDDO
2415 ctext(ib+1)=0
2417 ENDDO
2418
2419
2420
2422 DO i=1,nummat
2424 ENDDO
2425
2426
2427
2429 DO i=1,numgeo
2430 WRITE(str,'(I8,A1)') igeo(1,i),':'
2431 DO j=1,9
2432 ctext(j)=ichar(str(j:j))
2433 ENDDO
2434 ib = 9
2435 CALL fretitl2(titl,igeo(npropgi-ltitr+1,i),ltitl)
2436 DO j=1,ltitl
2437 IF(titl(j:j)/=' ') ib = j+9
2438 ctext(j+9)=ichar(titl(j:j))
2439 ENDDO
2440 ctext(ib+1)=0
2442 ENDDO
2443
2444
2445
2447 DO i=1,numgeo
2449 ENDDO
2450
2451
2452
2453
2454
2455 IF(isph3d==1.OR.numsph_t+maxpjet==0) GOTO 700
2456
2457
2458
2459 DO i=1,npart
2460 mater(i)=-mater(i)
2461 ENDDO
2462
2463
2464
2465 DO i=1,numsph+maxpjet
2466 mater(ipartsp(i))=4
2467 el2fa(i)=0
2468 ENDDO
2469
2470 nbpart = 0
2471 DO i=1,npart
2472 IF(mater(i)==4)nbpart = nbpart + 1
2473 ENDDO
2474
2475
2476
2481
2482
2483
2484 CALL parsor0(iad ,iparg ,mater ,el2fa ,
2485 3 kxsp ,ipartsp )
2486
2487
2488
2489 nnn = numsph+maxpjet
2490 CALL anioff0(elbuf_tab ,iparg ,waft ,el2fa ,nnn ,
2491 1 swaft, sph2sol)
2492
2493
2494
2496
2497
2498
2499 DO i=1,npart
2500 IF(mater(i)==4)THEN
2501 WRITE(str,'(I8,A1)')ipart(4,i),':'
2502 DO j=1,9
2503 ctext(j)=ichar(str(j:j))
2504 ENDDO
2505 ib = 9
2506 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
2507 DO j=1,ltitl
2508 IF(titl(j:j)/=' ') ib = j+9
2509 ctext(j+9)=ichar(titl(j:j))
2510 ENDDO
2511 ctext(ib+1)=0
2513 ENDIF
2514 ENDDO
2515
2516
2517
2518 IF(anim_m==1.OR.anim_se(3)==1.OR.
2519 . anim_se(25)==1)THEN
2521 2 mas ,pm ,el2fa ,ipart ,ipartsp )
2522 ENDIF
2523
2524
2525
2526 ctext(81)=0
2528 IF (dsanim==1) THEN
2529 DO i=1,nlevel
2531 ENDDO
2532 ELSEIF (decani==1) THEN
2534 ENDIF
2535
2536
2537
2538 nnn = numsph+maxpjet
2539 DO i = 0,mx_ani
2540 ifunc = i
2541 IF(ifunc==0.OR.(ifunc>0.AND.anim_se(i)==1)) THEN
2542 CALL dfunc0(elbuf_tab ,waft ,ifunc ,iparg ,pm ,
2543 . el2fa ,nnn ,spbuf ,ipart ,ipartsp )
2544 ENDIF
2545 ENDDO
2546 IF (decani==1) THEN
2547 DO i=1,numsph
2548 func(i)=zero
2549 ENDDO
2550
2551 off=1
2552 CALL delsub(1, cepsp, 1, off, numsph,
2553 . el2fa, func )
2554
2555 DO i=1,numsph
2556 r4=func(i)
2558 ENDDO
2559 r4=zero
2560 DO i=1,maxpjet
2562 ENDDO
2563 ENDIF
2564
2565
2566
2567 DO i = 1,mx_ani
2568 ifunc = i
2569 IF(anim_st(i)==1)THEN
2570 CALL tensor0(elbuf_tab ,iparg ,ifunc ,pm ,el2fa ,
2571 2 nnn ,waft ,ipart ,ipartsp )
2572 ENDIF
2573 ENDDO
2574
2575
2576
2577 IF(anim_m==1)THEN
2578 DO i=1,nnn
2579 r4 = mas(i)
2581 ENDDO
2582 ENDIF
2583
2584
2585
2586 CALL delnumb0(iparg,el2fa,nnn ,waft,kxsp )
2587
2588
2589
2590 DO i=1,npart
2591 IF(mater(i)==4)THEN
2592 IF (ipart(3,i)<nsubs) THEN
2594 ELSE
2596 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2597 . +
min(1,nsurg+nsmad)-1,1)
2598 END IF
2599 END IF
2600 ENDDO
2601 DO i=1,npart
2602 IF(mater(i)==4)
CALL write_i_c(ipart(1,i),1)
2603 ENDDO
2604 DO i=1,npart
2605 IF(mater(i)==4)
CALL write_i_c(ipart(2,i),1)
2606 ENDDO
2607
2608
2609
2610 j=m3
2611 DO i=1,npart
2612 IF(mater(i)==4)THEN
2613 j=j+1
2614 mater(i)=j
2615 ENDIF
2616 ENDDO
2617 m4=j
2618 IF (nsubs==1) THEN
2619
2620 n0=0
2621 DO k=1,npart
2622 IF(mater(k)>m3)THEN
2623 n0=n0+1
2624 ENDIF
2625 ENDDO
2626
2628 DO k=1,npart
2629 IF(mater(k)>m3)
2631 ENDDO
2632 ELSE
2633
2634
2635
2636 DO i=1,nsubs-1
2637
2638 n0=0
2639 DO j=1,subset(i)%NPART
2640 k = subset(i)%PART(j)
2641 IF(mater(k)>m3)THEN
2642 n0=n0+1
2643 ENDIF
2644 ENDDO
2645
2647 DO j=1,subset(i)%NPART
2648 k = subset(i)%PART(j)
2649 IF(mater(k)>m3)
2651 ENDDO
2652 ENDDO
2653
2654
2655
2656
2657 n0=0
2658 DO j=1,subset(i)%NPART
2659 k = subset(i)%PART(j)
2660 IF(mater(k)>m3)THEN
2661 n0=n0+1
2662 ENDIF
2663 ENDDO
2664
2666 DO j=1,subset(i)%NPART
2667 k = subset(i)%PART(j)
2668 IF(mater(k)>m3)
2670 ENDDO
2671 ENDIF
2672
2673 DO i=1,npart
2674 IF(mater(i)<0)mater(i)=-mater(i)
2675 ENDDO
2676
2677 700 CONTINUE
2678
2680
2681 WRITE (iout,1000) filnam(1:filen)
2682 WRITE (istdo,1100) filnam(1:filen)
2683 1000 FORMAT (/' ANIMATION FILE:',1x,a,' WRITTEN'/
2684 . ' ---------------')
2685 1100 FORMAT (' .. ANIMATION FILE:',1x,a,' WRITTEN')
2686
2687 RETURN
subroutine anioffs(elbuf_tab, iparg, ioff, el2fa, nbf, nbpart, isph3d)
subroutine delnumbs(iparg, ixs, el2fa, nbf, inum, kxsp, isph3d)
subroutine delsub(nlevel, elsub, ilevel, offset, nel, el2fa, func)
subroutine dfuncs(elbuf_tab, func, ifunc, iparg, ixs, pm, el2fa, nbf, isph3d)
subroutine dmasanis(elbuf_tab, iparg, ixs, mas, pm, el2fa, nbf, ipart, ipartsp, isph3d)
subroutine eloff(ixs, ixq, ixc, ixp, ixt, ixr, ixtg, iparg, iactiv, time, iflag, nn, elbuf_tab, x, temp, mcp, pm, igroups, mcp_off, igrbric, igrquad, igrsh4n, igrsh3n, igrtruss, igrbeam, igrspring, itherm_fe)
subroutine xyznor16(ixs, ixs10, ixs20, ixs16, x)
subroutine xyz16(ixs, ixs10, ixs20, ixs16, x)
subroutine invert(matrix, inverse, n, errorflag)
subroutine ymax(idn, fac, npc, pld, stiffmin, stiffmax, stiffini, stiffavg)
type(fvbag_data), dimension(:), allocatable fvdata
character(len=outfile_char_len) outfile_name
integer, parameter nchartitle
subroutine ani_txt50(text, len)
subroutine ani_txt(text, len)
subroutine anioff0(elbuf_tab, iparg, ioff, el2fa, nbf, sioff, sph2sol)
subroutine anioffc(elbuf_tab, iparg, ioff, el2fa, nbf)
subroutine aniofff(elbuf_tab, iparg, ioff, el2fa, nbf, ioffx1)
subroutine aniskew(elbuf_tab, skew, iparg, x, ixt, ixp, ixr, geo, bufl)
subroutine aniskewf(geo, skew, iparg, ixr, lrbuf)
subroutine delnumb0(iparg, el2fa, nbf, inum, kxsp)
subroutine delnumbc(iparg, ixq, ixc, ixtg, el2fa, nbf, inum, nelcut, nbpart, idcmax)
subroutine delnumbf(iparg, ixt, ixp, ixr, el2fa, nbf, inum, inumx1)
subroutine dfunc0(elbuf_tab, func, ifunc, iparg, pm, el2fa, nbf, spbuf, ipart, ipartsp)
subroutine dfuncc(elbuf_tab, bufel, func, ifunc, iparg, ixq, ixc, ixtg, pm, el2fa, nbf)
subroutine dfuncf(elbuf_tab, func, ifunc, iparg, geo, ixt, ixp, ixr, mass, pm, el2fa, nbf, iadp, nbpart, xfunc1)
subroutine dmasani0(elbuf_tab, iparg, mas, pm, el2fa, ipart, ipartsp)
subroutine dmasanic(elbuf_tab, x, d, geo, iparg, ixq, ixc, ixtg, mas, pm, el2fa, nbf)
subroutine dmasanif(x, d, elbuf_tab, geo, iparg, ixt, ixp, ixr, mas, pm, el2fa, nbf)
subroutine donerby(irby, nerby, npby, nerbt)
subroutine donerwl(irwl, nerwl, nprw)
subroutine donesec(isect, nesct, nstrf, ixs)
subroutine donesrg(isrg, nesrg)
subroutine dparrby(lpby, npby)
subroutine dparrws(nesbw, nstrf, ixc, ixtg, x, nodcut, rwbuf, nprw, ixs)
subroutine dparsrg(nsurg, nnwl, nodcut)
subroutine drbycnt(nerby, npby)
subroutine dseccnt(nesct, nerwl, nesbw, nstrf, rwbuf, nprw, nnwl, ixs)
subroutine dsecnor(x, rwbuf, nprw)
subroutine dsphcnt(nesph, nnsph, nesphg, nnsphg)
subroutine dsphnor(kxsp, x, spbuf, nnsph)
subroutine dsrgcnt(igrsurf, nsurg, nesrg, nnsrg, nesbw)
subroutine dsrgnor(igrsurf, bufsf)
subroutine dxyzsect(nstrf, rwbuf, nprw, x, xmin, ymin, zmin, xmax, ymax, zmax, itab)
subroutine dxyzsph(nesph, kxsp, x, spbuf, snnsphg, nnsph)
subroutine dxyzsrg(nesrg, igrsurf, bufsf)
subroutine parsor0(iadd, iparg, mater, el2fa, kxsp, ipartsp)
subroutine parsorc(x, d, xnorm, iadd, cdg, bufel, iparg, ixq, ixc, ixtg, invert, el2fa, mater, ipartq, ipartc, iparttg, elbuf_tab)
subroutine parsorf(iadd, iparg, ixt, ixp, ixr, mater, el2fa, ipartt, ipartp, ipartr, nfacptx, ixedge)
subroutine parsors(iadd, iparg, ixs, mater, iparts, el2fa, insph, kxsp, ipartsp, ixs10, ixs20, ixs16, nnsph, isph3d, shft16, shftsph, nnsphg)
subroutine tensor0(elbuf_tab, iparg, itens, pm, el2fa, nbf, tens, ipart, ipartsp)
subroutine tensorc(elbuf_tab, iparg, itens, invert, nelcut, el2fa, nbf, tens, iadp, nbf_l, nbpart, x, ixc, igeo, ixtg)
subroutine velvec(v, nnwl, nnsrg)
subroutine tensors(elbuf_tab, iparg, itens, ixs, pm, el2fa, nbf, tens, x, ipart, ipartsp, isph3d, ipm)
void write_s_c(int *w, int *len)
void write_i_c(int *w, int *len)
void write_r_c(float *w, int *len)
void write_c_c(int *w, int *len)
void open_c(int *ifil, int *len, int *mod)