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!|| output_mod ../common_source/modules/output/output_mod.F90
33!||====================================================================
34 SUBROUTINE fxbyvit(OUTPUT,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 output_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 TYPE(output_), INTENT(INOUT) :: OUTPUT
62 INTEGER FXBIPM(NBIPM,*), FXBNOD(*), WEIGHT(*), IAD_ELEM(2,*),
63 . FR_ELEM(*)
64 my_real
65 . fxbmod(*), fxbglm(*), fxblm(*) , fxbmvn(*), fxbmcd(*),
66 . fxbse(*) , fxbsv(*) , fxbvit(*), fxbacc(*), fxbrpm(*),
67 . a(3,*) , ar(3,*) , v(3,*) , vr(3,*) , ms(*) ,
68 . in(*) , fsav(nthvki,*) , fxbfc(*) , fxbedp(*)
69C-----------------------------------------------
70C L o c a l V a r i a b l e s
71C-----------------------------------------------
72 INTEGER NFX,ANOD,AMOD,ACP,AGLM,ALM,AVAR,ARPM,NME,NMOD,AMCD,
73 . ASE,NSN,IDMAST,ISH,DMT,LMOD,ITN,NCYCLP1,N2,NN2,
74 . NSNT,IBLO,IFILE,NSNI,IRCM,PMAIN
75 my_real
76 . vdt
77C
78 n2=ninter+nrwall+nrbody+nsect+njoint+nrbag+nvolu
79 itn=0
80 IF(tt<output%TANIM) itn=1
81 ncyclp1=ncycle+1
82 IF((ncyclp1/ncrst)*ncrst==ncyclp1.OR.mrest/=0) itn=0
83 DO nfx=1,nfxbody
84 nn2=n2+nfx
85 nmod=fxbipm(4,nfx)
86 aglm=fxbipm(8,nfx)
87 acp =fxbipm(9,nfx)
88 alm =fxbipm(10,nfx)
89 avar=fxbipm(13,nfx)
90 arpm=fxbipm(14,nfx)
91 amcd=fxbipm(15,nfx)
92 ase =(nfx-1)*15+1
93 ish =fxbipm(16,nfx)
94 nme =fxbipm(17,nfx)
95 IF (ish==0) THEN
96 dmt=18
97 ELSE
98 dmt=24
99 ENDIF
100 iblo=fxbipm(28,nfx)
101 pmain=fxbipm(39,nfx)
102 IF (ispmd==pmain)
103 . CALL fxbodvp1(
104 .fxbrpm(arpm),fxbglm(aglm),fxblm(alm) ,fxbmvn(acp) ,fxbmcd(amcd),
105 .fxbse(ase) ,fxbsv(alm) ,fxbvit(avar),fxbacc(avar),nme ,
106 .nmod ,ish ,dmt ,fsav(1,nn2) ,fxbfc(alm) ,
107 .fxbedp(nfx) ,iblo )
108 ENDDO
109C
110 IF(nspmd > 1) CALL spmd_fxb_cin(fxbipm, fxbvit, fxbacc)
111C
112 DO nfx=1,nfxbody
113 idmast=fxbipm(2,nfx)
114 IF (itn>0) THEN
115 nsn=fxbipm(18,nfx)
116 ELSE
117 nsn=fxbipm(3,nfx)
118 ENDIF
119 nsnt=fxbipm(3,nfx)
120 nmod=fxbipm(4,nfx)
121 anod=fxbipm(6,nfx)
122 amod=fxbipm(7,nfx)
123 avar=fxbipm(13,nfx)
124 arpm=fxbipm(14,nfx)
125 ish =fxbipm(16,nfx)
126 nme =fxbipm(17,nfx)
127 ifile=fxbipm(29,nfx)
128 nsni=fxbipm(18,nfx)
129 IF (ifile==0) THEN
130 lmod=nsnt*6
131 ELSEIF (ifile==1) THEN
132 lmod=nsni*6
133 ENDIF
134 ircm=fxbipm(30,nfx)
135 pmain=fxbipm(39,nfx)
136 CALL fxbodvp2(
137 .fxbrpm(arpm),fxbnod(anod),fxbmod(amod),fxbvit(avar),fxbacc(avar),
138 .nme ,nmod ,v ,vr ,a ,
139 .ar ,ms ,in ,nsn ,idmast ,
140 .ish ,lmod ,nsnt ,ifile ,nsni ,
141 .ircm ,pmain ,iad_elem ,fr_elem )
142 ENDDO
143C
144 RETURN
145 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(output, 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)