OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
genani1.F
Go to the documentation of this file.
1Copyright> OpenRadioss
2Copyright> Copyright (C) 1986-2025 Altair Engineering Inc.
3Copyright>
4Copyright> This program is free software: you can redistribute it and/or modify
5Copyright> it under the terms of the GNU Affero General Public License as published by
6Copyright> the Free Software Foundation, either version 3 of the License, or
7Copyright> (at your option) any later version.
8Copyright>
9Copyright> This program is distributed in the hope that it will be useful,
10Copyright> but WITHOUT ANY WARRANTY; without even the implied warranty of
11Copyright> MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12Copyright> GNU Affero General Public License for more details.
13Copyright>
14Copyright> You should have received a copy of the GNU Affero General Public License
15Copyright> along with this program. If not, see <https://www.gnu.org/licenses/>.
16Copyright>
17Copyright>
18Copyright> Commercial Alternative: Altair Radioss Software
19Copyright>
20Copyright> As an alternative to this open-source version, Altair also offers Altair Radioss
21Copyright> software under a commercial license. Contact Altair to discuss further if the
22Copyright> commercial version may interest you: https://www.altair.com/radioss/.
23!||====================================================================
24!|| genani1 ../starter/source/output/anim/genani1.F
25!||--- called by ------------------------------------------------------
26!|| lectur ../starter/source/starter/lectur.F
27!||--- calls -----------------------------------------------------
28!|| ani_txt ../starter/source/output/anim/ani_txt.F
29!|| ani_txt50 ../starter/source/output/anim/ani_txt.F
30!|| anioff0 ../starter/source/output/anim/anioff0.F
31!|| anioffc ../starter/source/output/anim/anioffc.F
32!|| aniofff ../starter/source/output/anim/aniofff.F
33!|| anioffs ../starter/source/output/anim/anioffs.F
34!|| aniskew ../starter/source/output/anim/aniskew.F
35!|| aniskewf ../starter/source/output/anim/aniskewf.F
36!|| delnumb0 ../starter/source/output/anim/delnumb0.F
37!|| delnumbc ../starter/source/output/anim/delnumbc.F
38!|| delnumbf ../starter/source/output/anim/delnumbf.F
39!|| delnumbs ../starter/source/output/anim/delnumbs.F
40!|| delsub ../starter/source/output/anim/delsub.F
41!|| dfunc0 ../starter/source/output/anim/dfunc0.F
42!|| dfuncc ../starter/source/output/anim/dfuncc.F
43!|| dfuncf ../starter/source/output/anim/dfuncf.F
44!|| dfuncs ../starter/source/output/anim/dfuncs.F
45!|| dmasani0 ../starter/source/output/anim/dmasani0.F
46!|| dmasanic ../starter/source/output/anim/dmasanic.F
47!|| dmasanif ../starter/source/output/anim/dmasanif.F
48!|| dmasanis ../starter/source/output/anim/dmasanis.F
49!|| donerby ../starter/source/output/anim/donerby.F
50!|| donerwl ../starter/source/output/anim/donerwl.F
51!|| donesec ../starter/source/output/anim/donesec.F
52!|| donesrg ../starter/source/output/anim/donesrg.F
53!|| dparrby ../starter/source/output/anim/dparrby.F
54!|| dparrws ../starter/source/output/anim/dparrws.F
55!|| dparsrg ../starter/source/output/anim/dparsrg.F
56!|| drbycnt ../starter/source/output/anim/drbycnt.F
57!|| dseccnt ../starter/source/output/anim/dseccnt.F
58!|| dsecnor ../starter/source/output/anim/dsecnor.F
59!|| dsphcnt ../starter/source/output/anim/dsphcnt.F
60!|| dsphnor ../starter/source/output/anim/dsphnor.F
61!|| dsrgcnt ../starter/source/output/anim/dsrgcnt.F
62!|| dsrgnor ../starter/source/output/anim/dsrgnor.F
63!|| dxyzsect ../starter/source/output/anim/dxyzsect.F
64!|| dxyzsph ../starter/source/output/anim/dxyzsph.f
65!|| dxyzsrg ../starter/source/output/anim/dxyzsrg.F
66!|| fretitl2 ../starter/source/starter/freform.F
67!|| parsor0 ../starter/source/output/anim/parsor0.F
68!|| parsorc ../starter/source/output/anim/parsorc.F
69!|| parsorf ../starter/source/output/anim/parsorf.F
70!|| parsors ../starter/source/output/anim/parsors.f
71!|| tensor0 ../starter/source/output/anim/tensor0.F
72!|| tensorc ../starter/source/output/anim/tensorc.F
73!|| tensors ../starter/source/output/anim/tensors.F
74!|| velvec ../starter/source/output/anim/velvec.F
75!|| xyz16 ../starter/source/output/anim/genani1.F
76!|| xyznor ../starter/source/output/anim/xyznor.F
77!|| xyznor16 ../starter/source/output/anim/genani1.F
78!||--- uses -----------------------------------------------------
79!|| fvbag_mod ../starter/share/modules1/fvbag_mod.F
80!|| message_mod ../starter/share/message_module/message_mod.F
81!||====================================================================
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 ,
88 7 RBY , SWA4 ,
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)
98C-----------------------------------------------
99C M o d u l e s
100C-----------------------------------------------
101 USE fvbag_mod
102 USE message_mod
103 USE elbufdef_mod
104 USE groupdef_mod
105 USE inoutfile_mod
107 use element_mod , only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
108C-----------------------------------------------
109C I m p l i c i t T y p e s
110C-----------------------------------------------
111#include "implicit_f.inc"
112C-----------------------------------------------
113C C o m m o n B l o c k s
114C-----------------------------------------------
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"
126C-----------------------------------------------
127C D u m m y A r g u m e n t s
128C-----------------------------------------------
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
143C
144 my_real
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
150C-----------------------------------------------
151 TYPE (SUBSET_) , DIMENSION(NSUBS) :: SUBSET
152 TYPE (SURF_) , DIMENSION(NSURF) :: IGRSURF
153C-----------------------------------------------
154C L o c a l V a r i a b l e s
155C-----------------------------------------------
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, 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),
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
177 my_real
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
184Cf51e11 +2
185 INTEGER OFF
186 my_real
187 . FUNC(MAX(NELEM,NUMSPH))
188 CHARACTER*33 CTITR(MAX(1,NLEVEL))
189 CHARACTER*80 STRZZ
190C
191 LTITL = 40
192C ENDIF
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 !obsolete option removed
205 i16g=i16f+lnopt1*njoint
206 i16h=i16g+lnopt1*nsect
207 i16i=i16h+lnopt1*nlink
208 mas(1:smas) = zero
209C-----------------------------------------------
210C OPEN FILE
211C-----------------------------------------------
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 filen = outfile_name_len + rootlen + 9
218 ELSE
219 IF(ianim>=1000)ianim=1
220 WRITE(chanim,'(I3.3)')ianim
222 . rootnam(1:rootlen)//'A'//chanim
223 filen = outfile_name_len + rootlen + 4
224 ENDIF
225C
226 DO i=1,filen
227 ctext(i)=ichar(filnam(i:i))
228 ENDDO
229 CALL cur_fil_c(0)
230 CALL open_c(ctext,filen,0)
231C-----------------------------------------------
232C ANIM MULTI-LEVEL DOMDEC
233C-----------------------------------------------
234 WRITE(ctitr(1),'(A25)') 'SPMD Domain Decomposition'
235 DO i=2,nlevel
236 WRITE(ctitr(i),'(A30,I3)') 'Impl. graph - Dom. Dec. Level ',i
237 ENDDO
238C-----------------------------------------------
239C SKEW + NB1D
240C NB1D includes all 1D elements except those from X-ELEMENTS.
241C-----------------------------------------------
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
256C=======================================================================
257C
258C COQUE 3N 4N
259C
260C=======================================================================
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
273C
274 nbpart = 0
275 DO i=1,npart
276 nbpart = nbpart + mater(i)
277 ENDDO
278C
279 nbf = numelq + numelc + numeltg
280 nbf_l = nbf
281C
282 DO i=1,numelq + numelc + numeltg + 1
283 el2fa(i)=0
284 ENDDO
285C-----------------------------------------------
286C SECTIONS IN SOLIDS
287C-----------------------------------------------
288 nodcut=0
289 nelcut=0
290 ncuts=0
291C-----------------------------------------------
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,nstrf,
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)
315C-----------------------------------------------
316C MAILLAGE VOLUMES FINIS POUR FVMBAG
317C-----------------------------------------------
318 nfvnod=0
319 nfvtr=0
320 nfvpart=0
321 nfvsubs=0
322 IF (nfvbag>0) THEN
323 idmax=0
324 DO i=1,numnod
325 idmax=max(idmax,itab(i))
326 ENDDO
327 ENDIF
328C
329 IF (ifvani==1) THEN
330 DO i=1,nfvbag
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
340C
341 IF (nfvtr>0)
342 . ALLOCATE(fvel2fa(nfvtr), fvinum(nfvtr))
343C
344C-----------------------------------------------
345C WRITE CONTROL
346C-----------------------------------------------
347 numels_t = numels
348 numels16_t = numels16
349 numelt_t = numelt
350 numelr_t = numelr
351 numelp_t = numelp
352C
353 magic = 21548
354 CALL write_i_c(magic,1)
355 r4=ianim
356 CALL write_r_c(r4,1)
357 CALL ani_txt('Mode number=',12)
358 CALL ani_txt('Local mode',10)
359 CALL ani_txt('Radioss Run=',12)
360C
361 CALL write_i_c(anim_m,1)
362 CALL write_i_c(1,1)
363C
364 IF(numels_t+isph3d*(numsph_t+maxpjet)==0) THEN
365 CALL write_i_c(0,1)
366 ELSE
367 CALL write_i_c(1,1)
368 ENDIF
369 iflag1d = numelt_t+numelp_t+numelr_t+nanim1d+nrbody
370 IF (iflag1d/=0) iflag1d = 1
371 CALL write_i_c(iflag1d,1)
372C
373C HIERARCHY
374 CALL write_i_c(1,1)
375C TH
376 CALL write_i_c(0,1)
377C REP. SHELL
378 IF(ishfram==1)THEN
379 CALL write_i_c(0,1)
380 ELSE
381 CALL write_i_c(1,1)
382 ENDIF
383C
384 IF(isph3d==0.AND.
385 . (numsph_t+maxpjet/=0))THEN
386 CALL write_i_c(1,1)
387 ELSE
388 CALL write_i_c(0,1)
389 ENDIF
390C
391 CALL write_i_c(0,1)
392 CALL write_i_c(0,1)
393C
394 IF (nfvnod>0) THEN
395 nfvnodt=nfvnod+3
396 ELSE
397 nfvnodt=0
398 ENDIF
399C
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
404 CALL write_i_c(nbpart+ncuts
405 . +nsect+nrwall+nsurg+nsmad+nfvpart,1)
406 CALL write_i_c(nn_ani,1)
407 IF(nbf+nelcut+nesbw2+nfvtr==0)THEN
408 CALL write_i_c(0,1)
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
415 CALL write_i_c(nce_ani,1)
416 ENDIF
417 CALL write_i_c(nv_ani,1)
418 IF(nbf+nelcut+nesbw2+nfvtr==0)THEN
419 CALL write_i_c(0,1)
420 ELSE
421 CALL write_i_c(nct_ani,1)
422 ENDIF
423 CALL write_i_c(nskewa,1)
424C-----------------------------------------------
425C SKEW
426C-----------------------------------------------
427 bufl=1
428 CALL aniskew(elbuf_tab,skew ,iparg ,x ,ixt,
429 2 ixp ,ixr ,geo ,bufl )
430C-----------------------------------------------
431C NODE X Y Z
432C-----------------------------------------------
433 xmin = ep30
434 ymin = ep30
435 zmin = ep30
436 xmax = -ep30
437 ymax = -ep30
438 zmax = -ep30
439C
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)))
445 ymax = max(ymax,(x(2,n)-d(2,n)))
446 zmax = max(zmax,(x(3,n)-d(3,n)))
447 END DO
448C
449 cdg(1) = half * (xmax + xmin)
450 cdg(2) = half * (ymax + ymin)
451 cdg(3) = half * (zmax + zmin)
452C
453 DO i=1,numnod
454 r4 = x(1,i)
455 CALL write_r_c(r4,1)
456 r4 = x(2,i)
457 CALL write_r_c(r4,1)
458 r4 = x(3,i)
459 CALL write_r_c(r4,1)
460 END DO
461C
462 IF(nsect+nrwall>0) CALL dxyzsect(
463 2 nstrf,rwbuf,nprw ,x,xmin,
464 3 ymin,zmin,xmax,ymax,zmax,
465 4 itab)
466C
467 IF (nsurg>0) CALL dxyzsrg(nesrg,igrsurf,bufsf)
468C
469 snnsphg = 0
470 IF (isph3d*(numsph_t+maxpjet)>0)
471 . CALL dxyzsph(nesph,kxsp,x,spbuf,snnsphg,nnsph)
472C
473 sz16 = numels16
474 IF (sz16>0)
475 2 CALL xyz16(ixs,ixs10,ixs20,ixs16,x)
476C
477 IF (nfvnod>0) THEN
478 DO i=1,nfvbag
479 DO j=1,fvdata(i)%NNS_ANIM
480 r4=fvdata(i)%NOD_ANIM(1,j)
481 CALL write_r_c(r4,1)
482 r4=fvdata(i)%NOD_ANIM(2,j)
483 CALL write_r_c(r4,1)
484 r4=fvdata(i)%NOD_ANIM(3,j)
485 CALL write_r_c(r4,1)
486 ENDDO
487 ENDDO
488C
489 r4=em10
490 CALL write_r_c(r4,1)
491 r4=zero
492 CALL write_r_c(r4,1)
493 r4=zero
494 CALL write_r_c(r4,1)
495 r4=zero
496 CALL write_r_c(r4,1)
497 r4=em10
498 CALL write_r_c(r4,1)
499 r4=zero
500 CALL write_r_c(r4,1)
501 r4=zero
502 CALL write_r_c(r4,1)
503 r4=zero
504 CALL write_r_c(r4,1)
505 r4=em10
506 CALL write_r_c(r4,1)
507 nbid1=numnod+nodcut+nsect+nrwall+nnwl
508 . +nnsrg+nnsmd+nnsph+2*numels16+nfvnod+1
509 nbid2=nbid1+1
510 nbid3=nbid2+1
511C
512 ENDIF
513C-----------------------------------------------
514C PART SORT
515C-----------------------------------------------
516 CALL parsorc(x ,d, xnorm,iad ,cdg ,
517 . bufel,iparg,ixq ,ixc ,ixtg ,
518 . invert,el2fa,
519 . mater,ipartq,ipartc,iparttg,
520 . elbuf_tab)
521C
522 IF(nsect+nrwall>0) CALL dparrws(
523 1 nesbw2,nstrf, ixc ,
524 2 ixtg ,x ,nodcut,rwbuf,nprw,
525 3 ixs)
526C
527 IF (nsurg>0) CALL dparsrg(nsurg,nnwl,nodcut)
528C
529 ii=0
530 IF (ifvani==1) THEN
531 eloff=0
532 DO i=1,nfvbag
533 ALLOCATE(itagt(fvdata(i)%NNTR))
534 DO j=1,fvdata(i)%NNTR
535 itagt(j)=0
536 ENDDO
537C
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
551C Number of distinct nodes of the shell (after merging in FVMESH)
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
562C
563 CALL write_i_c(inod,4)
564 itagt(nn)=1
565 fvel2fa(eloff+nn)=ii
566 fvinum(ii)=eloff+nn
567 ENDDO
568 ENDDO
569 ENDDO
570 eloff=eloff+fvdata(i)%NNTR
571 DEALLOCATE(itagt)
572 ENDDO
573 ENDIF
574C-----------------------------------------------
575C OFF
576C-----------------------------------------------
577 CALL anioffc(elbuf_tab,iparg,waft ,el2fa,nbf )
578C
579 DO j=1,nesbw2+nelcut
580 CALL write_c_c(1,1)
581 ENDDO
582C
583 IF (ifvani==1) THEN
584 ALLOCATE(offtr(nfvtr))
585 DO i=1,nfvtr
586 offtr(i)=0
587 ENDDO
588 eloff=0
589 DO i=1,nfvbag
590 DO j=1,fvdata(i)%NPOLH
591 DO k=fvdata(i)%IFVPADR(j),fvdata(i)%IFVPADR(j+1)-1
592 kk=fvdata(i)%IFVPOLH(k)
593 DO n=fvdata(i)%IFVTADR(kk),
594 . fvdata(i)%IFVTADR(kk+1)-1
595 nn=fvdata(i)%IFVPOLY(n)
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
603C
604 nn=fvel2fa(eloff+nn)
605 IF (nnd==3) offtr(nn)=1
606 ENDIF
607 ENDDO
608 ENDDO
609 ENDDO
610 eloff=eloff+fvdata(i)%NNTR
611 ENDDO
612C
613 CALL write_c_c(offtr,nfvtr)
614 DEALLOCATE(offtr)
615 ENDIF
616C-----------------------------------------------
617C PART ADD
618C-----------------------------------------------
619 CALL write_i_c(iad,nbpart)
620 nesct1=0
621 DO isect=1,nsect
622 CALL donesec(isect,nesct1,nstrf,ixs)
623 CALL write_i_c(nelcut+nbf+nesct1,1)
624 END DO
625C
626 nerwl1=0
627 DO irwl=1,nrwall
628 CALL donerwl(irwl,nerwl1,nprw)
629 CALL write_i_c(nelcut+nbf+nesct+nerwl1,1)
630 END DO
631 nesrg1=0
632C
633 DO isrg=1,nsurg
634 CALL donesrg(isrg,nesrg1)
635 CALL write_i_c(nelcut+nbf+nesct+nerwl+nesrg1,1)
636 END DO
637 nesmd1=0
638C
639 IF (ifvani==1) THEN
640 fviad=nelcut+nbf+nesct+nerwl+nesrg+nesmd1
641 DO i=1,nfvbag
642 ALLOCATE(itagt(fvdata(i)%NNTR))
643 DO j=1,fvdata(i)%NNTR
644 itagt(j)=0
645 ENDDO
646C
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
660 CALL write_i_c(fviad,1)
661 ENDDO
662C
663 DEALLOCATE(itagt)
664 ENDDO
665 ENDIF
666C-----------------------------------------------
667C PART HEAD
668C-----------------------------------------------
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
684 CALL write_c_c(ctext,10+ltitl)
685 ENDIF
686 ENDDO
687C-----------------------------------------------
688C CUTS PART
689C-----------------------------------------------
690c print*,'685(664)-870'
691c return
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
700 CALL write_c_c(ctext,10+ltitl)
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
715 CALL write_c_c(ctext,10+ltitl)
716 END DO
717 END IF
718C
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
727 CALL write_c_c(ctext,10+ltitl)
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
742 CALL write_c_c(ctext,10+ltitl)
743 END DO
744 ENDIF
745C
746 isrg=1
747 DO isrf=1,nsurf
748 IF (igrsurf(isrf)%TYPE==101) THEN
749C RADIOSS'S ellipsoid.
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
761 CALL WRITE_C_C(CTEXT,10+LTITL)
762 ISRG=ISRG+1
763 END IF
764 END DO
765 IDPART2DMAX = IDPART2DMAX + NSECT + NRWALL + NSURG + NSMAD + NCUTS
766C-------------------------------------------------------
767C FVMBAG
768C-------------------------------------------------------
769 IF (IFVANI==1) THEN
770 DO I=1,NFVBAG
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
782 CALL WRITE_C_C(CTEXT,10+LTITL)
783 ENDDO
784 IDPART2DMAX = IDPART2DMAX + FVDATA(I)%NPOLH_ANIM
785 ENDDO
786 ENDIF
787C-----------------------------------------------
788C NORMAL
789C-----------------------------------------------
790 CALL XYZNOR(XNORM)
791C
792 CALL DSECNOR(X ,RWBUF,NPRW)
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)
799C
800 IF (IFVANI==1) THEN
801 DO I=1,NFVNOD
802 INORM(1) = 0
803 INORM(2) = 0
804 INORM(3) = 0
805 CALL WRITE_S_C(INORM,3)
806 ENDDO
807 IF (NFVNOD>0) THEN
808 DO I=1,3
809 INORM(1) = 0
810 INORM(2) = 0
811 INORM(3) = 0
812 CALL WRITE_S_C(INORM,3)
813 ENDDO
814 ENDIF
815 ENDIF
816C-----------------------------------------------
817C ELEMENT MASS FOR MAS & FUNC
818C-----------------------------------------------
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 ,
823 . EL2FA,NBF )
824 ENDIF
825C-----------------------------------------------
826C E(quad+shell+truss+..) FUNC TEXT
827C-----------------------------------------------
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'
832 CALL ANI_TXT(CTMOD,41)
833 WRITE(CTMOD,'(a7,i4,a8,i4,a11)')
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 '
847 CALL ani_txt(ctmod,35)
848 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
849 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress XY'
850 CALL ani_txt(ctmod,35)
851 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
852 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress YZ'
853 CALL ani_txt(ctmod,35)
854 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
855 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress XZ'
856 CALL ani_txt(ctmod,35)
857 ENDDO
858 IF (dsanim==1) THEN
859 DO i=1,nlevel
860 CALL ani_txt(ctitr(i),33)
861 ENDDO
862 ELSEIF (decani==1) THEN
863 CALL ani_txt(ctitr(1),25)
864 ENDIF
865 ENDIF
866C-----------------------------------------------
867C ELEMENT FUNC (quad+coque)
868C-----------------------------------------------
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
882 CALL write_r_c(r4,1)
883 ENDDO
884C
885 IF (nfvtr>0) THEN
886 r4=zero
887 DO j=1,nfvtr
888 CALL write_r_c(r4,1)
889 ENDDO
890 ENDIF
891C
892 ENDIF
893 ENDDO
894C
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 ! Don't work !!!
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
912 CALL write_r_c(r4,1)
913 ENDDO
914 IF (nfvtr>0) THEN
915 r4=zero
916 DO k=1,nfvtr
917 CALL write_r_c(r4,1)
918 ENDDO
919 ENDIF
920 ENDDO
921 ENDDO
922c
923 IF (dsanim==1) THEN
924 DO i=1,nlevel
925 DO j=1,nbf
926 func(j)=zero
927 ENDDO
928C Quad + Shell
929 off=1+numels
930 CALL delsub(nlevel, elsub, i, off, numelq+numelc,
931 . el2fa , func)
932C Shell 3 nodes
933 off=off+numelq+numelc+numelt+numelp+numelr
934 CALL delsub(nlevel, elsub, i, off, numeltg,
935 . el2fa(1+numelq+numelc), func)
936C
937 DO j=1,nbf
938 r4=func(j)
939 CALL write_r_c(r4,1)
940 ENDDO
941 r4=zero
942 DO j=1,nesbw2
943 CALL write_r_c(r4,1)
944 ENDDO
945 IF (nfvtr>0) THEN
946 r4=zero
947 DO j=1,nfvtr
948 CALL write_r_c(r4,1)
949 ENDDO
950 ENDIF
951 ENDDO
952 ELSEIF (decani==1) THEN
953 DO i=1,nbf
954 func(i)=zero
955 ENDDO
956C Quad + Shell
957 off=1+numels
958 CALL delsub(1, cep, 1, off, numelq+numelc,
959 . el2fa, func)
960C Shell 3 nodes
961 off=off+numelq+numelc+numelt+numelp+numelr
962 CALL delsub(1, cep, 1, off, numeltg,
963 . el2fa(1+numelq+numelc), func)
964C
965 DO i=1,nbf
966 r4=func(i)
967 CALL write_r_c(r4,1)
968 ENDDO
969 r4=zero
970 DO i=1,nesbw2
971 CALL write_r_c(r4,1)
972 ENDDO
973 IF (nfvtr>0) THEN
974 r4=zero
975 DO j=1,nfvtr
976 CALL write_r_c(r4,1)
977 ENDDO
978 ENDIF
979 ENDIF
980 ENDIF
981C-----------------------------------------------
982C VECT TEXT
983C-----------------------------------------------
984 DO i=1,nmanim
985 WRITE(ctmod,'(A7,I4,A8,I4,A15)')
986 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Displacement'
987 CALL ani_txt(ctmod,38)
988 ENDDO
989C
990 nnnsrg=nnsrg+nnsmd+nnsph+2*numels16
991 DO i=1,nmanim
992 CALL velvec(mdepl(1,i),nnwl,nnnsrg)
993 ENDDO
994C-----------------------------------------------
995C 2D TENSOR TEXT
996C-----------------------------------------------
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)'
1002 CALL ani_txt(ctmod,44)
1003 WRITE(ctmod,'(A7,I4,A8,I4,A23)')
1004 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),
1005 . ' - Stress (moment/t^2)'
1006 CALL ani_txt(ctmod,46)
1007 ENDDO
1008C-----------------------------------------------
1009C 2D TENSOR
1010C-----------------------------------------------
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
1020 CALL write_r_c(r4,1)
1021 CALL write_r_c(r4,1)
1022 CALL write_r_c(r4,1)
1023 ENDDO
1024 ENDIF
1025 ENDDO
1026 nmfunc(1)=1
1027 nmfunc(2)=2
1028 DO i=1,nmanim ! Don't work !!!
1029 DO j=1,2
1030 ifunc=nmfunc(j)
1031! CALL TENSORC(MBUFEL(1,I), IPARG, IFUNC,
1032! . INVERT, NELCUT, EL2FA, NBF, WAFT,
1033! .IAD, nbf_l, nbpart,
1034! . X, IXC, IGEO, IXTG)
1035 r4 = zero
1036 DO k=1,nesbw2
1037 CALL write_r_c(r4,1)
1038 CALL write_r_c(r4,1)
1039 CALL write_r_c(r4,1)
1040 ENDDO
1041 ENDDO
1042 ENDDO
1043 ENDIF
1044C-----------------------------------------------
1045C ELEMENT MASS
1046C-----------------------------------------------
1047 IF(anim_m==1)THEN
1048 DO i=1,nbf
1049 r4 = mas(i)
1050 CALL write_r_c(r4,1)
1051 ENDDO
1052C
1053 r4 = 0.
1054 DO j=1,nesbw2+nelcut
1055 CALL write_r_c(r4,1)
1056 ENDDO
1057 IF (nfvtr>0) THEN
1058 r4=zero
1059 DO j=1,nfvtr
1060 CALL write_r_c(r4,1)
1061 ENDDO
1062 ENDIF
1063C-----------------------------------------------
1064C NODAL MASS (FLUX FOR CUT)
1065C-----------------------------------------------
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)
1079 CALL write_r_c(r4,1)
1080 ENDDO
1081C
1082 r4 = zero
1083 sz16 = numels16
1084 sznnsph = nnsph
1085 DO n=1,nsect+nrwall+nnwl+nnsrg+nnsmd+sznnsph+2*sz16
1086 CALL write_r_c(r4,1)
1087 ENDDO
1088 IF (nfvnod>0) THEN
1089 r4=zero
1090 DO n=1,nfvnod+3
1091 CALL write_r_c(r4,1)
1092 ENDDO
1093 ENDIF
1094 ENDIF
1095C-------------------
1096C NODAL NUMBERING
1097C-------------------
1098 CALL write_i_c(itab,numnod)
1099 sz16 = numels16
1100 sznnsph = nnsph
1101 DO i=1,nodcut+nsect+nrwall+nnwl+nnsrg+nnsmd+sznnsph+2*sz16
1102 CALL write_i_c(0,1)
1103 ENDDO
1104C
1105 IF (nfvnod>0) THEN
1106 DO i=1,nfvbag
1107 IF (fvdata(i)%NPOLH_ANIM>0) THEN
1108 DO j=1,fvdata(i)%NNS_ANIM
1109 jj=fvoff(2,i)+j
1110 CALL write_i_c(jj,1)
1111 ENDDO
1112 ENDIF
1113 ENDDO
1114 CALL write_i_c(idmax+nfvnod+1,1)
1115 CALL write_i_c(idmax+nfvnod+2,1)
1116 CALL write_i_c(idmax+nfvnod+3,1)
1117 ENDIF
1118C--------------------
1119C ELEMENT NUMBERING
1120C--------------------
1121 CALL delnumbc(iparg,ixq ,ixc ,ixtg ,
1122 . el2fa,nbf ,waft ,nelcut,
1123 . nbpart,idcmax)
1124 DO j=1,nesbw2
1125 CALL write_i_c(0,1)
1126 ENDDO
1127 IF (nfvtr>0) THEN
1128 DO i=1,nfvtr
1129 CALL write_i_c(idcmax+fvinum(i),1)
1130 ENDDO
1131 DEALLOCATE(fvel2fa, fvinum)
1132 ENDIF
1133C-----------------------------------------------
1134C HIERARCHY
1135C-----------------------------------------------
1136C Transmis a ANIM ::
1137C Subset Rbodies == NSUBS
1138C Subset Sections == NSUBS+MIN(1,NRBODY)
1139C Subset Rwalls == NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)
1140C Subset Surfaces == NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWAL
1141C Subset global == NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWAL
1142C +MIN(1,NSURG+NSMAD)
1143 DO i=1,npart
1144 IF(mater(i)==1) THEN
1145 IF (ipart(3,i)<nsubs) THEN
1146 CALL write_i_c(ipart(3,i)-1,1)
1147 ELSE
1148 CALL write_i_c(nsubs
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
1155 CALL write_i_c(nsubs
1156 . +min(1,nsect)+min(1,nrbody)+min(1,nrwall)
1157 . +min(1,nsurg+nsmad)-1,1)
1158 ENDDO
1159 DO i=1,nsect
1160 CALL write_i_c(nsubs+min(1,nrbody)-1,1)
1161 END DO
1162 DO i=1,nrwall
1163 CALL write_i_c(nsubs+min(1,nsect)+min(1,nrbody)-1,1)
1164 END DO
1165 DO i=1,nsurg
1166 CALL write_i_c(nsubs+min(1,nsect)+min(1,nrbody)
1167 . +min(1,nrwall)-1,1)
1168 END DO
1169 DO i=1,nsmad
1170 CALL write_i_c(nsubs+min(1,nsect)+min(1,nrbody)
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
1177 DO i=1,nfvbag
1178 IF (fvdata(i)%NPOLH_ANIM>0) THEN
1179 ii=ii+1
1180 DO j=1,fvdata(i)%NPOLH_ANIM
1181 CALL write_i_c(ii-1,1)
1182 ENDDO
1183 ENDIF
1184 ENDDO
1185 ENDIF
1186C
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
1191 CALL write_i_c(0,1)
1192 ENDDO
1193 DO i=1,nfvpart
1194 CALL write_i_c(0,1)
1195 ENDDO
1196C
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
1201 CALL write_i_c(0,1)
1202 ENDDO
1203 DO i=1,nfvpart
1204 CALL write_i_c(0,1)
1205 ENDDO
1206C=======================================================================
1207C
1208C BRICKS
1209C
1210C=======================================================================
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
1220C-----------------------------------------------
1221C PART COUNT
1222C-----------------------------------------------
1223C
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
1233C 3D geometry is not yet treated.
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
1241C
1242 nbpart = 0
1243 DO i=1,npart
1244 nbpart = nbpart + mater(i)/2
1245 ENDDO
1246C-----------------------------------------------
1247C WRITE CONTROL
1248C-----------------------------------------------
1249 CALL write_i_c(numels+isph3d*(numsph+maxpjet)
1250 . +3*numels16,1)
1251 CALL write_i_c(nbpart,1)
1252 CALL write_i_c(nse_ani,1)
1253 CALL write_i_c(nst_ani,1)
1254C-----------------------------------------------
1255C PART SORT
1256C-----------------------------------------------
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 )
1266C-----------------------------------------------
1267C OFF
1268C-----------------------------------------------
1269 nnn = numels+isph3d*(numsph+maxpjet)+3*numels16
1270 CALL anioffs(elbuf_tab ,iparg,waft ,el2fa ,
1271 . nnn ,nbpart,isph3d )
1272C-----------------------------------------------
1273C PART ADD
1274C-----------------------------------------------
1275 CALL write_i_c(iad,nbpart)
1276C-----------------------------------------------
1277C PART HEAD
1278C-----------------------------------------------
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
1292 CALL write_c_c(ctext,10+ltitl)
1293 ENDIF
1294 ENDDO
1295C-----------------------------------------------
1296C ELEMENT MASS FOR MAS & FUNC
1297C-----------------------------------------------
1298 IF(anim_m==1.OR.anim_se(3)==1.OR.
1299 . anim_se(25)==1)THEN
1300 CALL dmasanis(elbuf_tab,iparg ,
1301 2 ixs ,mas ,pm ,el2fa ,numels ,
1302 3 ipart ,ipartsp ,isph3d )
1303 ENDIF
1304C-----------------------------------------------
1305C BRICK FUNC TEXT
1306C-----------------------------------------------
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'
1311 CALL ani_txt(ctmod,41)
1312 WRITE(ctmod,'(A7,I4,A8,I4,A11)')
1313 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Pressure'
1314 CALL ani_txt(ctmod,34)
1315 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1316 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Von Mises'
1317 CALL ani_txt(ctmod,35)
1318 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1319 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress X '
1320 CALL ani_txt(ctmod,35)
1321 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1322 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress Y '
1323 CALL ani_txt(ctmod,35)
1324 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1325 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress Z '
1326 CALL ani_txt(ctmod,35)
1327 WRITE(ctmod,'(A7,I4,A8,I4,A12)')
1328 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress XY'
1329 CALL ani_txt(ctmod,35)
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
1344C-----------------------------------------------
1345C ELEMENT FUNC (brick)
1346C-----------------------------------------------
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
1358C
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
1380C Brick
1381 off=1
1382 CALL delsub(nlevel, elsub, i, off, numels,
1383 . el2fa, func)
1384C
1385 DO j=1,nnn
1386 r4=func(j)
1387 CALL write_r_c(r4,1)
1388 ENDDO
1389 ENDDO
1390 ELSEIF (decani==1) THEN
1391 DO i=1,nnn
1392 func(i)=zero
1393 ENDDO
1394C Brick
1395 off=1
1396 CALL delsub(1, cep, 1, off, numels,
1397 . el2fa, func)
1398C SPH particles
1399 IF (isph3d==1) THEN
1400 off=1
1401 CALL delsub(1, cepsp,1 ,off, numsph,
1402 . el2fa(1+numels), func)
1403 ENDIF
1404C
1405 DO i=1,nnn
1406 r4=func(i)
1407 CALL write_r_c(r4,1)
1408 ENDDO
1409 ENDIF
1410C-----------------------------------------------
1411C 3D TENSOR TEXT
1412C-----------------------------------------------
1413 DO i=1,nmanim
1414 WRITE(ctmod,'(A7,I4,A8,I4,A9)')
1415 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Stress'
1416 CALL ani_txt(ctmod,32)
1417 ENDDO
1418C-----------------------------------------------
1419C 3D TENSOR
1420C-----------------------------------------------
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! CALL TENSORS(MBUFEL(1,I), IPARG, IFUNC, IXS, PM,
1434! . EL2FA, NNN, WAFT,
1435! . X, IPART,IPARTSP, ISPH3D, IPM )
1436 ENDDO
1437 ENDDO
1438C-----------------------------------------------
1439C ELEMENT MASS
1440C-----------------------------------------------
1441 IF(anim_m==1)THEN
1442 DO i=1,nnn
1443 r4 = mas(i)
1444 CALL write_r_c(r4,1)
1445 ENDDO
1446 ENDIF
1447C-----------------------------------------------
1448C BRICK NUMBERING
1449C-----------------------------------------------
1450 CALL delnumbs(iparg,ixs ,el2fa,nnn ,waft ,
1451 . kxsp ,isph3d )
1452C-----------------------------------------------
1453C HIERARCHY
1454C-----------------------------------------------
1455 DO i=1,npart
1456 IF(mater(i)==2)THEN
1457 IF (ipart(3,i)<nsubs) THEN
1458 CALL write_i_c(ipart(3,i)-1,1)
1459 ELSE
1460 CALL write_i_c(nsubs
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
1472C=======================================================================
1473 400 CONTINUE
1474C=======================================================================
1475C
1476C POUTRE TRUSS SPRING
1477C + RBODIES
1478C
1479C=======================================================================
1480 nerby = 0
1481 IF (nrbody>0)
1482 . CALL drbycnt(nerby,npby)
1483 nb1d_t = nb1d
1484 IF(nb1d+nanim1d+nerby==0) GOTO 600
1485C-----------------------------------------------
1486C PART COUNT
1487C-----------------------------------------------
1488C
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
1506C
1507 nbpart = 0
1508 DO i=1,npart
1509 nbpart = nbpart + mater(i)/3
1510 ENDDO
1511C
1512 DO i=1,nb1d + 1
1513 el2fa(i)=0
1514 ENDDO
1515C-----------------------------------------------
1516C WRITE CONTROL
1517C-----------------------------------------------
1518 CALL write_i_c(nb1d+nanim1d+nerby,1)
1519 CALL write_i_c(nbpart+nrbody,1)
1520 IF (dsanim==1) THEN
1521 nfe_ani=nfe_ani+nlevel
1522 ELSEIF (decani==1) THEN
1523 nfe_ani=nfe_ani+1
1524 ENDIF
1525 CALL write_i_c(nfe_ani,1)
1526 CALL write_i_c(nft_ani,1)
1527C FLAG FOR SKEW
1528 CALL write_i_c(1,1)
1529
1530C-----------------------------------------------
1531C PART SORT
1532C-----------------------------------------------
1533 CALL parsorf(iad ,iparg,ixt ,ixp ,ixr ,
1534 . mater,el2fa,
1535 . ipartt,ipartp,ipartr,nfacptx,ixedge)
1536 IF(nrbody>0) THEN
1537 CALL dparrby(lpby ,npby )
1538 ENDIF
1539C-----------------------------------------------
1540C OFF
1541C-----------------------------------------------
1542 CALL aniofff(elbuf_tab,iparg,waft,el2fa,
1543 . nb1d ,ioffx1)
1544 DO j=1,nerby
1545 CALL write_c_c(1,1)
1546 ENDDO
1547C-----------------------------------------------
1548C PART ADD
1549C-----------------------------------------------
1550 CALL write_i_c(iad,nbpart)
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)
1557 CALL write_i_c(nb1d+nanim1d+nerby1,1)
1558 END DO
1559C-----------------------------------------------
1560C PART HEAD
1561C-----------------------------------------------
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
1576 CALL write_c_c(ctext,10+ltitl)
1577
1578 ENDIF
1579 ENDDO
1580C
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
1590 CALL write_c_c(ctext,10+ltitl)
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
1606 CALL write_c_c(ctext,10+ltitl)
1607 END DO
1608 END IF
1609C-----------------------------------------------
1610C ELEMENT MASS FOR MAS & FUNC
1611C-----------------------------------------------
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 ,
1615 . el2fa ,nb1d )
1616 ENDIF
1617C-----------------------------------------------
1618C E(truss+..) FUNC TEXT
1619C-----------------------------------------------
1620 DO i=1,nmanim
1621 WRITE(ctmod,'(A7,I4,A8,I4,A18)')
1622 . 'Fxbody ',fxani(1,i),' - Mode ',fxani(2,i),' - Specific Energy'
1623 CALL ani_txt(ctmod,41)
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)
1645 ENDDO
1646 IF (DSANIM==1) THEN
1647 DO I=1,NLEVEL
1648 CALL ANI_TXT(CTITR(I),33)
1649 ENDDO
1650 ELSEIF (DECANI==1) THEN
1651 CALL ANI_TXT(CTITR(1),25)
1652 ENDIF
1653C-----------------------------------------------
1654C ELEMENT FUNC (truss+..)
1655C-----------------------------------------------
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
1668 CALL WRITE_R_C(R4,1)
1669 ENDDO
1670 ENDIF
1671 ENDDO
1672C
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! CALL DFUNCF(MBUFEL(1,I), WAFT, IFUNC, IPARG, GEO,
1685! . IXT, IXP, IXR, MAS, PM,
1686! . EL2FA, NB1D, IAD, NBPART,
1687! . XFUNC1)
1688 R4 = ZERO
1689 DO K=1,NERBY
1690 CALL WRITE_R_C(R4,1)
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
1699C 1D elements
1700 OFF=1+NUMELS+NUMELQ+NUMELC
1701 CALL DELSUB(NLEVEL, ELSUB, I, OFF, NUMELT+NUMELP+NUMELR,
1702 . EL2FA, FUNC )
1703C
1704 DO J=1,NB1D
1705 R4=FUNC(J)
1706 CALL WRITE_R_C(R4,1)
1707 ENDDO
1708 R4 = ZERO
1709 DO J=1,NANIM1D
1710 CALL WRITE_R_C(R4,1)
1711 ENDDO
1712 DO J=1,NERBY
1713 CALL WRITE_R_C(R4,1)
1714 ENDDO
1715 ENDDO
1716 ELSEIF (DECANI==1) THEN
1717 DO I=1,NB1D
1718 FUNC(I)=ZERO
1719 ENDDO
1720C 1D elements
1721 OFF=1+NUMELS+NUMELQ+NUMELC
1722 CALL DELSUB(1, CEP, 1, OFF, NUMELT+NUMELP+NUMELR,
1723 . EL2FA, FUNC)
1724C
1725 DO I=1,NB1D
1726 R4=FUNC(I)
1727 CALL WRITE_R_C(R4,1)
1728 ENDDO
1729 R4=ZERO
1730 DO I=1,NANIM1D
1731 CALL WRITE_R_C(R4,1)
1732 ENDDO
1733 DO I=1,NERBY
1734 CALL WRITE_R_C(R4,1)
1735 ENDDO
1736 ENDIF
1737C-----------------------------------------------
1738C SKEW
1739C-----------------------------------------------
1740 LRBUF = 0
1741
1742 CALL ANISKEWF(GEO,SKEW,IPARG,IXR,LRBUF)
1743 DO I=1,NANIM1D
1744 CALL WRITE_I_C(0,1)
1745 ENDDO
1746 DO J=1,NERBY
1747 CALL WRITE_I_C(0,1)
1748 ENDDO
1749C-----------------------------------------------
1750C ELEMENT MASS
1751C-----------------------------------------------
1752 IF(ANIM_M==1)THEN
1753 DO I=1,NB1D
1754 R4 = MAS(I)
1755 CALL WRITE_R_C(R4,1)
1756 ENDDO
1757 R4 = 0.
1758 DO J=1,NERBY
1759 CALL WRITE_R_C(R4,1)
1760 ENDDO
1761 ENDIF
1762C-----------------------------------------------
1763C ELEMENT NUMBERING
1764C-----------------------------------------------
1765 CALL DELNUMBF(IPARG,IXT ,IXP ,IXR ,
1766 . EL2FA,NB1D ,WAFT ,
1767 . INUMX1 )
1768 DO J=1,NERBY
1769 CALL WRITE_I_C(0,1)
1770 ENDDO
1771C-----------------------------------------------
1772C HIERARCHY
1773C-----------------------------------------------
1774 DO I=1,NPART
1775 IF(MATER(I)==3)THEN
1776 IF (IPART(3,I)<NSUBS) THEN
1777 CALL WRITE_I_C(IPART(3,I)-1,1)
1778 ELSE
1779 CALL WRITE_I_C(NSUBS
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
1785c Subset Rbodies == NSUBS
1786 DO I=1,NRBODY
1787 CALL WRITE_I_C(NSUBS-1,1)
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
1793 CALL WRITE_I_C(0,1)
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
1799 CALL WRITE_I_C(0,1)
1800 ENDDO
1801C=======================================================================
1802 600 CONTINUE
1803C=======================================================================
1804C
1805C HIERARCHY
1806C
1807C=======================================================================
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
1834C-----------------------------------------------
1835C WRITE CONTROL
1836C-----------------------------------------------
1837 CALL WRITE_I_C(NSUBS
1838 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1839 . +MIN(1,NSURG+NSMAD)+NFVSUBS,1)
1840C-----------------------------------------------
1841C SUBSET HEAD/PARENT/
1842C-----------------------------------------------
1843 IF (NSUBS==1) THEN
1844C-----------------------------
1845C ONE SEUL SUBSET OU INPUT V31
1846C-----------------------------
1847 MXSUBS=1
1848C-----------------
1849C SUBSET RBODIES
1850C-----------------
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
1857 CALL WRITE_C_C(CTEXT,10+LTITL)
1858C SUBSET PARENT == GLOBAL
1859 CALL WRITE_I_C(NSUBS
1860 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1861 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
1862C #SUBSETS FILS
1863 CALL WRITE_I_C(0,1)
1864C SUBSETS FILS
1865C #PARTS FILLES
1866 N1=0
1867 N2=0
1868 N3=NRBODY
1869C PARTS FILLES 2D
1870 CALL WRITE_I_C(N1,1)
1871C PARTS FILLES 3D
1872 CALL WRITE_I_C(N2,1)
1873C PARTS FILLES 1D
1874 CALL WRITE_I_C(N3,1)
1875 DO J=NRBODY,1,-1
1876 CALL WRITE_I_C(M3-J-M2,1)
1877 ENDDO
1878 END IF
1879C-----------------
1880C SUBSET SECTIONS
1881C-----------------
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
1888 CALL WRITE_C_C(CTEXT,10+LTITL)
1889C SUBSET PARENT == GLOBAL
1890 CALL WRITE_I_C(NSUBS
1891 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1892 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
1893C #SUBSETS FILS
1894 CALL WRITE_I_C(0,1)
1895C SUBSETS FILS
1896C #PARTS FILLES
1897 N1=NSECT
1898 N2=0
1899 N3=0
1900C PARTS FILLES 2D
1901 CALL WRITE_I_C(N1,1)
1902 DO J=NSECT,1,-1
1903 CALL WRITE_I_C(M1-NSURG-NSMAD-NRWALL-J,1)
1904 ENDDO
1905C PARTS FILLES 3D
1906 CALL WRITE_I_C(N2,1)
1907C PARTS FILLES 1D
1908 CALL WRITE_I_C(N3,1)
1909 END IF
1910C-----------------
1911C SUBSET RWALLS
1912C-----------------
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
1920 CALL WRITE_C_C(CTEXT,10+LTITL)
1921C SUBSET PARENT == GLOBAL
1922 CALL WRITE_I_C(NSUBS
1923 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1924 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
1925C #SUBSETS FILS
1926 CALL WRITE_I_C(0,1)
1927C SUBSETS FILS
1928C #PARTS FILLES
1929 N1=NRWALL
1930 N2=0
1931 N3=0
1932C PARTS FILLES 2D
1933 CALL WRITE_I_C(N1,1)
1934 DO J=NRWALL,1,-1
1935 CALL WRITE_I_C(M1-NSURG-NSMAD-J,1)
1936 ENDDO
1937C PARTS FILLES 3D
1938 CALL WRITE_I_C(N2,1)
1939C PARTS FILLES 1D
1940 CALL WRITE_I_C(N3,1)
1941 END IF
1942C-----------------
1943C SUBSET SURFACES
1944C-----------------
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
1953 CALL WRITE_C_C(CTEXT,10+LTITL)
1954C SUBSET PARENT == GLOBAL
1955 CALL WRITE_I_C(NSUBS
1956 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1957 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
1958C #SUBSETS FILS
1959 CALL WRITE_I_C(0,1)
1960C SUBSETS FILS
1961C #PARTS FILLES
1962 N1=NSURG+NSMAD
1963 N2=0
1964 N3=0
1965C PARTS FILLES 2D
1966 CALL WRITE_I_C(N1,1)
1967 DO J=NSURG+NSMAD,1,-1
1968 CALL WRITE_I_C(M1-J,1)
1969 ENDDO
1970C PARTS FILLES 3D
1971 CALL WRITE_I_C(N2,1)
1972C PARTS FILLES 1D
1973 CALL WRITE_I_C(N3,1)
1974 END IF
1975C-----------------
1976C SUBSETS FVMBAG
1977C-----------------
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
1983 DO I=1,NFVBAG
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
1992 CALL WRITE_C_C(CTEXT,10+LTITL)
1993C SUBSET PARENT == GLOBAL
1994 CALL WRITE_I_C(NSUBS
1995 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
1996 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
1997C #SUBSETS FILS
1998 CALL WRITE_I_C(0,1)
1999C PARTS FILLES 2D
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)
2003 ENDDO
2004 OFFPART=OFFPART+FVDATA(I)%NPOLH_ANIM
2005C PARTS FILLES 3D
2006 CALL WRITE_I_C(0,1)
2007C PARTS FILLES 1D
2008 CALL WRITE_I_C(0,1)
2009 ENDIF
2010 ENDDO
2011 ENDIF
2012C--------------
2013C GLOBAL MODEL
2014C--------------
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
2020 CALL WRITE_C_C(CTEXT,10+LTITL)
2021C SUBSET PARENT
2022 CALL WRITE_I_C(-1,1)
2023C #SUBSETS FILS
2024 CALL WRITE_I_C(MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2025 . +MIN(1,NSURG+NSMAD)+NFVSUBS,1)
2026C SUBSETS FILS
2027 IF (NRBODY>0)
2028 . CALL WRITE_I_C(NSUBS-1,1)
2029 IF (NSECT>0)
2030 . CALL WRITE_I_C(NSUBS+MIN(1,NRBODY)-1,1)
2031 IF (NRWALL>0)
2032 . CALL WRITE_I_C(NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)-1,1)
2033 IF (NSURG+NSMAD>0)
2034 . CALL WRITE_I_C(NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)
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
2039 DO I=1,NFVBAG
2040 II=II+1
2041 CALL WRITE_I_C(II-1,1)
2042 ENDDO
2043 ENDIF
2044C #PARTS FILLES
2045 N1=0
2046 N2=0
2047 N3=0
2048 DO K=1,NPART
2049.AND. IF(MATER(K)>0MATER(K)<=M01)THEN
2050 N1=N1+1
2051.AND. ELSEIF(MATER(K)>M1MATER(K)<=M2)THEN
2052 N2=N2+1
2053 ELSEIF(MATER(K)>M2)THEN
2054 N3=N3+1
2055 ENDIF
2056 ENDDO
2057C CUTS IN THE GLOBAL SUBSET
2058 N1=N1+NCUTS
2059C PARTS FILLES 2D
2060 CALL WRITE_I_C(N1,1)
2061 DO K=1,NPART
2062.AND. IF(MATER(K)>0MATER(K)<=M01)
2063 . CALL WRITE_I_C(MATER(K)-1,1)
2064 ENDDO
2065C CUTS IN THE GLOBAL SUBSET
2066 DO J=1,NCUTS
2067 CALL WRITE_I_C(M1-NRWALL-NSECT-NSURG-NSMAD-J,1)
2068 ENDDO
2069C PARTS FILLES 3D
2070 CALL WRITE_I_C(N2,1)
2071 DO K=1,NPART
2072.AND. IF(MATER(K)>M1MATER(K)<=M2)
2073 . CALL WRITE_I_C(MATER(K)-M1-1,1)
2074 ENDDO
2075C PARTS FILLES 1D
2076 CALL WRITE_I_C(N3,1)
2077 DO K=1,NPART
2078 IF(MATER(K)>M2)CALL WRITE_I_C(MATER(K)-M2-1,1)
2079 ENDDO
2080 ELSE
2081C----------------
2082C +SIEURS SUBSET ET INPUT V4.X
2083C----------------
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
2098 CALL WRITE_C_C(CTEXT,10+LTITL)
2099C SUBSET PARENT
2100 IF (SUBSET(I)%PARENT < NSUBS) THEN
2101 CALL WRITE_I_C(SUBSET(I)%PARENT-1,1)
2102 ELSE
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)
2106 END IF
2107C #SUBSETS FILS
2108 CALL WRITE_I_C(SUBSET(I)%NCHILD,1)
2109C SUBSETS FILS
2110 DO J=1,SUBSET(I)%NCHILD
2111 CALL WRITE_I_C(SUBSET(I)%CHILD(J)-1,1)
2112 ENDDO
2113C #PARTS FILLES
2114 N1=0
2115 N2=0
2116 N3=0
2117 DO J=1,SUBSET(I)%NPART
2118 K = SUBSET(I)%PART(J)
2119.AND. IF(MATER(K)>0MATER(K)<=M01)THEN
2120 N1=N1+1
2121.AND. ELSEIF(MATER(K)>M1MATER(K)<=M2)THEN
2122 N2=N2+1
2123 ELSEIF(MATER(K)>M2)THEN
2124 N3=N3+1
2125 ENDIF
2126 ENDDO
2127C PARTS FILLES 2D
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)
2133 ENDDO
2134C PARTS FILLES 3D
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)
2140 ENDDO
2141C PARTS FILLES 1D
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)
2146 ENDDO
2147 ENDDO
2148C-----------------
2149C SUBSET RBODIES
2150C-----------------
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
2157 CALL WRITE_C_C(CTEXT,10+LTITL)
2158C SUBSET PARENT == GLOBAL
2159 CALL WRITE_I_C(NSUBS
2160 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2161 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2162C #SUBSETS FILS
2163 CALL WRITE_I_C(0,1)
2164C SUBSETS FILS
2165C #PARTS FILLES
2166 N1=0
2167 N2=0
2168 N3=NRBODY
2169C PARTS FILLES 2D
2170 CALL WRITE_I_C(N1,1)
2171C PARTS FILLES 3D
2172 CALL WRITE_I_C(N2,1)
2173C PARTS FILLES 1D
2174 CALL WRITE_I_C(N3,1)
2175 DO J=NRBODY,1,-1
2176 CALL WRITE_I_C(M3-J-M2,1)
2177 ENDDO
2178 END IF
2179C-----------------
2180C SUBSET SECTIONS
2181C-----------------
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
2188 CALL WRITE_C_C(CTEXT,10+LTITL)
2189C SUBSET PARENT == GLOBAL
2190 CALL WRITE_I_C(NSUBS
2191 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2192 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2193C #SUBSETS FILS
2194 CALL WRITE_I_C(0,1)
2195C SUBSETS FILS
2196C #PARTS FILLES
2197 N1=NSECT
2198 N2=0
2199 N3=0
2200C PARTS FILLES 2D
2201 CALL WRITE_I_C(N1,1)
2202 DO J=NSECT,1,-1
2203 CALL WRITE_I_C(M1-NSURG-NSMAD-NRWALL-J,1)
2204 ENDDO
2205C PARTS FILLES 3D
2206 CALL WRITE_I_C(N2,1)
2207C PARTS FILLES 1D
2208 CALL WRITE_I_C(N3,1)
2209 END IF
2210C-----------------
2211C SUBSET RWALLS
2212C-----------------
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
2220 CALL WRITE_C_C(CTEXT,10+LTITL)
2221C SUBSET PARENT == GLOBAL
2222 CALL WRITE_I_C(NSUBS
2223 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2224 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2225C #SUBSETS FILS
2226 CALL WRITE_I_C(0,1)
2227C SUBSETS FILS
2228C #PARTS FILLES
2229 N1=NRWALL
2230 N2=0
2231 N3=0
2232C PARTS FILLES 2D
2233 CALL WRITE_I_C(N1,1)
2234 DO J=NRWALL,1,-1
2235 CALL WRITE_I_C(M1-NSURG-NSMAD-J,1)
2236 ENDDO
2237C PARTS FILLES 3D
2238 CALL WRITE_I_C(N2,1)
2239C PARTS FILLES 1D
2240 CALL WRITE_I_C(N3,1)
2241 END IF
2242C-----------------
2243C SUBSET SURFACES
2244C-----------------
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
2253 CALL WRITE_C_C(CTEXT,10+LTITL)
2254C SUBSET PARENT == GLOBAL
2255 CALL WRITE_I_C(NSUBS
2256 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2257 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2258C #SUBSETS FILS
2259 CALL WRITE_I_C(0,1)
2260C SUBSETS FILS
2261C #PARTS FILLES
2262 N1=NSURG+NSMAD
2263 N2=0
2264 N3=0
2265C PARTS FILLES 2D
2266 CALL WRITE_I_C(N1,1)
2267 DO J=NSURG+NSMAD,1,-1
2268 CALL WRITE_I_C(M1-J,1)
2269 ENDDO
2270C PARTS FILLES 3D
2271 CALL WRITE_I_C(N2,1)
2272C PARTS FILLES 1D
2273 CALL WRITE_I_C(N3,1)
2274 END IF
2275C-----------------
2276C SUBSETS FVMBAG
2277C-----------------
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
2283 DO I=1,NFVBAG
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
2292 CALL WRITE_C_C(CTEXT,10+LTITL)
2293C SUBSET PARENT == GLOBAL
2294 CALL WRITE_I_C(NSUBS
2295 . +MIN(1,NSECT)+MIN(1,NRBODY)+MIN(1,NRWALL)
2296 . +MIN(1,NSURG+NSMAD)+NFVSUBS-1,1)
2297C #SUBSETS FILS
2298 CALL WRITE_I_C(0,1)
2299C PARTS FILLES 2D
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)
2303 ENDDO
2304 OFFPART=OFFPART+FVDATA(I)%NPOLH_ANIM
2305C PARTS FILLES 3D
2306 CALL WRITE_I_C(0,1)
2307C PARTS FILLES 1D
2308 CALL WRITE_I_C(0,1)
2309 ENDIF
2310 ENDDO
2311 ENDIF
2312C--------------
2313C GLOBAL MODEL
2314C--------------
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
2326 CALL WRITE_C_C(CTEXT,10+LTITL)
2327C SUBSET PARENT
2328 CALL WRITE_I_C(SUBSET(NSUBS)%PARENT-1,1)
2329C #SUBSETS FILS
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)
2333C SUBSETS FILS
2334 DO J=1,SUBSET(NSUBS)%NCHILD
2335 CALL WRITE_I_C(SUBSET(NSUBS)%CHILD(J)-1,1)
2336 ENDDO
2337 IF (NRBODY>0)
2338 . CALL WRITE_I_C(NSUBS-1,1)
2339 IF (NSECT>0)
2340 . CALL WRITE_I_C(NSUBS+MIN(1,NRBODY)-1,1)
2341 IF (NRWALL>0)
2342 . CALL WRITE_I_C(NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)-1,1)
2343 IF (NSURG+NSMAD>0)
2344 . CALL WRITE_I_C(NSUBS+MIN(1,NSECT)+MIN(1,NRBODY)
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)
2349 DO I=1,NFVBAG
2350 CALL WRITE_I_C(II-1,1)
2351 II=II+1
2352 ENDDO
2353 ENDIF
2354C #PARTS FILLES
2355 N1=0
2356 N2=0
2357 N3=0
2358 DO J=1,SUBSET(I)%NPART
2359 K = SUBSET(I)%PART(J)
2360.AND. IF(MATER(K)>0MATER(K)<=M01)THEN
2361 N1=N1+1
2362.AND. ELSEIF(MATER(K)>M1MATER(K)<=M2)THEN
2363 N2=N2+1
2364 ELSEIF(MATER(K)>M2)THEN
2365 N3=N3+1
2366 ENDIF
2367 ENDDO
2368C CUTS IN THE GLOBAL SUBSET
2369 N1=N1+NCUTS
2370C PARTS FILLES 2D
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)
2376 ENDDO
2377C CUTS DANS LE SUBSET GLOBAL
2378 DO J=1,NCUTS
2379 CALL WRITE_I_C(M1-NRWALL-NSECT-NSURG-NSMAD-J,1)
2380 ENDDO
2381C PARTS FILLES 3D
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)
2387 ENDDO
2388C PARTS FILLES 1D
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)
2393 ENDDO
2394 ENDIF
2395C-----------------------------------------------
2396C WRITE CONTROL
2397C-----------------------------------------------
2398 CALL WRITE_I_C(NUMMAT+1,1)
2399 CALL WRITE_I_C(NUMGEO+1,1)
2400C-----------------------------------------------
2401C MAT HEAD
2402C-----------------------------------------------
2403 CALL ANI_TXT50('dummy material',14)
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
2416 CALL WRITE_C_C(CTEXT,10+LTITL)
2417 ENDDO
2418C-----------------------------------------------
2419C MAT TYPE
2420C-----------------------------------------------
2421 CALL WRITE_I_C(0,1)
2422 DO I=1,NUMMAT
2423 CALL WRITE_I_C(NINT(PM(19,I)),1)
2424 ENDDO
2425C-----------------------------------------------
2426C PROP HEAD
2427C-----------------------------------------------
2428 CALL ANI_TXT50('dummy property',14)
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
2441 CALL WRITE_C_C(CTEXT,10+LTITL)
2442 ENDDO
2443C-----------------------------------------------
2444C PROP TYPE
2445C-----------------------------------------------
2446 CALL WRITE_I_C(0,1)
2447 DO I=1,NUMGEO
2448 CALL WRITE_I_C(NINT(GEO(12,I)),1)
2449 ENDDO
2450C=======================================================================
2451C
2452C Additional particles description, case of /ANIM/VERS/44 only.
2453C
2454C=======================================================================
2455.OR. IF(ISPH3D==1NUMSPH_T+MAXPJET==0) GOTO 700
2456C-----------------------------------------------
2457C PREPARE Subset outings: Part girls meshless
2458C-----------------------------------------------
2459 DO I=1,NPART
2460 MATER(I)=-MATER(I)
2461 ENDDO
2462C-----------------------------------------------
2463C PART COUNT
2464C-----------------------------------------------
2465 DO I=1,NUMSPH+MAXPJET
2466 MATER(IPARTSP(I))=4
2467 EL2FA(I)=0
2468 ENDDO
2469C
2470 NBPART = 0
2471 DO I=1,NPART
2472 IF(MATER(I)==4)NBPART = NBPART + 1
2473 ENDDO
2474C-----------------------------------------------
2475C WRITE CONTROL
2476C-----------------------------------------------
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)
2481C-----------------------------------------------
2482C PART SORT
2483C-----------------------------------------------
2484 CALL PARSOR0(IAD ,IPARG ,MATER ,EL2FA ,
2485 3 KXSP ,IPARTSP )
2486C-----------------------------------------------
2487C OFF
2488C-----------------------------------------------
2489 NNN = NUMSPH+MAXPJET
2490 CALL ANIOFF0(ELBUF_TAB ,IPARG ,WAFT ,EL2FA ,NNN ,
2491 1 SWAFT, SPH2SOL)
2492C-----------------------------------------------
2493C PART ADD
2494C-----------------------------------------------
2495 CALL WRITE_I_C(IAD,NBPART)
2496C-----------------------------------------------
2497C PART HEAD
2498C-----------------------------------------------
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
2512 CALL WRITE_C_C(CTEXT,10+LTITL)
2513 ENDIF
2514 ENDDO
2515C-----------------------------------------------
2516C ELEMENT MASS FOR MAS & FUNC
2517C-----------------------------------------------
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 )
2522 ENDIF
2523C-----------------------------------------------
2524C FUNC TEXT
2525C-----------------------------------------------
2526 CTEXT(81)=0
2527 CALL ANI_TXT('diameter',8)
2528 IF (DSANIM==1) THEN
2529 DO I=1,NLEVEL
2530 CALL ANI_TXT(CTITR(I),33)
2531 ENDDO
2532 ELSEIF (DECANI==1) THEN
2533 CALL ANI_TXT(CTITR(1),25)
2534 ENDIF
2535C-----------------------------------------------
2536C ELEMENT FUNC (SPH)
2537C-----------------------------------------------
2538 NNN = NUMSPH+MAXPJET
2539 DO I = 0,MX_ANI
2540 IFUNC = I
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 )
2544 ENDIF
2545 ENDDO
2546 IF (DECANI==1) THEN
2547 DO I=1,NUMSPH
2548 FUNC(I)=ZERO
2549 ENDDO
2550C SPH particles
2551 OFF=1
2552 CALL DELSUB(1, CEPSP, 1, OFF, NUMSPH,
2553 . EL2FA, FUNC )
2554C
2555 DO I=1,NUMSPH
2556 R4=FUNC(I)
2557 CALL WRITE_R_C(R4,1)
2558 ENDDO
2559 R4=ZERO
2560 DO I=1,MAXPJET
2561 CALL WRITE_R_C(R4,1)
2562 ENDDO
2563 ENDIF
2564C-----------------------------------------------
2565C 3D TENSOR (SPH)
2566C-----------------------------------------------
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
2574C-----------------------------------------------
2575C ELEMENT MASS (SPH)
2576C-----------------------------------------------
2577 IF(ANIM_M==1)THEN
2578 DO I=1,NNN
2579 R4 = MAS(I)
2580 CALL WRITE_R_C(R4,1)
2581 ENDDO
2582 ENDIF
2583C-----------------------------------------------
2584C NUMBERING (SPH)
2585C-----------------------------------------------
2586 CALL DELNUMB0(IPARG,EL2FA,NNN ,WAFT,KXSP )
2587C-----------------------------------------------
2588C HIERARCHY
2589C-----------------------------------------------
2590 DO I=1,NPART
2591 IF(MATER(I)==4)THEN
2592 IF (IPART(3,I)<NSUBS) THEN
2593 CALL WRITE_I_C(IPART(3,I)-1,1)
2594 ELSE
2595 CALL WRITE_I_C(NSUBS
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
2607C-----------------------------------------------
2608C SUBSET : PART FILLES MESHLESS
2609C-----------------------------------------------
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
2619C #PARTS FILLES meshless
2620 N0=0
2621 DO K=1,NPART
2622 IF(MATER(K)>M3)THEN
2623 N0=N0+1
2624 ENDIF
2625 ENDDO
2626C PARTS FILLES meshless
2627 CALL WRITE_I_C(N0,1)
2628 DO K=1,NPART
2629 IF(MATER(K)>M3)
2630 . CALL WRITE_I_C(MATER(K)-M3-1,1)
2631 ENDDO
2632 ELSE
2633C----------------
2634C +SIEURS SUBSET
2635C----------------
2636 DO I=1,NSUBS-1
2637C #PARTS FILLES meshless
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
2645C PARTS FILLES meshless
2646 CALL WRITE_I_C(N0,1)
2647 DO J=1,SUBSET(I)%NPART
2648 K = SUBSET(I)%PART(J)
2649 IF(MATER(K)>M3)
2650 . CALL WRITE_I_C(MATER(K)-M3-1,1)
2651 ENDDO
2652 ENDDO
2653C--------------
2654C GLOBAL MODEL
2655C--------------
2656C #PARTS FILLES meshless
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
2664C PARTS FILLES meshless
2665 CALL WRITE_I_C(N0,1)
2666 DO J=1,SUBSET(I)%NPART
2667 K = SUBSET(I)%PART(J)
2668 IF(MATER(K)>M3)
2669 . CALL WRITE_I_C(MATER(K)-M3-1,1)
2670 ENDDO
2671 ENDIF
2672C--------------
2673 DO I=1,NPART
2674 IF(MATER(I)<0)MATER(I)=-MATER(I)
2675 ENDDO
2676C=======================================================================
2677 700 CONTINUE
2678C=======================================================================
2679 CALL CLOSE_C
2680C-----------------------------------------------
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')
2686C
2687 RETURN
2688 END
2689!||====================================================================
2690!|| xyz16 ../starter/source/output/anim/genani1.F
2691!||--- called by ------------------------------------------------------
2692!|| genani1 ../starter/source/output/anim/genani1.F
2693!||--- calls -----------------------------------------------------
2694!||--- uses -----------------------------------------------------
2695!||====================================================================
2696 SUBROUTINE XYZ16(IXS,IXS10,IXS20,IXS16,X)
2697 use element_mod , only : nixs
2698C-----------------------------------------------
2699C I m p l i c i t T y p e s
2700C-----------------------------------------------
2701#include "implicit_f.inc"
2702C-----------------------------------------------
2703C C o m m o n B l o c k s
2704C-----------------------------------------------
2705#include "com04_c.inc"
2706C-----------------------------------------------
2707C D u m m y A r g u m e n t s
2708C-----------------------------------------------
2709 my_real
2710 . X(3,*)
2711 INTEGER IXS(NIXS,*),
2712 . IXS10(6,*) ,IXS16(8,*) ,IXS20(12,*)
2713C-----------------------------------------------
2714C L o c a l V a r i a b l e s
2715C-----------------------------------------------
2716 my_real
2717 . XX,YY,ZZ
2718 REAL R4,R4NP(6*NUMELS16)
2719 INTEGER I, J, K,N1,N2,N3,N4,N5,N6,N7,N8,
2720 . JJ,BUF
2721C-----------------------------------------------
2722 JJ = 0
2723 DO J=1,NUMELS16
2724 I = J+NUMELS8+NUMELS10+NUMELS20
2725 N1 = IXS(2,I)
2726 N2 = IXS(3,I)
2727 N3 = IXS(4,I)
2728 N4 = IXS(5,I)
2729 N5 = IXS16(1,J)
2730 N6 = IXS16(2,J)
2731 N7 = IXS16(3,J)
2732 N8 = IXS16(4,J)
2733 IF(N5==0)N5=N1
2734 IF(N6==0)N6=N2
2735 IF(N7==0)N7=N3
2736 IF(N8==0)N8=N4
2737 XX = HALF *(X(1,N5)+X(1,N6)+X(1,N7)+X(1,N8))
2738 . -FOURTH*(X(1,N1)+X(1,N2)+X(1,N3)+X(1,N4))
2739 YY = HALF *(X(2,N5)+X(2,N6)+X(2,N7)+X(2,N8))
2740 . -FOURTH*(X(2,N1)+X(2,N2)+X(2,N3)+X(2,N4))
2741 ZZ = HALF *(X(3,N5)+X(3,N6)+X(3,N7)+X(3,N8))
2742 . -FOURTH*(X(3,N1)+X(3,N2)+X(3,N3)+X(3,N4))
2743 R4 = XX
2744 CALL WRITE_R_C(R4,1)
2745 R4 = YY
2746 CALL WRITE_R_C(R4,1)
2747 R4 = ZZ
2748 CALL WRITE_R_C(R4,1)
2749 N1 = IXS(6,I)
2750 N2 = IXS(7,I)
2751 N3 = IXS(8,I)
2752 N4 = IXS(9,I)
2753 N5 = IXS16(5,J)
2754 N6 = IXS16(6,J)
2755 N7 = IXS16(7,J)
2756 N8 = IXS16(8,J)
2757 IF(N5==0)N5=N1
2758 IF(N6==0)N6=N2
2759 IF(N7==0)N7=N3
2760 IF(N8==0)N8=N4
2761 XX = HALF *(X(1,N5)+X(1,N6)+X(1,N7)+X(1,N8))
2762 . -FOURTH*(X(1,N1)+X(1,N2)+X(1,N3)+X(1,N4))
2763 YY = HALF *(X(2,N5)+X(2,N6)+X(2,N7)+X(2,N8))
2764 . -FOURTH*(X(2,N1)+X(2,N2)+X(2,N3)+X(2,N4))
2765 ZZ = HALF *(X(3,N5)+X(3,N6)+X(3,N7)+X(3,N8))
2766 . -FOURTH*(X(3,N1)+X(3,N2)+X(3,N3)+X(3,N4))
2767 R4 = XX
2768 CALL WRITE_R_C(R4,1)
2769 R4 = YY
2770 CALL WRITE_R_C(R4,1)
2771 R4 = ZZ
2772 CALL WRITE_R_C(R4,1)
2773 ENDDO
2774C
2775 RETURN
2776 END
2777!||====================================================================
2778!|| xyznor16 ../starter/source/output/anim/genani1.F
2779!||--- called by ------------------------------------------------------
2780!|| genani1 ../starter/source/output/anim/genani1.F
2781!||--- calls -----------------------------------------------------
2782!||--- uses -----------------------------------------------------
2783!||====================================================================
2784 SUBROUTINE XYZNOR16(IXS,IXS10,IXS20,IXS16,X)
2785 use element_mod , only : nixs
2786C-----------------------------------------------
2787C I m p l i c i t T y p e s
2788C-----------------------------------------------
2789#include "implicit_f.inc"
2790C-----------------------------------------------
2791C C o m m o n B l o c k s
2792C-----------------------------------------------
2793#include "com04_c.inc"
2794C-----------------------------------------------
2795C D u m m y A r g u m e n t s
2796C-----------------------------------------------
2797 my_real
2798 . X(3,*)
2799 INTEGER IXS(NIXS,*),
2800 . IXS10(6,*) ,IXS16(8,*) ,IXS20(12,*)
2801C-----------------------------------------------
2802C L o c a l V a r i a b l e s
2803C-----------------------------------------------
2804 my_real
2805 . XX,YY,ZZ
2806 REAL R4
2807 INTEGER I, J, K,N1,N2,N3,N4,N5,N6,N7,N8,I3000,SIZ
2808C-----------------------------------------------
2809 I3000 = 3000
2810 SIZ = NUMELS16
2811 DO J=1,SIZ
2812 CALL WRITE_S_C(I3000,1)
2813 CALL WRITE_S_C(I3000,1)
2814 CALL WRITE_S_C(I3000,1)
2815 CALL WRITE_S_C(I3000,1)
2816 CALL WRITE_S_C(I3000,1)
2817 CALL WRITE_S_C(I3000,1)
2818 ENDDO
2819C
2820 RETURN
2821 END
subroutine anioffs(elbuf_tab, iparg, ioff, el2fa, nbf, nbpart, isph3d)
Definition anioffs.F:32
#define my_real
Definition cppsort.cpp:32
subroutine delnumbs(iparg, ixs, el2fa, nbf, inum, kxsp, isph3d)
Definition delnumbs.F:32
subroutine delsub(nlevel, elsub, ilevel, offset, nel, el2fa, func)
Definition delsub.F:30
subroutine dfuncs(elbuf_tab, func, ifunc, iparg, ixs, pm, el2fa, nbf, isph3d)
Definition dfuncs.F:33
subroutine dmasanis(elbuf_tab, iparg, ixs, mas, pm, el2fa, nbf, ipart, ipartsp, isph3d)
Definition dmasanis.F:34
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)
Definition eloff.F:43
subroutine genani1(x, bufel, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, swaft, iparg, pm, geo, skew, itab, lpby, npby, nstrf, rwbuf, nprw, ipart, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, iparttg, rby, swa4, igrsurf, bufsf, ipartx, kxsp, ixsp, ipartsp, spbuf, ixs10, ixs20, ixs16, ipm, igeo, smater, sel2fa, snfacptx, sixedge, soffx1, snumx1, sxnorm, sinvert, sfunc1, siad, nmanim, d, smas, ms, fxani, mbufel, mdepl, nlevel, elsub, dsanim, nelem, cep, cepsp, nom_opt, ptr_nopt_rwall, ptr_nopt_sect, elbuf_tab, sph2sol, subset)
Definition genani1.F:98
subroutine xyz16(ixs, ixs10, ixs20, ixs16, x)
Definition genani1.F:2697
subroutine invert(matrix, inverse, n, errorflag)
#define min(a, b)
Definition macros.h:20
initmumps id
type(fvbag_data), dimension(:), allocatable fvdata
Definition fvbag_mod.F:128
character(len=outfile_char_len) outfile_name
integer outfile_name_len
integer, parameter nchartitle
subroutine ani_txt(text, len)
Definition ani_txt.F:30
subroutine anioffc(elbuf_tab, iparg, ioff, el2fa, nbf)
Definition anioffc.F:31
subroutine aniofff(elbuf_tab, iparg, ioff, el2fa, nbf, ioffx1)
Definition aniofff.F:32
subroutine aniskew(elbuf_tab, skew, iparg, x, ixt, ixp, ixr, geo, bufl)
Definition aniskew.F:32
subroutine delnumbc(iparg, ixq, ixc, ixtg, el2fa, nbf, inum, nelcut, nbpart, idcmax)
Definition delnumbc.F:33
subroutine dfuncc(elbuf_tab, bufel, func, ifunc, iparg, ixq, ixc, ixtg, pm, el2fa, nbf)
Definition dfuncc.F:33
subroutine dmasanif(x, d, elbuf_tab, geo, iparg, ixt, ixp, ixr, mas, pm, el2fa, nbf)
Definition dmasanif.F:32
subroutine donerby(irby, nerby, npby, nerbt)
Definition donerby.F:29
subroutine donerwl(irwl, nerwl, nprw)
Definition donerwl.F:29
subroutine donesec(isect, nesct, nstrf, ixs)
Definition donesec.F:30
subroutine donesrg(isrg, nesrg)
Definition donesrg.F:29
subroutine dparrby(lpby, npby)
Definition dparrby.F:30
subroutine dparrws(nesbw, nstrf, ixc, ixtg, x, nodcut, rwbuf, nprw, ixs)
Definition dparrws.F:33
subroutine dparsrg(nsurg, nnwl, nodcut)
Definition dparsrg.F:30
subroutine drbycnt(nerby, npby)
Definition drbycnt.F:29
subroutine dseccnt(nesct, nerwl, nesbw, nstrf, rwbuf, nprw, nnwl, ixs)
Definition dseccnt.F:31
subroutine dsphcnt(nesph, nnsph, nesphg, nnsphg)
Definition dsphcnt.F:29
subroutine dsrgcnt(igrsurf, nsurg, nesrg, nnsrg, nesbw)
Definition dsrgcnt.F:30
subroutine dxyzsect(nstrf, rwbuf, nprw, x, xmin, ymin, zmin, xmax, ymax, zmax, itab)
Definition dxyzsect.F:36
subroutine dxyzsph(nesph, kxsp, x, spbuf, snnsphg, nnsph)
Definition dxyzsph.F:30
subroutine dxyzsrg(nesrg, igrsurf, bufsf)
Definition dxyzsrg.F:31
subroutine parsorc(x, d, xnorm, iadd, cdg, bufel, iparg, ixq, ixc, ixtg, invert, el2fa, mater, ipartq, ipartc, iparttg, elbuf_tab)
Definition parsorc.F:36
subroutine parsorf(iadd, iparg, ixt, ixp, ixr, mater, el2fa, ipartt, ipartp, ipartr, nfacptx, ixedge)
Definition parsorf.F:33
subroutine parsors(iadd, iparg, ixs, mater, iparts, el2fa, insph, kxsp, ipartsp, ixs10, ixs20, ixs16, nnsph, isph3d, shft16, shftsph, nnsphg)
Definition parsors.F:35
subroutine tensorc(elbuf_tab, iparg, itens, invert, nelcut, el2fa, nbf, tens, iadp, nbf_l, nbpart, x, ixc, igeo, ixtg)
Definition tensorc.F:34
subroutine velvec(v, nnwl, nnsrg)
Definition velvec.F:30
subroutine fretitl2(titr, iasc, l)
Definition freform.F:799
program starter
Definition starter.F:39
subroutine tensors(elbuf_tab, iparg, itens, ixs, pm, el2fa, nbf, tens, x, ipart, ipartsp, isph3d, ipm)
Definition tensors.F:35
void write_i_c(int *w, int *len)
void write_r_c(float *w, int *len)
void cur_fil_c(int *nf)
void write_c_c(int *w, int *len)
void open_c(int *ifil, int *len, int *mod)