82 SUBROUTINE genani1(X , BUFEL , IXS , IXQ , IXC ,
83 2 IXT , IXP , IXR , IXTG , SWAFT ,
84 3 IPARG , PM , GEO , SKEW , ITAB ,
85 4 LPBY , NPBY , NSTRF , RWBUF , NPRW ,
86 5 IPART , IPARTS, IPARTQ , IPARTC ,
87 6 IPARTT , IPARTP , IPARTR, IPARTTG ,
89 8 IGRSURF, BUFSF , IPARTX, KXSP , IXSP ,
90 9 IPARTSP, SPBUF , IXS10 , IXS20 , IXS16 ,
91 A IPM , IGEO , SMATER, SEL2FA , SNFACPTX,
92 B SIXEDGE, SOFFX1 , SNUMX1, SXNORM , SINVERT ,
93 C SFUNC1 , SIAD , NMANIM, D , SMAS ,
94 D MS , FXANI , MBUFEL, MDEPL , NLEVEL ,
95 E ELSUB , DSANIM , NELEM , CEP , CEPSP ,
96 F NOM_OPT,PTR_NOPT_RWALL,PTR_NOPT_SECT,
97 G ELBUF_TAB,SPH2SOL,SUBSET)
107 use element_mod ,
only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
111#include "implicit_f.inc"
115#include "com01_c.inc"
116#include "com04_c.inc"
117#include "com09_c.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"
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, , SOFFX1, SNUMX1, SXNORM, SINVERT,
139 . SFUNC1, SIAD, NMANIM, SMAS, FXANI(2,*),
140 . NLEVEL, ELSUB(,*),DSANIM, NELEM, CEP(*), CEPSP(*),
142 INTEGER NOM_OPT(LNOPT1,*),PTR_NOPT_RWALL,PTR_NOPT_SECT
145 . x(3,*), bufel(*), pm(npropm,*), geo(npropg,*),
146 . skew(lskew,*), rwbuf(nrwlp,*), rby(nrby,*), bufsf(*),
147 . spbuf(*), d(3,*), ms(*), mbufel(lbufel,*),
149 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
151 TYPE (SUBSET_) ,
DIMENSION(NSUBS) :: SUBSET
152 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
156 INTEGER LTITL, ISPH3D, I161, I16A, I16B, I16C, I16D, I16E, I16F,
157 . i16g, i16h, i16i, filen, ctext(200), nskewa
158 . mater(smater), nbpart, nbf, nbf_l, el2fa(sel2fa), nodcut,
159 . nelcut, ncuts, numsph_t, nesct, nerwl
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, snnsphg, 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),
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,
178 . CDG(3), WAFT(SWAFT), XMIN, YMIN, ZMIN, XMAX, YMAX, ZMAX,
179 . XNORM(SXNORM), XFUNC1(SFUNC1), MAS(SMAS), RID
181 CHARACTER FILNAM*103, CHANIM*3, CHANIM1*4, CTMOD*100
183 CHARACTER(LEN=NCHARTITLE) :: TITL
187 . FUNC(MAX(NELEM,NUMSPH))
188 CHARACTER*33 CTITR(MAX(1,NLEVEL))
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
205 i16g=i16f+lnopt1*njoint
206 i16h=i16g+lnopt1*nsect
207 i16i=i16h+lnopt1*nlink
212 IF(anim_vers>=50)
THEN
213 IF(ianim>=10000)ianim=1
214 WRITE(chanim1,
'(I4.4)')ianim
216 . rootnam(1:rootlen)//
'_'//chanim1//
'.ani'
219 IF(ianim>=1000)ianim=1
220 WRITE(chanim,
'(I3.3)')ianim
222 . rootnam(1:rootlen)//
'A'//chanim
227 ctext(i)=ichar(filnam(i:i))
230 CALL open_c(ctext,filen,0)
234 WRITE(ctitr(1),
'(A25)')
'SPMD Domain Decomposition'
236 WRITE(ctitr(i),
'(A30,I3)')
'Impl. graph - Dom. Dec. Level ',i
242 nskewa=numelp + numelt + numskw
243 nb1d =numelp + numelt + 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
251 ELSEIF(nint(geo(12,ixr(1,i)))==12)
THEN
276 nbpart = nbpart + mater(i)
279 nbf = numelq + numelc + numeltg
282 DO i=1,numelq + numelc + numeltg + 1
297 IF(nsect+nrwall>0)
THEN
298 CALL dseccnt(nesct,nerwl,nesbw2,nstrf,
299 1 rwbuf ,nprw,nnwl,ixs)
306 .
CALL dsrgcnt(igrsurf, nsurg,nesrg,nnsrg,nesbw2)
313 IF (isph3d==1.AND.numsph_t+maxpjet>0)
314 .
CALL dsphcnt(nesph,nnsph,nesphg,nnsphg)
325 idmax=max(idmax,itab(i))
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
342 .
ALLOCATE(fvel2fa(nfvtr), fvinum(nfvtr))
348 numels16_t = numels16
357 CALL ani_txt(
'Mode number=',12)
359 CALL ani_txt(
'Radioss Run=',12)
364 IF(numels_t+isph3d*(numsph_t+maxpjet)==0)
THEN
369 iflag1d = numelt_t+numelp_t+numelr_t+nanim1d+nrbody
370 IF (iflag1d/=0) iflag1d = 1
385 . (numsph_t+maxpjet/=0))
THEN
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
411 nce_ani=nce_ani+nlevel
412 ELSEIF (decani==1)
THEN
418 IF(nbf+nelcut+nesbw2+nfvtr==0)
THEN
428 CALL aniskew(elbuf_tab,skew ,iparg ,x ,ixt
429 2 ixp ,ixr ,geo ,bufl )
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)))
445 ymax = max(ymax,(x(2,n)-d(2,n)))
446 zmax = max(zmax,(x(3,n)-d(3,n)))
449 cdg(1) = half * (xmax + xmin)
450 cdg(2) = half * (ymax + ymin)
451 cdg(3) = half * (zmax + zmin)
463 2 nstrf,rwbuf,nprw ,x,xmin,
464 3 ymin,zmin,xmax,ymax,zmax,
467 IF (nsurg>0)
CALL dxyzsrg(nesrg,igrsurf,bufsf)
470 IF (isph3d*(numsph_t+maxpjet)>0)
471 .
CALL dxyzsph(nesph,kxsp,x,spbuf,snnsphg,nnsph)
475 2
CALL xyz16(ixs,ixs10,ixs20,ixs16,x)
480 r4=
fvdata(i)%NOD_ANIM(1,j)
482 r4=
fvdata(i)%NOD_ANIM(2,j)
484 r4=
fvdata(i)%NOD_ANIM(3,j)
507 nbid1=numnod+nodcut+nsect+nrwall+nnwl
508 . +nnsrg+nnsmd+nnsph+2*numels16+nfvnod+1
516 CALL parsorc(x ,d, xnorm,iad ,cdg ,
517 . bufel,iparg,ixq ,ixc ,ixtg ,
519 . mater,ipartq,ipartc,iparttg,
522 IF(nsect+nrwall>0)
CALL dparrws(
523 1 nesbw2,nstrf, ixc ,
524 2 ixtg ,x ,nodcut,rwbuf,nprw,
527 IF (nsurg>0)
CALL dparsrg(nsurg,nnwl,nodcut)
533 ALLOCATE(itagt(
fvdata(i)%NNTR))
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
553 IF (inod(2)/=inod(1)) nnd=nnd+1
554 IF (inod(3)/=inod(1).AND.
555 . inod(3)/=inod(2)) nnd=nnd+1
577 CALL anioffc(elbuf_tab,iparg,waft ,el2fa,nbf )
584 ALLOCATE(offtr(nfvtr))
593 DO n=
fvdata(i)%IFVTADR(kk),
594 .
fvdata(i)%IFVTADR(kk+1)-1
597 n1=
fvdata(i)%IFVTRI_ANIM(1,nn)
598 n2=
fvdata(i)%IFVTRI_ANIM(2,nn)
599 n3=
fvdata(i)%IFVTRI_ANIM(3,nn)
601 IF (n2/=n1) nnd=nnd+1
602 IF (n3/=n2.AND.n3/=n1) nnd=nnd+1
605 IF (nnd==3) offtr(nn)=1
622 CALL donesec(isect,nesct1,nstrf,ixs)
629 CALL write_i_c(nelcut+nbf+nesct+nerwl1,1)
635 CALL write_i_c(nelcut+nbf+nesct+nerwl+nesrg1,1)
640 fviad=nelcut+nbf+nesct+nerwl+nesrg+nesmd1
642 ALLOCATE(itagt(
fvdata(i)%NNTR))
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
672 idpart2dmax=max(idpart2dmax,ipart(4,i))
673 WRITE(str,
'(I8,A1)')ipart(4,i
':'
675 ctext(j)=ichar(str(j:j))
678 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
680 IF(titl(j:j)/=
' ') ib = j+9
681 ctext(j+9)=ichar(titl(j:j))
694 WRITE(str,
'(I8,A2,A7)') isect,
': ',
'Section'
696 ctext(j)=ichar(str(j:j))
704 WRITE(str,
'(I8,A2)') nom_opt(1,ptr_nopt_sect+isect),
': '
706 ctext(j)=ichar(str(j:j))
712 ctext(j+10)=ichar(titl(j:j))
721 WRITE(str,
'(I8,A2,A10)') irwl,
': ',
'Rigid Wall'
723 ctext(j)=ichar(str(j:j))
731 WRITE(str,
'(I8,A2)') nom_opt(1,ptr_nopt_rwall+irwl),
': '
733 ctext(j)=ichar(str(j:j))
736 CALL fretitl2(titl,nom_opt(lnopt1-ltitr+1,ptr_nopt_rwall+irwl),
739 ctext(j+10)=ichar(titl(j:j))
748 IF (igrsurf(isrf)%TYPE==101)
THEN
750 WRITE(str,
'(I8,A1)') isrg,
':'
752 ctext(j)=ichar(str(j:j))
755 titl = igrsurf(isrf)%TITLE
757 IF(titl(j:j)/='
') IB = J+9
758 CTEXT(J+9)=ICHAR(TITL(J:J))
761 CALL WRITE_C_C(CTEXT,10+LTITL)
765 IDPART2DMAX = IDPART2DMAX + NSECT + NRWALL + NSURG + NSMAD + NCUTS
771 DO J=1,FVDATA(I)%NPOLH_ANIM
772 WRITE(STR,'') J+IDPART2DMAX,':
'
774 CTEXT(K)=ICHAR(STR(K:K))
777 WRITE(TITL,'(a11,i8)
') 'polyhedron
',J
779 CTEXT(K+9)=ICHAR(TITL(K:K))
782 CALL WRITE_C_C(CTEXT,10+LTITL)
784 IDPART2DMAX = IDPART2DMAX + FVDATA(I)%NPOLH_ANIM
792 CALL DSECNOR(X ,RWBUF,NPRW)
793 IF (NSURG>0) CALL DSRGNOR(IGRSURF,BUFSF)
795 IF (ISPH3D*(NUMSPH_T+MAXPJET)>0)
796 . CALL DSPHNOR(KXSP,X,SPBUF,NNSPHG)
798 . CALL XYZNOR16(IXS,IXS10,IXS20,IXS16,X)
805 CALL WRITE_S_C(INORM,3)
812 CALL WRITE_S_C(INORM,3)
819.OR..OR.
IF(ANIM_M==1ANIM_CE(3)==1
820 . ANIM_CE(25)==1)THEN
821 CALL DMASANIC(ELBUF_TAB, X ,D ,GEO ,IPARG,
822 . IXQ ,IXC ,IXTG ,MAS ,PM ,
828 IF(NBF+NELCUT+NESBW2/=0)THEN
830 WRITE(CTMOD,'(a7,i4,a8,i4,a18)
')
831 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - specific energy
'
832 CALL ANI_TXT(CTMOD,41)
833 WRITE(CTMOD,'(a7,i4,a8
')
834 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - pressure
'
835 CALL ANI_TXT(CTMOD,34)
836 WRITE(CTMOD,'(a7,i4,a8,i4,a12)
')
837 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - von mises
'
838 CALL ANI_TXT(CTMOD,35)
839 WRITE(CTMOD,'(a7,i4,a8,i4,a12)
')
840 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - stress x
'
841 CALL ANI_TXT(CTMOD,35)
842 WRITE(CTMOD,'(a7,i4,a8,i4,a12)
')
843 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - stress y
'
844 CALL ANI_TXT(CTMOD,35)
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'
862 ELSEIF (decani==1)
THEN
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
875 IF(anim_ce(i)==1)
THEN
877 CALL dfuncc(elbuf_tab,bufel,waft ,ifunc,iparg,
878 . ixq ,ixc ,ixtg ,pm ,el2fa,
907 CALL dfuncc(elbuf_tab,mbufel(1,i), waft, ifunc, iparg,
908 . ixq, ixc, ixtg, pm,
930 CALL delsub(nlevel, elsub, i, off, numelq+numelc,
933 off=off+numelq+numelc+numelt+numelp+numelr
934 CALL delsub(nlevel, elsub, i, off, numeltg,
935 . el2fa(1+numelq+numelc), func)
952 ELSEIF (decani==1)
THEN
958 CALL delsub(1, cep, 1, off, numelq+numelc,
961 off=off+numelq+numelc+numelt+numelp+numelr
962 CALL delsub(1, cep, 1, off, numeltg,
963 . el2fa(1+numelq+numelc), func)
985 WRITE(ctmod,
'(A7,I4,A8,I4,A15)')
986 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Displacement'
990 nnnsrg=nnsrg+nnsmd+nnsph+2*numels16
992 CALL velvec(mdepl(1,i),nnwl,nnnsrg)
997 IF((nbf+nelcut+nesbw2/=0))
THEN
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)'
1013 IF(anim_ct(i)==1)
THEN
1014 CALL tensorc(elbuf_tab ,iparg,ifunc,
1015 .
invert,nelcut,el2fa,nbf ,waft ,
1017 . x, ixc, igeo,ixtg )
1054 DO j=1,nesbw2+nelcut
1073 wa4(m)=wa4(m)+(rby(15,n)-ms(m))
1085 DO n=1,nsect+nrwall+nnwl+nnsrg+nnsmd+sznnsph+2*sz16
1101 DO i=1,nodcut+nsect+nrwall+nnwl+nnsrg+nnsmd+sznnsph+2*sz16
1107 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
1108 DO j=1,
fvdata(i)%NNS_ANIM
1121 CALL delnumbc(iparg,ixq ,ixc ,ixtg ,
1122 . el2fa,nbf ,waft ,nelcut,
1131 DEALLOCATE(fvel2fa, fvinum)
1144 IF(mater(i)==1)
THEN
1145 IF (ipart(3,i)<nsubs)
THEN
1149 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1150 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1156 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1157 . +
min(1,nsurg+nsmad)-1,1)
1167 . +
min(1,nrwall)-1,1)
1171 . +
min(1,nrwall)-1,1)
1175 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1176 . +
min(1,nsurg+nsmad)-1
1178 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
1180 DO j=1,
fvdata(i)%NPOLH_ANIM
1188 IF(mater(i)==1)
CALL write_i_c(ipart(1,i),1)
1190 DO i=1,ncuts+nrwall+nsect+nsurg+nsmad
1198 IF(mater(i)==1)
CALL write_i_c(ipart(2,i),1)
1200 DO i=1,ncuts+nrwall+nsect+nsurg+nsmad
1211 IF (numels_t+numels16_t+isph3d*(numsph_t+maxpjet)>=0.OR.
1212 . (isph3d==1.AND.numsph_t+maxpjet>0))
THEN
1214 nse_ani=nse_ani+nlevel
1215 ELSEIF (decani==1)
THEN
1219 IF(numels_t+numels16_t+isph3d*(numsph_t+maxpjet)==0)
GOTO 400
1236 DO i=1,numsph+maxpjet
1238 el2fa(numels+3*numels16+i)=0
1244 nbpart = nbpart + mater(i)/2
1249 CALL write_i_c(numels+isph3d*(numsph+maxpjet)
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
1261 CALL parsors(iad ,iparg ,ixs ,mater,iparts,
1263 3 insph ,kxsp ,ipartsp,
1264 4 ixs10 ,ixs20 ,ixs16 ,nnsph ,isph3d,
1265 5 shft16 ,shftsph,nnsphg )
1269 nnn = numels+isph3d*(numsph+maxpjet)+3*numels16
1270 CALL anioffs(elbuf_tab ,iparg,waft ,el2fa ,
1271 . nnn ,nbpart,isph3d )
1281 WRITE(str,
'(I8,A1)')ipart(4,i),
':'
1283 ctext(j)=ichar(str(j:j))
1286 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
1288 IF(titl(j:j)/=
' ') ib = j+9
1289 ctext(j+9)=ichar(titl(j:j))
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 )
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'
1333 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1334 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress XZ'
1341 ELSEIF (decani==1)
THEN
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
1353 IF(anim_se(i)==1)
THEN
1354 CALL dfuncs(elbuf_tab ,waft ,ifunc ,iparg ,
1355 2 ixs ,pm ,el2fa ,nnn ,isph3d )
1371 CALL dfuncs(mbufel(1,i), waft, ifunc, iparg,
1372 . ixs,pm ,el2fa, nnn,isph3d)
1382 CALL delsub(nlevel, elsub, i, off, numels
1390 ELSEIF (decani==1)
THEN
1396 CALL delsub(1, cep, 1, off, numels,
1401 CALL delsub(1, cepsp,1 ,off, numsph,
1402 . el2fa(1+numels), func)
1414 WRITE(ctmod,
'(A7,I4,A8,I4,A9)')
1415 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress'
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 )
1450 CALL delnumbs(iparg,ixs ,el2fa,nnn ,waft ,
1457 IF (ipart(3,i)<nsubs)
THEN
1461 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1462 . +
min(1,nsurg+nsmad)-1,1)
1467 IF(mater(i)==2)
CALL write_i_c(ipart(1,i),1)
1470 IF(mater(i)==2)
CALL write_i_c(ipart(2,i),1)
1484 IF(nb1d+nanim1d+nerby==0)
GOTO 600
1500 IF (nfacptx(1,iprt)>0)
THEN
1509 nbpart = nbpart + mater(i)/3
1521 nfe_ani=nfe_ani+nlevel
1522 ELSEIF (decani==1)
THEN
1533 CALL parsorf(iad ,iparg,ixt ,ixp ,ixr ,
1535 . ipartt,ipartp,ipartr,nfacptx,ixedge)
1542 CALL aniofff(elbuf_tab,iparg,waft,el2fa,
1556 CALL donerby(irby,nerby1,npby,nerbt)
1564 WRITE(str,
'(I8,A1)')ipart(4,i),
':'
1566 ctext(j)=ichar(str(j:j))
1570 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
1572 IF(titl(j:j)/=
' ') ib = j+9
1573 ctext(j+9)=ichar(titl(j:j))
1583 WRITE(str,
'(I8,A2,A10)') irby,
': ',
'Rigid Body'
1585 ctext(j)=ichar(str(j:j))
1594 WRITE(str,
'(I8,A2)') nom_opt(1,irby),
': '
1596 ctext(j)=ichar(str(j:j))
1599 CALL fretitl2(titl,nom_opt(lnopt1-ltitr+1,irby),
1603 ctext(j+10)=ichar(titl(j:j))
1612 IF(anim_m==1.OR.anim_fe(3)==1)
THEN
1613 CALL dmasanif(x ,d ,elbuf_tab,geo ,iparg,
1614 . ixt ,ixp ,ixr ,mas ,pm ,
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
'
1626 CALL ANI_TXT(CTMOD,35)
1627 WRITE(CTMOD,'(a7,i4,a8,i4,a12)
')
1628 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - stress x
'
1629 CALL ANI_TXT(CTMOD,35)
1630 WRITE(CTMOD,'(a7,i4,a8,i4,a12)
')
1631 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - stress y
'
1632 CALL ANI_TXT(CTMOD,35)
1633 WRITE(CTMOD,'(a7,i4,a8,i4,a12)
')
1634 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - stress z
'
1635 CALL ANI_TXT(CTMOD,35)
1636 WRITE(CTMOD,'(a7,i4,a8,i4,a12)
')
1637 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - stress xy
'
1638 CALL ANI_TXT(CTMOD,35)
1639 WRITE(CTMOD,'(a7,i4,a8,i4,a12)
')
1640 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - stress yz
'
1641 CALL ANI_TXT(CTMOD,35)
1642 WRITE(CTMOD,'(a7,i4,a8,i4,a12)
')
1643 . 'fxbody
',FXANI(1,I),' - mode
',FXANI(2,I),' - stress xz
'
1644 CALL ANI_TXT(CTMOD,35)
1648 CALL ANI_TXT(CTITR(I),33)
1650 ELSEIF (DECANI==1) THEN
1651 CALL ANI_TXT(CTITR(1),25)
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)))
1661 IF(ANIM_FE(I)==1) THEN
1663 CALL DFUNCF(ELBUF_TAB,WAFT ,IFUNC ,IPARG ,GEO ,
1664 . IXT ,IXP ,IXR ,MAS ,PM ,
1665 . EL2FA ,NB1D ,IAD ,NBPART ,XFUNC1)
1668 CALL WRITE_R_C(R4,1)
1684! CALL DFUNCF(MBUFEL(1,I), WAFT, IFUNC, IPARG, GEO,
1685! . IXT, IXP, IXR, MAS, PM,
1686! . EL2FA, NB1D, IAD, NBPART,
1690 CALL WRITE_R_C(R4,1)
1700 OFF=1+NUMELS+NUMELQ+NUMELC
1701 CALL DELSUB(NLEVEL, ELSUB, I, OFF, NUMELT+NUMELP+NUMELR,
1706 CALL WRITE_R_C(R4,1)
1710 CALL WRITE_R_C(R4,1)
1713 CALL WRITE_R_C(R4,1)
1716 ELSEIF (DECANI==1) THEN
1721 OFF=1+NUMELS+NUMELQ+NUMELC
1722 CALL DELSUB(1, CEP, 1, OFF, NUMELT+NUMELP+NUMELR,
1727 CALL WRITE_R_C(R4,1)
1731 CALL WRITE_R_C(R4,1)
1734 CALL WRITE_R_C(R4,1)
1742 CALL ANISKEWF(GEO,SKEW,IPARG,IXR,LRBUF)
1755 CALL WRITE_R_C(R4,1)
1759 CALL WRITE_R_C(R4,1)
1765 CALL DELNUMBF(IPARG,IXT ,IXP ,IXR ,
1766 . EL2FA,NB1D ,WAFT ,
1776 IF (IPART(3,I)<NSUBS) THEN
1777 CALL WRITE_I_C(IPART(3,I)-1,1)
1779 CALL WRITE_I_C(NSUBS
1780 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1781 . +MIN(1,NSURG+NSMAD)-1,1)
1787 CALL WRITE_I_C(NSUBS-1,1)
1790 IF(MATER(I)==3)CALL WRITE_I_C(IPART(1,I),1)
1796 IF(MATER(I)==3)CALL WRITE_I_C(IPART(2,I),1)
1818 J=J+NCUTS+NRWALL+NSECT+NSURG+NSMAD
1821 IF(MATER(I)==-2)THEN
1828 IF(MATER(I)==-3)THEN
1837 CALL WRITE_I_C(NSUBS
1838 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1839 . +MIN(1,NSURG+NSMAD)+NFVSUBS,1)
1852 WRITE(STR,'(i8,a14)
')MXSUBS+1,':rbodies model
'
1854 CTEXT(J)=ICHAR(STR(J:J))
1857 CALL WRITE_C_C(CTEXT,10+LTITL)
1859 CALL WRITE_I_C(NSUBS
1860 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1861 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
1870 CALL WRITE_I_C(N1,1)
1872 CALL WRITE_I_C(N2,1)
1874 CALL WRITE_I_C(N3,1)
1876 CALL WRITE_I_C(M3-J-M2,1)
1883 WRITE(STR,'(i8,a15)
')MXSUBS+MIN(1,NRBODY)+1,':sections model
'
1885 CTEXT(J)=ICHAR(STR(J:J))
1888 CALL WRITE_C_C(CTEXT,10+LTITL)
1890 CALL WRITE_I_C(NSUBS
1891 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1892 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
1901 CALL WRITE_I_C(N1,1)
1903 CALL WRITE_I_C(M1-NSURG-NSMAD-NRWALL-J,1)
1906 CALL WRITE_I_C(N2,1)
1908 CALL WRITE_I_C(N3,1)
1914 WRITE(STR,'(i8,a13)
')MXSUBS
1915 . +MIN(1,NSECT)+MIN(1,NRBODY)+1,':rwalls model
'
1917 CTEXT(J)=ICHAR(STR(J:J))
1920 CALL WRITE_C_C(CTEXT,10+LTITL)
1922 CALL WRITE_I_C(NSUBS
1923 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1924 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
1933 CALL WRITE_I_C(N1,1)
1935 CALL WRITE_I_C(M1-NSURG-NSMAD-J,1)
1938 CALL WRITE_I_C(N2,1)
1940 CALL WRITE_I_C(N3,1)
1945 IF (NSURG+NSMAD>0) THEN
1946 WRITE(STR,'(i8,a15)
')MXSUBS
1947 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)+1,
1950 CTEXT(J)=ICHAR(STR(J:J))
1953 CALL WRITE_C_C(CTEXT,10+LTITL)
1955 CALL WRITE_I_C(NSUBS
1956 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1957 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
1966 CALL WRITE_I_C(N1,1)
1967 DO J=NSURG+NSMAD,1,-1
1968 CALL WRITE_I_C(M1-J,1)
1971 CALL WRITE_I_C(N2,1)
1973 CALL WRITE_I_C(N3,1)
1980 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1981 . +MIN(1,NSURG+NSMAD)
1984 IF (FVDATA(I)%NPOLH_ANIM>0) THEN
1986 WRITE(STR,'(i8,a11,i8)
')
1987 . II,':fvmbag
id ',FVDATA(I)%ID
1989 CTEXT(J)=ICHAR(STR(J:J))
1992 CALL WRITE_C_C(CTEXT,10+LTITL)
1994 CALL WRITE_I_C(NSUBS
1995 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1996 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2000 CALL WRITE_I_C(FVDATA(I)%NPOLH_ANIM,1)
2001 DO J=1,FVDATA(I)%NPOLH_ANIM
2002 CALL WRITE_I_C(OFFPART+J-1,1)
2004 OFFPART=OFFPART+FVDATA(I)%NPOLH_ANIM
2015 WRITE(STR,'(i8,a13)
')1,':global model
'
2017 CTEXT(J)=ICHAR(STR(J:J))
2020 CALL WRITE_C_C(CTEXT,10+LTITL)
2022 CALL WRITE_I_C(-1,1)
2024 CALL WRITE_I_C(MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2025 . +MIN(1,NSURG+NSMAD)+NFVSUBS,1)
2028 . CALL WRITE_I_C(NSUBS-1,1)
2030 . CALL WRITE_I_C(NSUBS+MIN(1,NRBODY)-1,1)
2032 . CALL WRITE_I_C(NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)-1,1)
2034 . CALL WRITE_I_C(NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)
2035 . +MIN(1,NRWALL)-1,1)
2037 II=MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2038 . +MIN(1,NSURG+NSMAD)+1
2041 CALL WRITE_I_C(II-1,1)
2049.AND.
IF(MATER(K)>0MATER(K)<=M01)THEN
2051.AND.
ELSEIF(MATER(K)>M1MATER(K)<=M2)THEN
2053 ELSEIF(MATER(K)>M2)THEN
2060 CALL WRITE_I_C(N1,1)
2062.AND.
IF(MATER(K)>0MATER(K)<=M01)
2063 . CALL WRITE_I_C(MATER(K)-1,1)
2067 CALL WRITE_I_C(M1-NRWALL-NSECT-NSURG-NSMAD-J,1)
2070 CALL WRITE_I_C(N2,1)
2072.AND.
IF(MATER(K)>M1MATER(K)<=M2)
2073 . CALL WRITE_I_C(MATER(K)-M1-1,1)
2076 CALL WRITE_I_C(N3,1)
2078 IF(MATER(K)>M2)CALL WRITE_I_C(MATER(K)-M2-1,1)
2086 IF (SUBSET(I)%ID > MXSUBS) MXSUBS=SUBSET(I)%ID
2087 WRITE(STR,'(i8,a1)
')SUBSET(I)%ID,':
'
2089 CTEXT(J)=ICHAR(STR(J:J))
2092 TITL = SUBSET(I)%TITLE
2094 IF(TITL(J:J)/=' ') IB = J+9
2095 CTEXT(J+9)=ICHAR(TITL(J:J))
2098 CALL WRITE_C_C(CTEXT,10+LTITL)
2100 IF (SUBSET(I)%PARENT < NSUBS) THEN
2101 CALL WRITE_I_C(SUBSET(I)%PARENT-1,1)
2103 CALL WRITE_I_C(SUBSET(I)%PARENT
2104 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2105 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2108 CALL WRITE_I_C(SUBSET(I)%NCHILD,1)
2110 DO J=1,SUBSET(I)%NCHILD
2111 CALL WRITE_I_C(SUBSET(I)%CHILD(J)-1,1)
2117 DO J=1,SUBSET(I)%NPART
2118 K = SUBSET(I)%PART(J)
2119.AND.
IF(MATER(K)>0MATER(K)<=M01)THEN
2121.AND.
ELSEIF(MATER(K)>M1MATER(K)<=M2)THEN
2123 ELSEIF(MATER(K)>M2)THEN
2128 CALL WRITE_I_C(N1,1)
2129 DO J=1,SUBSET(I)%NPART
2130 K = SUBSET(I)%PART(J)
2131.AND.
IF(MATER(K)>0MATER(K)<=M01)
2132 . CALL WRITE_I_C(MATER(K)-1,1)
2135 CALL WRITE_I_C(N2,1)
2136 DO J=1,SUBSET(I)%NPART
2137 K = SUBSET(I)%PART(J)
2138.AND.
IF(MATER(K)>M1MATER(K)<=M2)
2139 . CALL WRITE_I_C(MATER(K)-M1-1,1)
2142 CALL WRITE_I_C(N3,1)
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)
2152 WRITE(STR,'(i8,a14)
')MXSUBS+1,':rbodies model
'
2154 CTEXT(J)=ICHAR(STR(J:J))
2157 CALL WRITE_C_C(CTEXT,10+LTITL)
2159 CALL WRITE_I_C(NSUBS
2160 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2161 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2170 CALL WRITE_I_C(N1,1)
2172 CALL WRITE_I_C(N2,1)
2174 CALL WRITE_I_C(N3,1)
2176 CALL WRITE_I_C(M3-J-M2,1)
2183 WRITE(STR,'(i8,a15)
')MXSUBS+MIN(1,NRBODY)+1,':sections model
'
2185 CTEXT(J)=ICHAR(STR(J:J))
2188 CALL WRITE_C_C(CTEXT,10+LTITL)
2190 CALL WRITE_I_C(NSUBS
2191 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2192 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2201 CALL WRITE_I_C(N1,1)
2203 CALL WRITE_I_C(M1-NSURG-NSMAD-NRWALL-J,1)
2206 CALL WRITE_I_C(N2,1)
2208 CALL WRITE_I_C(N3,1)
2214 WRITE(STR,'(i8,a13)
')MXSUBS
2215 . +MIN(1,NSECT)+MIN(1,NRBODY)+1,':rwalls model
'
2217 CTEXT(J)=ICHAR(STR(J:J))
2220 CALL WRITE_C_C(CTEXT,10+LTITL)
2222 CALL WRITE_I_C(NSUBS
2223 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2224 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2233 CALL WRITE_I_C(N1,1)
2235 CALL WRITE_I_C(M1-NSURG-NSMAD-J,1)
2238 CALL WRITE_I_C(N2,1)
2240 CALL WRITE_I_C(N3,1)
2245 IF (NSURG+NSMAD>0) THEN
2246 WRITE(STR,'(i8,a15)
')MXSUBS
2247 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)+1,
2250 CTEXT(J)=ICHAR(STR(J:J))
2253 CALL WRITE_C_C(CTEXT,10+LTITL)
2255 CALL WRITE_I_C(NSUBS
2256 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2257 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2266 CALL WRITE_I_C(N1,1)
2267 DO J=NSURG+NSMAD,1,-1
2268 CALL WRITE_I_C(M1-J,1)
2271 CALL WRITE_I_C(N2,1)
2273 CALL WRITE_I_C(N3,1)
2280 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2281 . +MIN(1,NSURG+NSMAD)-1
2284 IF (FVDATA(I)%NPOLH_ANIM>0) THEN
2286 WRITE(STR,'(i8,a11,i8)
')
2287 . II,':fvmbag
id ',FVDATA(I)%ID
2289 CTEXT(J)=ICHAR(STR(J:J))
2292 CALL WRITE_C_C(CTEXT,10+LTITL)
2294 CALL WRITE_I_C(NSUBS
2295 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2296 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2300 CALL WRITE_I_C(FVDATA(I)%NPOLH_ANIM,1)
2301 DO J=1,FVDATA(I)%NPOLH_ANIM
2302 CALL WRITE_I_C(OFFPART+J-1,1)
2304 OFFPART=OFFPART+FVDATA(I)%NPOLH_ANIM
2315 WRITE(STR,'(i8,a1)
') SUBSET(NSUBS)%ID,':
'
2317 CTEXT(J)=ICHAR(STR(J:J))
2320 TITL = SUBSET(NSUBS)%TITLE
2322 IF(TITL(J:J)/=' ') IB = J+9
2323 CTEXT(J+9)=ICHAR(TITL(J:J))
2326 CALL WRITE_C_C(CTEXT,10+LTITL)
2328 CALL WRITE_I_C(SUBSET(NSUBS)%PARENT-1,1)
2330 CALL WRITE_I_C(SUBSET(NSUBS)%NCHILD
2331 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2332 . +MIN(1,NSURG+NSMAD)+NFVSUBS,1)
2334 DO J=1,SUBSET(NSUBS)%NCHILD
2335 CALL WRITE_I_C(SUBSET(NSUBS)%CHILD(J)-1,1)
2338 . CALL WRITE_I_C(NSUBS-1,1)
2340 . CALL WRITE_I_C(NSUBS+MIN(1,NRBODY)-1,1)
2342 . CALL WRITE_I_C(NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)-1,1)
2344 . CALL WRITE_I_C(NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)
2345 . +MIN(1,NRWALL)-1,1)
2347 II=NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2348 . +MIN(1,NSURG+NSMAD)
2350 CALL WRITE_I_C(II-1,1)
2358 DO J=1,SUBSET(I)%NPART
2359 K = SUBSET(I)%PART(J)
2360.AND.
IF(MATER(K)>0MATER(K)<=M01)THEN
2362.AND.
ELSEIF(MATER(K)>M1MATER(K)<=M2)THEN
2364 ELSEIF(MATER(K)>M2)THEN
2371 CALL WRITE_I_C(N1,1)
2372 DO J=1,SUBSET(I)%NPART
2373 K = SUBSET(I)%PART(J)
2374.AND.
IF(MATER(K)>0MATER(K)<=M01)
2375 . CALL WRITE_I_C(MATER(K)-1,1)
2379 CALL WRITE_I_C(M1-NRWALL-NSECT-NSURG-NSMAD-J,1)
2382 CALL WRITE_I_C(N2,1)
2383 DO J=1,SUBSET(I)%NPART
2384 K = SUBSET(I)%PART(J)
2385.AND.
IF(MATER(K)>M1MATER(K)<=M2)
2386 . CALL WRITE_I_C(MATER(K)-M1-1,1)
2389 CALL WRITE_I_C(N3,1)
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)
2398 CALL WRITE_I_C(NUMMAT+1,1)
2399 CALL WRITE_I_C(NUMGEO+1,1)
2403 CALL ANI_TXT50('dummy material
',14)
2405 WRITE(STR,'(i8,a1)
') IPM(1,I),':
'
2407 CTEXT(J)=ICHAR(STR(J:J))
2410 CALL FRETITL2(TITL,IPM(NPROPMI-LTITR+1,I),LTITL)
2412 IF(TITL(J:J)/=' ') IB = J+9
2413 CTEXT(J+9)=ICHAR(TITL(J:J))
2416 CALL WRITE_C_C(CTEXT,10+LTITL)
2423 CALL WRITE_I_C(NINT(PM(19,I)),1)
2428 CALL ANI_TXT50('dummy property
',14)
2430 WRITE(STR,'(i8,a1)
') IGEO(1,I),':
'
2432 CTEXT(J)=ICHAR(STR(J:J))
2435 CALL FRETITL2(TITL,IGEO(NPROPGI-LTITR+1,I),LTITL)
2437 IF(TITL(J:J)/=' ') IB = J+9
2438 CTEXT(J+9)=ICHAR(TITL(J:J))
2441 CALL WRITE_C_C(CTEXT,10+LTITL)
2448 CALL WRITE_I_C(NINT(GEO(12,I)),1)
2455.OR.
IF(ISPH3D==1NUMSPH_T+MAXPJET==0) GOTO 700
2465 DO I=1,NUMSPH+MAXPJET
2472 IF(MATER(I)==4)NBPART = NBPART + 1
2477 CALL WRITE_I_C(NUMSPH+MAXPJET,1)
2478 CALL WRITE_I_C(NBPART,1)
2479 CALL WRITE_I_C(NSE_ANI+1,1)
2480 CALL WRITE_I_C(NST_ANI,1)
2484 CALL PARSOR0(IAD ,IPARG ,MATER ,EL2FA ,
2489 NNN = NUMSPH+MAXPJET
2490 CALL ANIOFF0(ELBUF_TAB ,IPARG ,WAFT ,EL2FA ,NNN ,
2495 CALL WRITE_I_C(IAD,NBPART)
2501 WRITE(STR,'(i8,a1)
')IPART(4,I),':
'
2503 CTEXT(J)=ICHAR(STR(J:J))
2506 CALL FRETITL2(TITL,IPART(LIPART1-LTITR+1,I),LTITL)
2508 IF(TITL(J:J)/=' ') IB = J+9
2509 CTEXT(J+9)=ICHAR(TITL(J:J))
2512 CALL WRITE_C_C(CTEXT,10+LTITL)
2518.OR..OR.
IF(ANIM_M==1ANIM_SE(3)==1
2519 . ANIM_SE(25)==1)THEN
2520 CALL DMASANI0(ELBUF_TAB ,IPARG ,
2521 2 MAS ,PM ,EL2FA ,IPART ,IPARTSP )
2527 CALL ANI_TXT('diameter
',8)
2530 CALL ANI_TXT(CTITR(I),33)
2532 ELSEIF (DECANI==1) THEN
2533 CALL ANI_TXT(CTITR(1),25)
2538 NNN = NUMSPH+MAXPJET
2541.OR..AND.
IF(IFUNC==0(IFUNC>0ANIM_SE(I)==1)) THEN
2542 CALL DFUNC0(ELBUF_TAB ,WAFT ,IFUNC ,IPARG ,PM ,
2543 . EL2FA ,NNN ,SPBUF ,IPART ,IPARTSP )
2552 CALL DELSUB(1, CEPSP, 1, OFF, NUMSPH,
2557 CALL WRITE_R_C(R4,1)
2561 CALL WRITE_R_C(R4,1)
2569 IF(ANIM_ST(I)==1)THEN
2570 CALL TENSOR0(ELBUF_TAB ,IPARG ,IFUNC ,PM ,EL2FA ,
2571 2 NNN ,WAFT ,IPART ,IPARTSP )
2580 CALL WRITE_R_C(R4,1)
2586 CALL DELNUMB0(IPARG,EL2FA,NNN ,WAFT,KXSP )
2592 IF (IPART(3,I)<NSUBS) THEN
2593 CALL WRITE_I_C(IPART(3,I)-1,1)
2595 CALL WRITE_I_C(NSUBS
2596 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2597 . +MIN(1,NSURG+NSMAD)-1,1)
2602 IF(MATER(I)==4)CALL WRITE_I_C(IPART(1,I),1)
2605 IF(MATER(I)==4)CALL WRITE_I_C(IPART(2,I),1)
2627 CALL WRITE_I_C(N0,1)
2630 . CALL WRITE_I_C(MATER(K)-M3-1,1)
2639 DO J=1,SUBSET(I)%NPART
2640 K = SUBSET(I)%PART(J)
2646 CALL WRITE_I_C(N0,1)
2647 DO J=1,SUBSET(I)%NPART
2648 K = SUBSET(I)%PART(J)
2650 . CALL WRITE_I_C(MATER(K)-M3-1,1)
2658 DO J=1,SUBSET(I)%NPART
2659 K = SUBSET(I)%PART(J)
2665 CALL WRITE_I_C(N0,1)
2666 DO J=1,SUBSET(I)%NPART
2667 K = SUBSET(I)%PART(J)
2669 . CALL WRITE_I_C(MATER(K)-M3-1,1)
2674 IF(MATER(I)<0)MATER(I)=-MATER(I)
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
')