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)
110#include "implicit_f.inc"
114#include "com01_c.inc"
115#include "com04_c.inc"
116#include "com09_c.inc"
118#include "param_c.inc"
119#include "units_c.inc"
120#include "scr14_c.inc"
121#include "scr15_c.inc"
122#include "scr16_c.inc"
123#include "scr12_c.inc"
124#include "scr17_c.inc"
128 INTEGER IXS(NIXS,*), IXQ(NIXQ,*), IXC(NIXC,*), IXT(NIXT,*),
129 . IXP(NIXP,*), IXR(NIXR,*), IXTG(NIXTG,*), SWAFT,
130 . IPARG(NPARG,*), ITAB(*), LPBY(*), NPBY(NNPBY,*),
131 . NSTRF(*), NPRW(*), IPART(LIPART1,*),
132 . IPARTS(*), IPARTQ(*), IPARTC(*), IPARTT(*),
133 . IPARTP(*), IPARTR(*), IPARTTG(*),SWA4,
134 . IPARTX(*), KXSP(NISP,*),IXSP(KVOISPH,*),
135 . IPARTSP(*), IXS10(6,*), IXS20(12,*), IXS16(8,*),
136 . IPM(NPROPMI,*), IGEO(NPROPGI,*), , SEL2FA,
137 . SNFACPTX, SIXEDGE, SOFFX1, SNUMX1, SXNORM, SINVERT,
138 . SFUNC1, , NMANIM, SMAS, FXANI(2,*),
139 . NLEVEL, ELSUB(NLEVEL,*),DSANIM, NELEM, CEP(*), CEPSP(*),
141 INTEGER NOM_OPT(LNOPT1,*),PTR_NOPT_RWALL,PTR_NOPT_SECT
144 . x(3,*), bufel(*), pm(npropm,*), geo(npropg,*),
145 . skew(lskew,*), rwbuf(nrwlp,*), rby(nrby,*), bufsf(*),
146 . spbuf(*), d(3,*), ms(*), mbufel(lbufel,*),
148 TYPE (ELBUF_STRUCT_),
DIMENSION(NGROUP) :: ELBUF_TAB
150 TYPE (SUBSET_) ,
DIMENSION(NSUBS) :: SUBSET
151 TYPE (SURF_) ,
DIMENSION(NSURF) :: IGRSURF
155 INTEGER LTITL, ISPH3D, I161, I16A, I16B, I16C, I16D, I16E, I16F,
156 . i16g, i16h, i16i, filen, ctext(200), nskewa, nb1d, i,
157 . mater(smater), nbpart, nbf, nbf_l, el2fa(sel2fa), nodcut,
158 . nelcut, ncuts, numsph_t, nesct, nerwl, nnwl, nesbw2,
159 . nesrg, nnsrg, nsurg, nesmd, nnsmd, nsmad, nesph, nnsph,
160 . nnsphg, numels_t, numels16_t, numelt_t, numelr_t,
161 . numelp_t, magic, iflag1d, bufl, snnsphg, sz16,
162 . buf, nesct1, nerwl1, isect, irwl, nesrg1, isrg, nesmd1,
163 . j, ib, ndma2, ifunc, sznnsph, shftsph, shft16, insph, nnn,
164 . nerby, nb1d_t, iprt, nerbt(nrbody), nerby1, irby, lrbuf,
165 . nfacptx(3,snfacptx), ixedge(sixedge),
166 . iad(siad), ioffx1(soffx1), inumx1(snumx1), mxsubs, n1, n2,
167 . n3, k, m3, m4, n0, nesphg, isrf,
invert(sinvert), m01,
168 . m1, m2, nnnsrg, m, n, lid, nmfunc(9)
169 INTEGER FVOFF(2,NFVBAG), INOD(4), INORM(3), NFVTR, NFVNOD,
170 . nfvpart, nfvsubs, idmax, kk, nn, fviad, jj, offpart,
171 .
eloff, idcmax, nnd, nbid1, nbid2, nbid3, nfvnodt, idp,
172 . nbpart2d, idpart2dmax, ii
173 INTEGER,
DIMENSION(:),
ALLOCATABLE :: OFFTR, ITAGT, FVEL2FA,
177 . CDG(3), WAFT(SWAFT), XMIN, YMIN, ZMIN, XMAX, YMAX, ZMAX,
178 . XNORM(SXNORM), XFUNC1(SFUNC1), MAS(SMAS), RID
180 CHARACTER FILNAM*103, CHANIM*3, CHANIM1*4, CTMOD*100
182 CHARACTER(LEN=NCHARTITLE) :: TITL
186 . FUNC(MAX(NELEM,NUMSPH))
187 CHARACTER*33 CTITR(MAX(1,NLEVEL))
198 i16a=i161+lnopt1*nrbody
199 i16b=i16a+lnopt1*naccelm
200 i16c=i16b+lnopt1*nvolu
201 i16d=i16c+lnopt1*(ninter+nintsub)
202 i16e=i16d+lnopt1*nrwall
204 i16g=i16f+lnopt1*njoint
205 i16h=i16g+lnopt1*nsect
206 i16i=i16h+lnopt1*nlink
211 IF(anim_vers>=50)
THEN
212 IF(ianim>=10000)ianim=1
213 WRITE(chanim1,
'(I4.4)')ianim
215 . rootnam(1:rootlen)//
'_'//chanim1//
'.ani'
218 IF(ianim>=1000)ianim=1
219 WRITE(chanim,
'(I3.3)')ianim
221 . rootnam(1:rootlen)//
'A'//chanim
226 ctext(i)=ichar(filnam(i:i))
229 CALL open_c(ctext,filen,0)
233 WRITE(ctitr(1),
'(A25)')
'SPMD Domain Decomposition'
235 WRITE(ctitr(i),
'(A30,I3)')
'Impl. graph - Dom. Dec. Level ',i
241 nskewa=numelp + numelt + numskw
242 nb1d =numelp + numelt + numelr
244 IF(nint(geo(12,ixr(1,i)))==4 .OR.
245 . nint(geo(12,ixr(1,i)))==13.OR.
246 . nint(geo(12,ixr(1,i)))==45.OR.
247 . (nint(geo(12,ixr(1,i)))>=29.AND.
248 . nint(geo(12,ixr(1,i)))<=33))
THEN
250 ELSEIF(nint(geo(12,ixr(1,i)))==12)
THEN
275 nbpart = nbpart + mater(i)
278 nbf = numelq + numelc + numeltg
281 DO i=1,numelq + numelc + numeltg + 1
296 IF(nsect+nrwall>0)
THEN
297 CALL dseccnt(nesct,nerwl,nesbw2,nstrf,
298 1 rwbuf ,nprw,nnwl,ixs)
305 .
CALL dsrgcnt(igrsurf, nsurg,nesrg,nnsrg,nesbw2)
312 IF (isph3d==1.AND.numsph_t+maxpjet>0)
313 .
CALL dsphcnt(nesph,nnsph,nesphg,nnsphg)
324 idmax=max(idmax,itab(i))
330 nfvtr=nfvtr+
fvdata(i)%NNTR
331 fvoff(1,i)=numnod+nodcut+nsect+nrwall+nnwl
332 . +nnsrg+nnsmd+nnsph+2*numels16+nfvnod
333 fvoff(2,i)=idmax+nfvnod
334 nfvnod=nfvnod+
fvdata(i)%NNS_ANIM
335 nfvpart=nfvpart+
fvdata(i)%NPOLH_ANIM
341 .
ALLOCATE(fvel2fa(nfvtr), fvinum(nfvtr))
347 numels16_t = numels16
356 CALL ani_txt(
'Mode number=',12)
358 CALL ani_txt(
'Radioss Run=',12)
363 IF(numels_t+isph3d*(numsph_t+maxpjet)==0)
THEN
368 iflag1d = numelt_t+numelp_t+numelr_t+nanim1d+nrbody
369 IF (iflag1d/=0) iflag1d = 1
384 . (numsph_t+maxpjet/=0))
THEN
399 CALL write_i_c(numnod+nodcut+nsect+nrwall+nnwl
400 . +nnsrg+nnsmd+nnsph+2*numels16+nfvnodt
401 CALL write_i_c(nbf+nelcut+nesbw2+nfvtr,1)
402 nbpart2d=nbpart+ncuts+nsect
404 . +nsect+nrwall+nsurg+nsmad+nfvpart,1)
406 IF(nbf+nelcut+nesbw2+nfvtr==0)
THEN
410 nce_ani=nce_ani+nlevel
411 ELSEIF (decani==1)
THEN
417 IF(nbf+nelcut+nesbw2+nfvtr==0)
THEN
427 CALL aniskew(elbuf_tab,skew ,iparg ,x ,ixt,
428 2 ixp ,ixr ,geo ,bufl )
440 xmin =
min(xmin,(x(1,n)-d(1,n)))
441 ymin =
min(ymin,(x(2,n)-d(2,n)))
442 zmin =
min(zmin,(x(3,n)-d(3,n)))
443 xmax = max(xmax,(x(1,n)-d(1,n)))
444 ymax = max(ymax,(x(2,n)-d(2,n)))
445 zmax = max(zmax,(x(3,n)-d(3,n)))
448 cdg(1) = half * (xmax + xmin)
449 cdg(2) = half * (ymax + ymin)
450 cdg(3) = half * (zmax + zmin)
462 2 nstrf,rwbuf,nprw ,x,xmin,
463 3 ymin,zmin,xmax,ymax,zmax,
466 IF (nsurg>0)
CALL dxyzsrg(nesrg,igrsurf,bufsf)
469 IF (isph3d*(numsph_t+maxpjet)>0)
470 .
CALL dxyzsph(nesph,kxsp,x,spbuf,snnsphg,nnsph)
474 2
CALL xyz16(ixs,ixs10,ixs20,ixs16,x)
479 r4=
fvdata(i)%NOD_ANIM(1,j)
481 r4=
fvdata(i)%NOD_ANIM(2,j)
483 r4=
fvdata(i)%NOD_ANIM(3,j)
506 nbid1=numnod+nodcut+nsect+nrwall+nnwl
507 . +nnsrg+nnsmd+nnsph+2*numels16+nfvnod+1
515 CALL parsorc(x ,d, xnorm,iad ,cdg ,
516 . bufel,iparg,ixq ,ixc ,ixtg ,
518 . mater,ipartq,ipartc,iparttg,
521 IF(nsect+nrwall>0)
CALL dparrws(
522 1 nesbw2,nstrf, ixc ,
523 2 ixtg ,x ,nodcut,rwbuf,nprw,
526 IF (nsurg>0)
CALL dparsrg(nsurg,nnwl,nodcut)
532 ALLOCATE(itagt(
fvdata(i)%NNTR))
537 DO j=1,
fvdata(i)%NPOLH_ANIM
538 DO k=
fvdata(i)%IFVPADR_ANIM(j),
540 kk=
fvdata(i)%IFVPOLH_ANIM(k
541 DO n=
fvdata(i)%IFVTADR_ANIM(kk),
542 .
fvdata(i)%IFVTADR_ANIM(kk+1)-1
543 nn=
fvdata(i)%IFVPOLY_ANIM(n)
544 IF (itagt(nn)==1) cycle
545 inod(1)=fvoff(1,i)+
fvdata(i)%IFVTRI_ANIM(1,nn)-1
546 inod(2)=fvoff(1,i)+
fvdata(i)%IFVTRI_ANIM(2,nn)-1
547 inod(3)=fvoff(1,i)+
fvdata(i)%IFVTRI_ANIM(3,nn)-1
552 IF (inod(2)/=inod(1)) nnd=nnd+1
553 IF (inod(3)/=inod(1).AND.
554 . inod(3)/=inod(2)) nnd=nnd+1
576 CALL anioffc(elbuf_tab,iparg,waft ,el2fa,nbf )
583 ALLOCATE(offtr(nfvtr))
593 .
fvdata(i)%IFVTADR(kk+1)-1
596 n1=
fvdata(i)%IFVTRI_ANIM(1,nn)
597 n2=
fvdata(i)%IFVTRI_ANIM(2,nn)
598 n3=
fvdata(i)%IFVTRI_ANIM(3,nn)
600 IF (n2/=n1) nnd=nnd+1
601 IF (n3/=n2.AND.n3/=n1) nnd=nnd+1
604 IF (nnd==3) offtr(nn)=1
621 CALL donesec(isect,nesct1,nstrf,ixs)
628 CALL write_i_c(nelcut+nbf+nesct+nerwl1,1)
634 CALL write_i_c(nelcut+nbf+nesct+nerwl+nesrg1,1)
639 fviad=nelcut+nbf+nesct+nerwl+nesrg+nesmd1
641 ALLOCATE(itagt(
fvdata(i)%NNTR))
646 DO j=1,
fvdata(i)%NPOLH_ANIM
647 DO k=
fvdata(i)%IFVPADR_ANIM(j),
648 .
fvdata(i)%IFVPADR_ANIM(j+1)-1
649 kk=
fvdata(i)%IFVPOLH_ANIM(k)
650 DO n=
fvdata(i)%IFVTADR_ANIM(kk),
652 nn=
fvdata(i)%IFVPOLY_ANIM(n)
653 IF (itagt(nn)==0)
THEN
671 idpart2dmax=max(idpart2dmax,ipart(4,i))
672 WRITE(str,
'(I8,A1)')ipart(4,i),
':'
674 ctext(j)=ichar(str(j:j))
679 IF(titl(j:j)/=
' ') ib = j+9
680 ctext(j+9)=ichar(titl(j:j))
693 WRITE(str,
'(I8,A2,A7)') isect,
': ',
'Section'
695 ctext(j)=ichar(str(j:j))
703 WRITE(str,
'(I8,A2)') nom_opt(1,ptr_nopt_sect+isect),
': '
705 ctext(j)=ichar(str(j:j))
707 CALL fretitl2(titl,nom_opt(lnopt1-ltitr+1,ptr_nopt_sect+isect),
711 ctext(j+10)=ichar(titl(j:j))
720 WRITE(str,
'(I8,A2,A10)') irwl,
': ',
'Rigid Wall'
722 ctext(j)=ichar(str(j:j))
730 WRITE(str,
'(I8,A2)') nom_opt(1,ptr_nopt_rwall+irwl),
': '
732 ctext(j)=ichar(str(j:j))
735 CALL fretitl2(titl,nom_opt(lnopt1-ltitr+1,ptr_nopt_rwall+irwl),
738 ctext(j+10)=ichar(titl(j:j))
747 IF (igrsurf(isrf)%TYPE==101)
THEN
749 WRITE(str,
'(I8,A1)') isrg,
':'
751 ctext(j)=ichar(str(j:j))
754 titl = igrsurf(isrf)%TITLE
756 IF(titl(j:j)/=
' ') ib = j+9
757 ctext(j+9)=ichar(titl(j:j))
764 idpart2dmax = idpart2dmax + nsect + nrwall + nsurg + nsmad + ncuts
770 DO j=1,
fvdata(i)%NPOLH_ANIM
771 WRITE(str,
'(I8,A1)') j+idpart2dmax,
':'
773 ctext(k)=ichar(str(k:k))
776 WRITE(titl,
'(A11,I8)')
'POLYHEDRON ',j
778 ctext(k+9)=ichar(titl(k:k))
783 idpart2dmax = idpart2dmax +
fvdata(i)%NPOLH_ANIM
792 IF (nsurg>0)
CALL dsrgnor(igrsurf,bufsf)
794 IF (isph3d*(numsph_t+maxpjet)>0)
795 .
CALL dsphnor(kxsp,x,spbuf,nnsphg)
797 .
CALL xyznor16(ixs,ixs10,ixs20,ixs16,x)
818 IF(anim_m==1.OR.anim_ce(3)==1.OR.
819 . anim_ce(25)==1)
THEN
820 CALL dmasanic(elbuf_tab, x ,d ,geo ,iparg,
821 . ixq ,ixc ,ixtg ,mas ,pm ,
827 IF(nbf+nelcut+nesbw2/=0)
THEN
829 WRITE(ctmod,
'(A7,I4,A8,I4,A18)')
830 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Specific Energy'
832 WRITE(ctmod,
'(A7,I4,A8,I4,A11)')
833 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Pressure'
835 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
836 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Von Mises'
838 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
839 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress X '
841 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
842 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress Y '
844 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
845 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress Z '
847 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
848 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress XY'
850 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
851 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress YZ'
853 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
854 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress XZ'
861 ELSEIF (decani==1)
THEN
868 ndma2= numnod*(
min(1,anim_n(1)+outp_n(1))
869 . +
min(1,anim_n(2)+outp_n(2))
870 . +
min(1,anim_n(12)+outp_n(3)))
871 IF((nbf+nelcut+nesbw2/=0))
THEN
874 IF(anim_ce(i)==1)
THEN
876 CALL dfuncc(elbuf_tab,bufel,waft ,ifunc,iparg,
877 . ixq ,ixc ,ixtg ,pm ,el2fa,
906 CALL dfuncc(elbuf_tab,mbufel(1,i), waft, ifunc, iparg,
907 . ixq, ixc, ixtg, pm,
929 CALL delsub(nlevel, elsub, i, off, numelq+numelc,
932 off=off+numelq+numelc+numelt+numelp+numelr
933 CALL delsub(nlevel, elsub, i, off, numeltg,
934 . el2fa(1+numelq+numelc), func)
951 ELSEIF (decani==1)
THEN
957 CALL delsub(1, cep, 1, off, numelq+numelc,
960 off=off+numelq+numelc+numelt+numelp+numelr
961 CALL delsub(1, cep, 1, off, numeltg,
962 . el2fa(1+numelq+numelc
984 WRITE(ctmod,
'(A7,I4,A8,I4,A15)')
985 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Displacement'
989 nnnsrg=nnsrg+nnsmd+nnsph+2*numels16
991 CALL velvec(mdepl(1,i),nnwl,nnnsrg)
996 IF((nbf+nelcut+nesbw2/=0))
THEN
998 WRITE(ctmod,
'(A7,I4,A8,I4,A21)')
999 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
1000 .
' - Stress (membrane)'
1002 WRITE(ctmod,
'(A7,I4,A8,I4,A23)')
1003 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
1004 .
' - Stress (moment/t^2)'
1012 IF(anim_ct(i)==1)
THEN
1013 CALL tensorc(elbuf_tab ,iparg,ifunc,
1014 .
invert,nelcut,el2fa,nbf ,waft ,
1016 . x, ixc, igeo,ixtg )
1053 DO j=1,nesbw2+nelcut
1072 wa4(m)=wa4(m)+(rby(15,n)-ms(m))
1084 DO n=1,nsect+nrwall+nnwl+nnsrg+nnsmd+sznnsph+2*sz16
1100 DO i=1,nodcut+nsect+nrwall+nnwl+nnsrg+nnsmd
1106 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
1107 DO j=1,
fvdata(i)%NNS_ANIM
1120 CALL delnumbc(iparg,ixq ,ixc ,ixtg ,
1121 . el2fa,nbf ,waft ,nelcut,
1130 DEALLOCATE(fvel2fa, fvinum)
1143 IF(mater(i)==1)
THEN
1144 IF (ipart(3,i)<nsubs)
THEN
1148 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1149 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1155 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1156 . +
min(1,nsurg+nsmad)-1,1)
1166 . +
min(1,nrwall)-1,1)
1170 . +
min(1,nrwall)-1,1)
1174 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1175 . +
min(1,nsurg+nsmad)-1
1177 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
1179 DO j=1,
fvdata(i)%NPOLH_ANIM
1187 IF(mater(i)==1)
CALL write_i_c(ipart(1,i),1)
1189 DO i=1,ncuts+nrwall+nsect+nsurg+nsmad
1197 IF(mater(i)==1)
CALL write_i_c(ipart(2,i),1)
1199 DO i=1,ncuts+nrwall+nsect+nsurg+nsmad
1210 IF (numels_t+numels16_t+isph3d*(numsph_t+maxpjet)>=0.OR.
1211 . (isph3d==1.AND.numsph_t+maxpjet>0))
THEN
1213 nse_ani=nse_ani+nlevel
1214 ELSEIF (decani==1)
THEN
1218 IF(numels_t+numels16_t+isph3d*(numsph_t+maxpjet)==0)
GOTO 400
1235 DO i=1,numsph+maxpjet
1237 el2fa(numels+3*numels16+i)=0
1243 nbpart = nbpart + mater(i)/2
1248 CALL write_i_c(numels+isph3d*(numsph+maxpjet)
1256 shftsph = numnod+nodcut+nsect+nrwall+nnwl+nnsrg+nnsmd
1257 shft16 = numnod+nodcut+nsect+nrwall+nnwl+nnsrg+nnsmd+nnsphg
1258 insph=numnod+nodcut+nsect+nrwall+nnwl
1260 CALL parsors(iad ,iparg ,ixs ,mater,iparts,
1262 3 insph ,kxsp ,ipartsp,
1263 4 ixs10 ,ixs20 ,ixs16 ,nnsph ,isph3d,
1264 5 shft16 ,shftsph,nnsphg )
1268 nnn = numels+isph3d*(numsph+maxpjet)+3*numels16
1269 CALL anioffs(elbuf_tab ,iparg,waft ,el2fa ,
1270 . nnn ,nbpart,isph3d )
1280 WRITE(str,
'(I8,A1)')ipart(4,i),
':'
1282 ctext(j)=ichar(str(j:j))
1285 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
1287 IF(titl(j:j)/=
' ') ib = j+9
1288 ctext(j+9)=ichar(titl(j:j))
1297 IF(anim_m==1.OR.anim_se(3)==1.OR.
1298 . anim_se(25)==1)
THEN
1300 2 ixs ,mas ,pm ,el2fa ,numels ,
1301 3 ipart ,ipartsp ,isph3d )
1308 WRITE(ctmod,
'(A7,I4,A8,I4,A18)')
1309 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Specific Energy'
1311 WRITE(ctmod,
'(A7,I4,A8,I4,A11)')
1312 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Pressure'
1314 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1315 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Von Mises'
1317 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1318 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress X '
1320 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1321 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress Y '
1323 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1324 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress Z '
1326 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1327 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress XY'
1329 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1330 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress YZ'
1332 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1333 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress XZ'
1340 ELSEIF (decani==1)
THEN
1346 ndma2= numnod*(
min(1,anim_n(1)+outp_n(1))
1347 . +
min(1,anim_n(2)+outp_n(2))
1348 . +
min(1,anim_n(12)+outp_n(3)))
1349 nnn = numels+isph3d*(numsph+maxpjet)+3*numels16
1352 IF(anim_se(i)==1)
THEN
1353 CALL dfuncs(elbuf_tab ,waft ,ifunc ,iparg ,
1370 CALL dfuncs(mbufel(1,i), waft, ifunc, iparg,
1371 . ixs,pm ,el2fa, nnn,isph3d)
1381 CALL delsub(nlevel, elsub, i, off, numels,
1389 ELSEIF (decani==1)
THEN
1395 CALL delsub(1, cep, 1, off, numels,
1400 CALL delsub(1, cepsp,1 ,off, numsph,
1401 . el2fa(1+numels), func)
1413 WRITE(ctmod,
'(A7,I4,A8,I4,A9)')
1414 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress'
1422 IF(anim_st(i)==1)
THEN
1423 CALL tensors(elbuf_tab ,iparg ,ifunc ,ixs ,pm ,
1424 2 el2fa ,nnn ,waft ,
1425 3 x ,ipart ,ipartsp ,isph3d
1433! . el2fa, nnn, waft,
1449 CALL delnumbs(iparg,ixs ,el2fa,nnn ,waft ,
1456 IF (ipart(3,i)<nsubs)
THEN
1460 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1461 . +
min(1,nsurg+nsmad)-1,1)
1466 IF(mater(i)==2)
CALL write_i_c(ipart(1,i),1)
1469 IF(mater(i)==2)
CALL write_i_c(ipart(2,i),1)
1483 IF(nb1d+nanim1d+nerby==0)
GOTO 600
1499 IF (nfacptx(1,iprt)>0)
THEN
1508 nbpart = nbpart + mater(i)/3
1520 nfe_ani=nfe_ani+nlevel
1521 ELSEIF (decani==1)
THEN
1532 CALL parsorf(iad ,iparg,ixt ,ixp ,ixr ,
1534 . ipartt,ipartp,ipartr,nfacptx,ixedge)
1541 CALL aniofff(elbuf_tab,iparg,waft,el2fa
1555 CALL donerby(irby,nerby1,npby,nerbt)
1563 WRITE(str,
'(I8,A1)')ipart(4,i),
':'
1565 ctext(j)=ichar(str(j:j))
1569 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
1571 IF(titl(j:j)/=
' ') ib = j+9
1572 ctext(j+9)=ichar(titl(j:j))
1582 WRITE(str,
'(I8,A2,A10)') irby,
': ',
'Rigid Body'
1584 ctext(j)=ichar(str(j:j))
1593 WRITE(str,
'(I8,A2)') nom_opt(1,irby),
': '
1595 ctext(j)=ichar(str(j:j))
1598 CALL fretitl2(titl,nom_opt(lnopt1-ltitr+1,irby),
1602 ctext(j+10)=ichar(titl(j:j))
1611 IF(anim_m==1.OR.anim_fe(3)==1)
THEN
1612 CALL dmasanif(x ,d ,elbuf_tab,geo ,iparg,
1613 . ixt ,ixp ,ixr ,mas ,pm ,
1620 WRITE(ctmod,
'(A7,I4,A8,I4,A18)')
1621 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i
' - Specific Energy'
1623 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1624 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Von Mises'
1626 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1627 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress X '
1629 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1630 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress Y '
1632 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1633 .
'Fxbody ',fxani(1,i
' - Mode '' - Stress Z '
1635 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1636 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress XY'
1638 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1639 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress YZ'
1641 WRITE(ctmod,
'(A7,I4,A8,I4,A12)')
1642 .
'Fxbody ',fxani(1,i),
' - Mode ',fxani(2,i),
' - Stress XZ'
1649 ELSEIF (decani==1)
THEN
1655 ndma2= numnod*(
min(1,anim_n(1)+outp_n(1))
1656 . +
min(1,anim_n(2)+outp_n(2))
1657 . +
min(1,anim_n(12)+outp_n(3)))
1660 IF(anim_fe(i)==1)
THEN
1662CALL dfuncf(elbuf_tab,waft ,ifunc ,iparg ,geo ,
1663 . ixt ,ixp ,ixr ,mas ,pm ,
1664 . el2fa ,nb1d ,iad ,nbpart ,xfunc1)
1699 off=1+numels+numelq+numelc
1700 CALL delsub(nlevel, elsub, i, off, numelt+numelp+numelr,
1715 ELSEIF (decani==1)
THEN
1720 off=1+numels+numelq+numelc
1721 CALL delsub(1, cep, 1, off, numelt+numelp+numelr,
1741 CALL aniskewf(geo,skew,iparg,ixr,lrbuf)
1764 CALL delnumbf(iparg,ixt ,ixp ,ixr ,
1765 . el2fa,nb1d ,waft ,
1775 IF (ipart(3,i)<nsubs)
THEN
1779 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1780 . +
min(1,nsurg+nsmad)-1,1)
1789 IF(mater(i)==3)
CALL write_i_c(ipart(1,i),1)
1795 IF(mater(i)==3)
CALL write_i_c(ipart(2,i),1)
1817 j=j+ncuts+nrwall+nsect+nsurg+nsmad
1820 IF(mater(i)==-2)
THEN
1827 IF(mater(i)==-3)
THEN
1837 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1838 . +
min(1,nsurg+nsmad)+nfvsubs,1)
1851 WRITE(str,
'(I8,A14)')mxsubs+1,
':RBODIES MODEL'
1853 ctext(j)=ichar(str(j:j))
1859 . +
min(1,nsect)+
min(1,nrbody
1860 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1882 WRITE(str,
'(I8,A15)')mxsubs+
min(1,nrbody)+1,
':SECTIONS MODEL'
1884 ctext(j)=ichar(str(j:j))
1890 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1891 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1902 CALL write_i_c(m1-nsurg-nsmad-nrwall-j,1)
1913 WRITE(str,
'(I8,A13)')mxsubs
1914 . +
min(1,nsect)+
min(1,nrbody)+1,
':RWALLS MODEL'
1916 ctext(j)=ichar(str(j:j))
1922 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1923 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1944 IF (nsurg+nsmad>0)
THEN
1945 WRITE(str,
'(I8,A15)')mxsubs
1946 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)+1,
1949 ctext(j)=ichar(str(j:j))
1955 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1956 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
1966 DO j=nsurg+nsmad,1,-1
1979 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1980 . +
min(1,nsurg+nsmad)
1983 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
1985 WRITE(str,
'(I8,A11,I8)')
1986 . ii,
':FVMBAG ID ',
fvdata(i)%ID
1988 ctext(j)=ichar(str(j:j))
1994 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
1995 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2000 DO j=1,
fvdata(i)%NPOLH_ANIM
2003 offpart=offpart+
fvdata(i)%NPOLH_ANIM
2014 WRITE(str,
'(I8,A13)')1,
':GLOBAL MODEL'
2016 ctext(j)=ichar(str(j:j))
2024 . +
min(1,nsurg+nsmad)+nfvsubs,1)
2034 . +
min(1,nrwall)-1,1)
2036 ii=
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2037 . +
min(1,nsurg+nsmad)+1
2048 IF(mater(k)>0.AND.mater(k)<=m01)
THEN
2050 ELSEIF(mater(k)>m1.AND.mater(k)<=m2)
THEN
2052 ELSEIF(mater(k)>m2)
THEN
2061 IF(mater(k)>0.AND.mater(k)<=m01)
2066 CALL write_i_c(m1-nrwall-nsect-nsurg-nsmad-j,1)
2071 IF(mater(k)>m1.AND.mater(k)<=m2)
2077 IF(mater(k)>m2)
CALL write_i_c(mater(k)-m2-1,1)
2085 IF (subset(i)%ID > mxsubs) mxsubs=subset(i)%ID
2086 WRITE(str,
'(I8,A1)')subset(i)%ID,
':'
2088 ctext(j)=ichar(str(j:j))
2091 titl = subset(i)%TITLE
2093 IF(titl(j:j)/=
' ') ib = j+9
2094 ctext(j+9)=ichar(titl(j:j))
2099 IF (subset(i)%PARENT < nsubs)
THEN
2103 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2104 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2109 DO j=1,subset(i)%NCHILD
2116 DO j=1,subset(i)%NPART
2117 k = subset(i)%PART(j)
2118 IF(mater(k)>0.AND.mater(k)<=m01)
THEN
2120 ELSEIF(mater(k)>m1.AND.mater(k)<=m2)
THEN
2122 ELSEIF(mater(k)>m2)
THEN
2128 DO j=1,subset(i)%NPART
2129 k = subset(i)%PART(j)
2130 IF(mater(k)>0.AND.mater(k)<=m01)
2135 DO j=1,subset(i)%NPART
2136 k = subset(i)%PART(j)
2137 IF(mater(k)>m1.AND.mater(k)<=m2)
2142 DO j=1,subset(i)%NPART
2143 k = subset(i)%PART(j)
2144 IF(mater(k)>m2)
CALL write_i_c(mater(k)-m2-1,1)
2151 WRITE(str,
'(I8,A14)')mxsubs+1,
':RBODIES MODEL'
2153 ctext(j)=ichar(str(j:j))
2159 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2160 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2182 WRITE(str,
'(I8,A15)')mxsubs+
min(1,nrbody)+1,
':SECTIONS MODEL'
2184 ctext(j)=ichar(str(j:j))
2190 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2191 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2213 WRITE(str,
'(I8,A13)')mxsubs
2214 . +
min(1,nsect)+
min(1,nrbody
':RWALLS MODEL'
2216 ctext(j)=ichar(str(j:j))
2222 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2223 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2244 IF (nsurg+nsmad>0)
THEN
2245 WRITE(str,
'(I8,A15)')mxsubs
2246 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)+1,
2255 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2256 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2266 DO j=nsurg+nsmad,1,-1
2283 IF (
fvdata(i)%NPOLH_ANIM>0)
THEN
2285 WRITE(str,
'(I8,A11,I8)')
2286 . ii,
':FVMBAG ID ',
fvdata(i)%ID
2294 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2295 . +
min(1,nsurg+nsmad)+nfvsubs-1,1)
2314 WRITE(str,
'(I8,A1)') subset(nsubs)%ID,
':'
2316 ctext(j)=ichar(str(j
2319 titl = subset(nsubs)%TITLE
2321 IF(titl(j:j)/=
' ') ib = j+9
2330 . +
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2331 . +
min(1,nsurg+nsmad)+nfvsubs,1)
2333 DO j=1,subset(nsubs)%NCHILD
2334 CALL write_i_c(subset(nsubs)%CHILD(j)-1,1)
2344 . +
min(1,nrwall)-1,1)
2346 ii=nsubs+
min(1,nsect)+
min(1,nrbody)+
min(1,nrwall)
2347 . +
min(1,nsurg+nsmad)
2357 DO j=1,subset(i)%NPART
2358 k = subset(i)%PART(j)
2359 IF(mater(k)>0.AND.mater(k)<=m01)
THEN
2361 ELSEIF(mater(k)>m1.AND.mater(k)<=m2)
THEN
2371 DO j=1,subset(i)%NPART
2372 k = subset(i)%PART(j)
2373 IF(mater(k)>0.AND.mater(k)<=m01)
2378 CALL write_i_c(m1-nrwall-nsect-nsurg-nsmad-j,1)
2383 k = subset(i)%PART(j)
2389 DO j=1,subset(i)%NPART
2390 k = subset(i)%PART(j)
2391 IF(mater(k)>m2)
CALL write_i_c(mater(k)-m2-1,1)
2404 WRITE(str,
'(I8,A1)') ipm(1,i),
':'
2406 ctext(j)=ichar(str(j:j))
2409 CALL fretitl2(titl,ipm(npropmi-ltitr+1,i),ltitl)
2411 IF(titl(j:j)/=
' ') ib = j+9
2412 ctext(j+9)=ichar(titl(j:j))
2429 WRITE(str,
'(I8,A1)') igeo(1,i),
':'
2431 ctext(j)=ichar(str(j:j))
2434 CALL fretitl2(titl,igeo(npropgi-ltitr+1,i),ltitl)
2436 IF(titl(j:j)/=
' ') ib = j+9
2437 ctext(j+9)=ichar(titl(j:j))
2454 IF(isph3d==1.OR.numsph_t
GOTO 700
2464 DO i=1,numsph+maxpjet
2488 nnn = numsph+maxpjet
2489 CALL anioff0(elbuf_tab ,iparg ,waft ,el2fa ,nnn ,
2500 WRITE(str,
'(I8,A1)')ipart(4,i),
':'
2502 ctext(j)=ichar(str(j:j))
2505 CALL fretitl2(titl,ipart(lipart1-ltitr+1,i),ltitl)
2507 IF(titl(j:j)/=
' ') ib = j+9
2508 ctext(j+9)=ichar(titl(j:j))
2517 IF(anim_m==1.OR.anim_se(3)==1.OR.
2518 . anim_se(25)==1)
THEN
2520 2 mas ,pm ,el2fa ,ipart ,ipartsp )
2531 ELSEIF (decani==1)
THEN
2537 nnn = numsph+maxpjet
2540 IF(ifunc==0.OR.(ifunc>0.AND.anim_se(i)==1))
THEN
2541 CALL dfunc0(elbuf_tab ,waft ,ifunc ,iparg ,pm ,
2542 . el2fa ,nnn ,spbuf ,ipart ,ipartsp )
2551 CALL delsub(1, cepsp, 1, off, numsph,
2568 IF(anim_st(i)==1)
THEN
2569 CALL tensor0(elbuf_tab ,iparg ,ifunc ,pm ,el2fa ,
2570 2 nnn ,waft ,ipart ,ipartsp )
2585 CALL delnumb0(iparg,el2fa,nnn ,waft,kxsp )
2591 IF (ipart(3,i)<nsubs)
THEN
2596 . +
min(1,nsurg+nsmad)-1,1)
2601 IF(mater(i)==4)
CALL write_i_c(ipart(1,i),1)
2604 IF(mater(i)==4)
CALL write_i_c(ipart(2,i),1)
2638 DO j=1,subset(i)%NPART
2639 k = subset(i)%PART(j)
2646 DO j=1,subset(i)%NPART
2647 k = subset(i)%PART(j)
2657 DO j=1,subset(i)%NPART
2658 k = subset(i)%PART(j)
2665 DO j=1,subset(i)%NPART
2666 k = subset(i)%PART(j)
2673 IF(mater(i)<0)mater(i)=-mater(i)
2680 WRITE (iout,1000) filnam(1:filen)
2681 WRITE (istdo,1100) filnam(1:filen)
2682 1000
FORMAT (/
' ANIMATION FILE:',1x,a,
' WRITTEN'/
2683 .
' ---------------')
2684 1100
FORMAT (
' .. ANIMATION FILE:',1x,a,
' WRITTEN')