OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
dd_ani.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "scr15_c.inc"
#include "param_c.inc"
#include "units_c.inc"
#include "sphcom.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine dd_ani (x, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, iparg, kxsp, ixsp)

Function/Subroutine Documentation

◆ dd_ani()

subroutine dd_ani ( x,
integer, dimension(*) ixs,
integer, dimension(*) ixq,
integer, dimension(*) ixc,
integer, dimension(*) ixt,
integer, dimension(*) ixp,
integer, dimension(*) ixr,
integer, dimension(*) ixtg,
integer, dimension(nparg,*) iparg,
integer, dimension(nisp,*) kxsp,
integer, dimension(kvoisph,*) ixsp )

Definition at line 35 of file dd_ani.F.

38C-----------------------------------------------
39C M o d u l e s
40C-----------------------------------------------
42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "com01_c.inc"
50#include "com04_c.inc"
51#include "scr15_c.inc"
52#include "param_c.inc"
53#include "units_c.inc"
54#include "sphcom.inc"
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
59 . x(*)
60 INTEGER IXS(*),IXQ(*),IXC(*),KXSP(NISP,*),IXSP(KVOISPH,*),
61 . IXTG(*),IXT(*),IXP(*),IXR(*),IPARG(NPARG,*)
62C-----------------------------------------------
63C L o c a l V a r i a b l e s
64C-----------------------------------------------
66 & , DIMENSION(:,:), ALLOCATABLE :: d,xnorm
67 INTEGER, DIMENSION(:), ALLOCATABLE :: INVERT,IAD
68 CHARACTER*80 STR
69 CHARACTER CHANIM*3,FILNAM*12
70 INTEGER I, NBF, NBPART, MAGIC, J, FILEN,NNSLAG,
71 . IANIM, NBCSPH, N1, N2,
72 . CTEXT(81),IB,PROC
74 . cdg(3), s3000, scale,bufel(1)
75 REAL R4
76C
77C
78 s3000 = three1000
79C
80Calcul connectivite sph pour A000 domdec
81C
82 nbcsph = 0
83 DO i = 1, numsph
84C maillage hexagonal compact => 12 voisins les + proches
85 DO j = 1,min(12,kxsp(4,i))
86 n1 = kxsp(3,i)
87 n2 = ixsp(j,i)
88 IF(n1<n2) THEN
89 nbcsph = nbcsph + 1
90 END IF
91 END DO
92 END DO
93C---------- -------------------------------------
94C INIT SPECIAL STARTER
95C-----------------------------------------------
96 ALLOCATE(xnorm(3,numnod))
97 ALLOCATE(d(3,numnod))
98 ALLOCATE(
99 & invert(numelc+numeltg+numelq+6*numels+numelt+numelp+numelr+
100 & nbcsph))
101 ALLOCATE(iad(nspmd+1))
102 DO i=1,3
103 DO j=1,numnod
104 d(i,j) = zero
105 END DO
106 END DO
107C-----------------------------------------------
108C OPEN FILE
109C-----------------------------------------------
110 ianim=0
111 WRITE(chanim,'(I3.3)')ianim
112 filnam=outfile_name(1:outfile_name_len)//rootnam(1:rootlen)//'A'//chanim
113 filen = rootlen + 4 + outfile_name_len
114C
115 DO 1 i=1,filen
116 1 ctext(i)=ichar(filnam(i:i))
117 CALL cur_fil_c(0)
118C CALL OPEN_C(CTEXT,FILEN)
119 CALL open_c(ctext,filen,0)
120C-----------------------------------------------
121C PART COUNT
122C-----------------------------------------------
123
124 nbpart = 0
125 nbpart = nspmd
126C
127 CALL slagcnt(iparg,nnslag)
128C
129 nbf = 6*nnslag + numelq + numelc + numeltg + numelp
130 . + numelt + numelr + nfacx + nbcsph
131C-----------------------------------------------
132C WRITE CONTROL
133C-----------------------------------------------
134C
135C MAGIC = 0x5429
136 magic = 21545
137 CALL write_i_c(magic,1)
138 CALL write_i_c(numnod,1)
139 CALL write_i_c(nbf,1)
140 CALL write_i_c(nbpart,1)
141 CALL write_i_c(0,1)
142 CALL write_i_c(0,1)
143 CALL write_i_c(0,1)
144C-----------------------------------------------
145 r4 = zero
146 CALL write_r_c(r4,1)
147C-----------------------------------------------
148C NODE X Y Z
149C-----------------------------------------------
150 CALL xyznod(x)
151 CALL scanor(x,d,cdg,scale)
152C-----------------------------------------------
153C PART SORT
154C-----------------------------------------------
155 CALL parsor(x ,d ,xnorm ,iad ,cdg ,
156 . bufel,iparg,ixs ,ixq ,ixc ,
157 . ixtg ,ixt ,ixp ,ixr ,invert,
158 . kxsp ,ixsp )
159C-----------------------------------------------
160C PART ADD
161C-----------------------------------------------
162 CALL write_i_c(iad,nbpart)
163C-----------------------------------------------
164C PART HEAD
165C-----------------------------------------------
166 DO proc = 1, nspmd
167 WRITE(str,'(a17,i4)') 'domaine number : ',PROC
168 DO J = 1, 21
169 CTEXT(J)=ICHAR(STR(J:J))
170 END DO
171 CTEXT(22) = 0
172 CALL WRITE_C_C(CTEXT,81)
173 END DO
174C-----------------------------------------------
175C NORMAL
176C-----------------------------------------------
177 CALL XYZNOR(XNORM)
178C-----------------------------------------------
179C FUNC TEXT
180C-----------------------------------------------
181 CTEXT(81)=0
182C-----------------------------------------------
183 CALL CLOSE_C
184C-----------------------------------------------
185C FIN SPECIAL STARTER
186C-----------------------------------------------
187 DEALLOCATE(XNORM)
188 DEALLOCATE(D)
189 DEALLOCATE(INVERT)
190 DEALLOCATE(IAD)
191C-----------------------------------------------
192 WRITE (IOUT,1000) FILNAM(1:FILEN)
193 WRITE (ISTDO,1000) FILNAM(1:FILEN)
194 1000 FORMAT (1X,'.. animation file:',1X,A,' written')
195C
196 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine invert(matrix, inverse, n, errorflag)
#define min(a, b)
Definition macros.h:20
character(len=outfile_char_len) outfile_name
integer outfile_name_len
subroutine parsor(x, d, xnorm, iadd, cdg, bufel, iparg, ixs, ixq, ixc, ixtg, ixt, ixp, ixr, invert, kxsp, ixsp)
Definition parsor.F:35
subroutine slagcnt(iparg, nslag)
Definition slagcnt.F:29
subroutine scanor(x, d, cdg, scale)
Definition scanor.F:29
subroutine xyznod(x)
Definition xyznod.F:30
void write_i_c(int *w, int *len)
void write_r_c(float *w, int *len)
void cur_fil_c(int *nf)
void open_c(int *ifil, int *len, int *mod)