OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
fxbyvit.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!|| fxbyvit ../engine/source/constraints/fxbody/fxbyvit.F
25!||--- called by ------------------------------------------------------
26!|| resol ../engine/source/engine/resol.F
27!||--- calls -----------------------------------------------------
28!|| fxbodvp1 ../engine/source/constraints/fxbody/fxbodvp.F
29!|| fxbodvp2 ../engine/source/constraints/fxbody/fxbodvp.F
30!|| spmd_fxb_cin ../engine/source/mpi/kinematic_conditions/spmd_fxb_cin.F
31!||--- uses -----------------------------------------------------
32!|| anim_mod ../common_source/modules/output/anim_mod.f
33!||====================================================================
34 SUBROUTINE fxbyvit(FXBIPM, FXBNOD, FXBMOD , FXBGLM , FXBLM ,
35 . FXBMVN, FXBMCD, FXBSE , FXBSV , FXBVIT,
36 . FXBACC, FXBRPM, V , VR , A ,
37 . AR , MS , IN , WEIGHT , FSAV ,
38 . FXBFC , FXBEDP, IAD_ELEM, FR_ELEM)
39C-----------------------------------------------
40C M o d u l e s
41C-----------------------------------------------
42 USE anim_mod
43C-----------------------------------------------
44C I m p l i c i t T y p e s
45C-----------------------------------------------
46#include "implicit_f.inc"
47C-----------------------------------------------
48C C o m m o n B l o c k s
49C-----------------------------------------------
50#include "com01_c.inc"
51#include "com04_c.inc"
52#include "com08_c.inc"
53#include "scr03_c.inc"
54#include "scr07_c.inc"
55#include "param_c.inc"
56#include "fxbcom.inc"
57#include "task_c.inc"
58C-----------------------------------------------
59C D u m m y A r g u m e n t s
60C-----------------------------------------------
61 INTEGER FXBIPM(NBIPM,*), FXBNOD(*), WEIGHT(*), IAD_ELEM(2,*),
62 . FR_ELEM(*)
63 my_real
64 . FXBMOD(*), FXBGLM(*), FXBLM(*) , FXBMVN(*), FXBMCD(*),
65 . fxbse(*) , fxbsv(*) , fxbvit(*), fxbacc(*), fxbrpm(*),
66 . a(3,*) , ar(3,*) , v(3,*) , vr(3,*) , ms(*) ,
67 . in(*) , fsav(nthvki,*) , fxbfc(*) , fxbedp(*)
68C-----------------------------------------------
69C L o c a l V a r i a b l e s
70C-----------------------------------------------
71 INTEGER NFX,ANOD,AMOD,ACP,AGLM,ALM,AVAR,ARPM,NME,NMOD,AMCD,
72 . ASE,NSN,IDMAST,M,ISH,DMT,LMOD,ITN,NCYCLP1,N2,NN2,
73 . NSNT,IBLO,IFILE,NSNI,IRCM,PMAIN
74 my_real
75 . tt2
76C
77 n2=ninter+nrwall+nrbody+nsect+njoint+nrbag+nvolu
78 itn=0
79 IF(tt<tanim) itn=1
80 ncyclp1=ncycle+1
81 IF((ncyclp1/ncrst)*ncrst==ncyclp1.OR.mrest/=0) itn=0
82 DO nfx=1,nfxbody
83 nn2=n2+nfx
84 nmod=fxbipm(4,nfx)
85 aglm=fxbipm(8,nfx)
86 acp =fxbipm(9,nfx)
87 alm =fxbipm(10,nfx)
88 avar=fxbipm(13,nfx)
89 arpm=fxbipm(14,nfx)
90 amcd=fxbipm(15,nfx)
91 ase =(nfx-1)*15+1
92 ish =fxbipm(16,nfx)
93 nme =fxbipm(17,nfx)
94 IF (ish==0) THEN
95 dmt=18
96 ELSE
97 dmt=24
98 ENDIF
99 iblo=fxbipm(28,nfx)
100 pmain=fxbipm(39,nfx)
101 IF (ispmd==pmain)
102 . CALL fxbodvp1(
103 .fxbrpm(arpm),fxbglm(aglm),fxblm(alm) ,fxbmvn(acp) ,fxbmcd(amcd),
104 .fxbse(ase) ,fxbsv(alm) ,fxbvit(avar),fxbacc(avar),nme ,
105 .nmod ,ish ,dmt ,fsav(1,nn2) ,fxbfc(alm) ,
106 .fxbedp(nfx) ,iblo )
107 ENDDO
108C
109 IF(nspmd > 1) CALL spmd_fxb_cin(fxbipm, fxbvit, fxbacc)
110C
111 DO nfx=1,nfxbody
112 idmast=fxbipm(2,nfx)
113 IF (itn>0) THEN
114 nsn=fxbipm(18,nfx)
115 ELSE
116 nsn=fxbipm(3,nfx)
117 ENDIF
118 nsnt=fxbipm(3,nfx)
119 nmod=fxbipm(4,nfx)
120 anod=fxbipm(6,nfx)
121 amod=fxbipm(7,nfx)
122 avar=fxbipm(13,nfx)
123 arpm=fxbipm(14,nfx)
124 ish =fxbipm(16,nfx)
125 nme =fxbipm(17,nfx)
126 ifile=fxbipm(29,nfx)
127 nsni=fxbipm(18,nfx)
128 IF (ifile==0) THEN
129 lmod=nsnt*6
130 ELSEIF (ifile==1) THEN
131 lmod=nsni*6
132 ENDIF
133 ircm=fxbipm(30,nfx)
134 pmain=fxbipm(39,nfx)
135 CALL fxbodvp2(
136 .fxbrpm(arpm),fxbnod(anod),fxbmod(amod),fxbvit(avar),fxbacc(avar),
137 .nme ,nmod ,v ,vr ,a ,
138 .ar ,ms ,in ,nsn ,idmast ,
139 .ish ,lmod ,nsnt ,ifile ,nsni ,
140 .ircm ,pmain ,iad_elem ,fr_elem )
141 ENDDO
142C
143 RETURN
144 END
subroutine fxbodvp2(fxbrpm, fxbnod, fxbmod, fxbvit, fxbacc, nme, nmod, v, vr, a, ar, ms, in, nsn, idmast, ish, lmod, nsnt, ifile, nsni, ircm, pmain, iad_elem, fr_elem)
Definition fxbodvp.F:169
subroutine fxbodvp1(fxbrpm, fxbglm, fxblm, mvn, mcd, se, sv, fxbvit, fxbacc, nme, nmod, ish, dmt, fsav, fxbfc, fxbedp, iblo)
Definition fxbodvp.F:36
subroutine fxbyvit(fxbipm, fxbnod, fxbmod, fxbglm, fxblm, fxbmvn, fxbmcd, fxbse, fxbsv, fxbvit, fxbacc, fxbrpm, v, vr, a, ar, ms, in, weight, fsav, fxbfc, fxbedp, iad_elem, fr_elem)
Definition fxbyvit.F:39
subroutine spmd_fxb_cin(fxbipm, fxbvit, fxbacc)