OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
torseur.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/.
23C | SPMD_R4GATHER_PART /spe/spmd_anim.F
24!||====================================================================
25!|| torseur ../engine/source/output/anim/generate/torseur.F
26!||--- called by ------------------------------------------------------
27!|| genani ../engine/source/output/anim/generate/genani.f
28!||--- calls -----------------------------------------------------
29!|| spmd_r4get_partn ../engine/source/mpi/anim/spmd_r4get_partn.F
30!|| write_r_c ../common_source/tools/input_output/write_routtines.c
31!||--- uses -----------------------------------------------------
32!|| my_alloc_mod ../common_source/tools/memory/my_alloc.F90
33!||====================================================================
34 SUBROUTINE torseur(IADG ,IPARG,ITENS,IXT ,IXP ,
35 . IXR ,EL2FA,NBF ,TENS ,TORS ,
36 . NBPART)
37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE my_alloc_mod
41C-----------------------------------------------
42C I m p l i c i t T y p e s
43C-----------------------------------------------
44#include "implicit_f.inc"
45C-----------------------------------------------
46C C o m m o n B l o c k s
47C-----------------------------------------------
48#include "com01_c.inc"
49#include "com04_c.inc"
50#include "param_c.inc"
51#include "task_c.inc"
52#include "spmd_c.inc"
53C-----------------------------------------------
54C D u m m y A r g u m e n t s
55C-----------------------------------------------
56C REAL
58 . tens(9,*),tors(15,*)
59 INTEGER IPARG(NPARG,*),ITENS,
60 . IXT(NIXT,*),IXP(NIXP,*),IXR(NIXR,*),EL2FA(*),
61 . nbf,nbpart,iadg(nspmd,*)
62C-----------------------------------------------
63C L o c a l V a r i a b l e s
64C-----------------------------------------------
65C REAL
67 . off, fac, a1, a2, a3, thk
68 REAL R4(18)
69 INTEGER I, NG, NEL, NFT, IAD, ITY, LFT, NPT, IPT,M,
70 . iadd, n, j, llt, mlw, nb1, nb2, nb3, nb4, nb5,
71 . nb6, nb7, nb8, nb9, nb10, nb11, nb12, istrain,
72 . ipid, i1, i2, iad2, ns1, ns2 , ialel, istre,
73 . nn1,nn2,nn3,nn4,nn5,nn6,nn7,nn8,nn9,nn10,nni,n0,
74 . ihbe,buf
75 REAL,DIMENSION(:),ALLOCATABLE :: WAL
76C-----------------------------------------------
77 CALL my_alloc(wal,9*nbf)
78 DO 5 j=1,18
79 r4(j) = zero
80 5 CONTINUE
81C
82C
83 nn1 = 1
84 nn2 = nn1
85 nn3 = nn2
86 nn4 = nn3
87 nn5 = nn4
88 nn6 = nn5
89 nn7 = nn6 + numelt
90 nn8 = nn7 + numelp
91 nn9 = nn8 + numelr
92 nn10= nn9
93C
94 DO 490 ng=1,ngroup
95C IF(ANIM_K==0.AND.IPARG(8,NG)==1)GOTO 490
96 mlw =iparg(1,ng)
97 nel =iparg(2,ng)
98 nft =iparg(3,ng)
99 iad =iparg(4,ng)
100 ity =iparg(5,ng)
101 nb1 =iad - 1
102 lft=1
103 llt=nel
104C-----------------------------------------------
105C TRUSS
106C-----------------------------------------------
107 IF(ity==4)THEN
108 DO i=lft,llt
109 n = i + nft
110 tens(1,el2fa(nn6+n)) = tors(1,n)
111 tens(2,el2fa(nn6+n)) = tors(2,n)
112 tens(3,el2fa(nn6+n)) = tors(3,n)
113 tens(4,el2fa(nn6+n)) = tors(4,n)
114 tens(5,el2fa(nn6+n)) = tors(5,n)
115 tens(6,el2fa(nn6+n)) = tors(6,n)
116 tens(7,el2fa(nn6+n)) = tors(7,n)
117 tens(8,el2fa(nn6+n)) = tors(8,n)
118 tens(9,el2fa(nn6+n)) = tors(9,n)
119 ENDDO
120C-----------------------------------------------
121C POUTRES
122C-----------------------------------------------
123 ELSEIF(ity==5)THEN
124 DO i=lft,llt
125 n = i + nft
126 m = n+numelt
127 tens(1,el2fa(nn7+n)) = tors(1,m)
128 tens(2,el2fa(nn7+n)) = tors(2,m)
129 tens(3,el2fa(nn7+n)) = tors(3,m)
130 tens(4,el2fa(nn7+n)) = tors(4,m)
131 tens(5,el2fa(nn7+n)) = tors(5,m)
132 tens(6,el2fa(nn7+n)) = tors(6,m)
133 tens(7,el2fa(nn7+n)) = tors(7,m)
134 tens(8,el2fa(nn7+n)) = tors(8,m)
135 tens(9,el2fa(nn7+n)) = tors(9,m)
136 ENDDO
137C-----------------------------------------------
138C RESSORTS
139C-----------------------------------------------
140 ELSEIF(ity==6)THEN
141 DO i=lft,llt
142 n = i + nft
143 m = n+numelt+numelp
144 tens(1,el2fa(nn8+n)) = tors(1,m)
145 tens(2,el2fa(nn8+n)) = tors(2,m)
146 tens(3,el2fa(nn8+n)) = tors(3,m)
147 IF(mlw==3)THEN
148 tens(4,el2fa(nn8+n)) = zero
149 tens(5,el2fa(nn8+n)) = zero
150 tens(6,el2fa(nn8+n)) = zero
151 tens(7,el2fa(nn8+n)) = zero
152 tens(8,el2fa(nn8+n)) = zero
153 tens(9,el2fa(nn8+n)) = zero
154 tens(1,el2fa(nn8+n)+1) = tors(4,m)
155 tens(2,el2fa(nn8+n)+1) = tors(5,m)
156 tens(3,el2fa(nn8+n)+1) = tors(6,m)
157 tens(4,el2fa(nn8+n)+1) = zero
158 tens(5,el2fa(nn8+n)+1) = zero
159 tens(6,el2fa(nn8+n)+1) = zero
160 tens(7,el2fa(nn8+n)+1) = zero
161 tens(8,el2fa(nn8+n)+1) = zero
162 tens(9,el2fa(nn8+n)+1) = zero
163 ELSE
164 tens(4,el2fa(nn8+n)) = tors(4,m)
165 tens(5,el2fa(nn8+n)) = tors(5,m)
166 tens(6,el2fa(nn8+n)) = tors(6,m)
167 tens(7,el2fa(nn8+n)) = tors(7,m)
168 tens(8,el2fa(nn8+n)) = tors(8,m)
169 tens(9,el2fa(nn8+n)) = tors(9,m)
170 ENDIF
171 ENDDO
172C-----------------------------------------------
173 ELSE
174 ENDIF
175 490 CONTINUE
176 500 CONTINUE
177C-----------------------------------------------
178 IF (nspmd == 1)THEN
179 DO n=1,nbf
180 r4(1) = tens(1,n)
181 r4(2) = tens(2,n)
182 r4(3) = tens(3,n)
183 r4(4) = tens(4,n)
184 r4(5) = tens(5,n)
185 r4(6) = tens(6,n)
186 r4(7) = tens(7,n)
187 r4(8) = tens(8,n)
188 r4(9) = tens(9,n)
189 CALL write_r_c(r4,9)
190 ENDDO
191 ELSE
192 DO n = 1, nbf
193 wal(9*n-8) = tens(1,n)
194 wal(9*n-7) = tens(2,n)
195 wal(9*n-6) = tens(3,n)
196 wal(9*n-5) = tens(4,n)
197 wal(9*n-4) = tens(5,n)
198 wal(9*n-3) = tens(6,n)
199 wal(9*n-2) = tens(7,n)
200 wal(9*n-1) = tens(8,n)
201 wal(9*n ) = tens(9,n)
202 ENDDO
203 IF (ispmd==0) THEN
204 buf = 9*nb1dg
205 ELSE
206 buf = 1
207 ENDIF
208 CALL spmd_r4get_partn(9,9*nbf,nbpart,iadg,wal,buf)
209 ENDIF
210C
211C-----------------------------------------------
212 DEALLOCATE(wal)
213 RETURN
214 END
#define my_real
Definition cppsort.cpp:32
subroutine genani(x, d, v, a, bufel, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, swaft, smas, sxnorm, siad, iparg, pm, geo, ms, sinvert, cont, smater, icut, skew, xcut, fint, itab, sel2fa, fext, fopt, anin, lpby, npby, nstrf, rwbuf, nprw, tani, elbuf_tab, mat_param, dd_iad, weight, eani, ipart, cluster, iparts, ipartq, ipartc, ipartt, ipartp, ipartr, ipartur, iparttg, rby, swa4, tors, nom_opt, igrsurf, bufsf, idata, rdata, siadg, bufmat, bufgeo, kxx, ixx, ipartx, suix, sxusr, snfacptx, sixedge, sixfacet, sixsolid, snumx1, snumx2, snumx3, soffx1, soffx2, soffx3, smass1, smass2, smass3, sfunc1, sfunc2, sfunc3, kxsp, ixsp, nod2sp, ipartsp, spbuf, ixs10, ixs20, ixs16, vr, monvol, volmon, ipm, igeo, nodglob, iad_elem, fr_elem, fr_sec, fr_rby2, iad_rby2, fr_wall, iflow, rflow, fncont, ftcont, temp, thke, err_thk_sh4, err_thk_sh3, diag_sms, ipari, fncont2, dr, ale_connectivity, irbe2, irbe3, lrbe2, lrbe3, fr_rbe2, fr_rbe3m, iad_rbe2, dxancg, nod_pxfem, iel_pxfem, zi_ply, vgaz, fcontg, fncontg, ftcontg, fanreac, inod_crk, iel_crk, elcutc, iadc_crk, pdama2, res_sms, weight_md, nodglobxfe, nodedge, fcluster, mcluster, xfem_tab, w, nv46, ipartig3d, kxig3d, ixig3d, sig3dsolid, knot, wige, nercvois, nesdvois, lercvois, lesdvois, crkedge, indx_crk, xedge4n, xedge3n, stack, sph2sol, stifn, stifr, igrnod, h3d_data, subset, multi_fvm, knotlocpc, knotlocel, fcont_max, fncontp2, ftcontp2, glob_therm, drape_sh4n, drape_sh3n, drapeg, output)
Definition genani.F:239
subroutine spmd_r4get_partn(size, nbf_l, nbpart, iadg, wal, buf)
subroutine torseur(iadg, iparg, itens, ixt, ixp, ixr, el2fa, nbf, tens, tors, nbpart)
Definition torseur.F:37
void write_r_c(float *w, int *len)