OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
dd_ani.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!|| dd_ani ../starter/source/output/anim/dd_ani.F
25!||--- called by ------------------------------------------------------
26!|| domdec1 ../starter/source/spmd/domain_decomposition/domdec1.F
27!||--- calls -----------------------------------------------------
28!|| parsor ../starter/source/output/anim/parsor.F
29!|| scanor ../starter/source/output/anim/scanor.F
30!|| slagcnt ../starter/source/output/anim/slagcnt.F
31!|| xyznod ../starter/source/output/anim/xyznod.F
32!|| xyznor ../starter/source/output/anim/xyznor.F
33!||--- uses -----------------------------------------------------
34!||====================================================================
35 SUBROUTINE dd_ani(X ,IXS ,IXQ ,IXC ,
36 . IXT ,IXP ,IXR ,IXTG ,
37 . IPARG ,KXSP ,IXSP )
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
197 END
#define my_real
Definition cppsort.cpp:32
subroutine dd_ani(x, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, iparg, kxsp, ixsp)
Definition dd_ani.F:38
#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
subroutine xyznor(xnorm)
Definition xyznor.F:31
void write_i_c(int *w, int *len)
void write_r_c(float *w, int *len)
void close_c()
void cur_fil_c(int *nf)
void write_c_c(int *w, int *len)
void open_c(int *ifil, int *len, int *mod)