OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
imp_k_eig.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "task_c.inc"
#include "timeri_c.inc"
#include "param_c.inc"
#include "units_c.inc"
#include "impl1_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine imp_k_eig (nddl0, nnzk0, diag_k, lt_k, lsize, pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, iadk, jdik, icodt, icodr, iskew, ibfv, vel, lpby, npby, itab, weight, ms, in, nrbyac, irbyac, nsc, ikinw, nmc, ipari, intbuf_tab, d_imp, lb, nint2, iint2, ikc, itask, eigipm, eigibuf, nddl, inloc, iad_elem, fr_elem, irbe3, lrbe3, frbe3, irbe2, lrbe2, elbuf_tab, stack, drape_sh4n, drape_sh3n, drapeg)

Function/Subroutine Documentation

◆ imp_k_eig()

subroutine imp_k_eig ( integer nddl0,
integer nnzk0,
diag_k,
lt_k,
integer, dimension(*) lsize,
pm,
geo,
integer, dimension(npropmi,*) ipm,
integer, dimension(npropgi,*) igeo,
elbuf,
integer, dimension(*) ixs,
integer, dimension(nixq,*) ixq,
integer, dimension(nixc,*) ixc,
integer, dimension(nixt,*) ixt,
integer, dimension(nixp,*) ixp,
integer, dimension(nixr,*) ixr,
integer, dimension(nixtg,*) ixtg,
integer, dimension(4,*) ixtg1,
integer, dimension(nparg,*) iparg,
tf,
integer, dimension(*) npc,
fr_wave,
w16,
bufmat,
thke,
bufgeo,
rby,
skew,
x,
wa,
integer, dimension(*) iddl,
integer, dimension(*) ndof,
integer, dimension(*) iadk,
integer, dimension(*) jdik,
integer, dimension(*) icodt,
integer, dimension(*) icodr,
integer, dimension(*) iskew,
integer, dimension(nifv,*) ibfv,
vel,
integer, dimension(*) lpby,
integer, dimension(nnpby,*) npby,
integer, dimension(*) itab,
integer, dimension(*) weight,
ms,
in,
integer nrbyac,
integer, dimension(*) irbyac,
integer, dimension(*) nsc,
integer, dimension(*) ikinw,
integer nmc,
integer, dimension(npari,*) ipari,
type(intbuf_struct_), dimension(*) intbuf_tab,
d_imp,
lb,
integer nint2,
integer, dimension(*) iint2,
integer, dimension(*) ikc,
integer itask,
integer, dimension(*) eigipm,
integer, dimension(*) eigibuf,
integer nddl,
integer, dimension(*) inloc,
integer, dimension(2,*) iad_elem,
integer, dimension(*) fr_elem,
integer, dimension(*) irbe3,
integer, dimension(*) lrbe3,
frbe3,
integer, dimension(*) irbe2,
integer, dimension(*) lrbe2,
type (elbuf_struct_), dimension(ngroup) elbuf_tab,
type (stack_ply) stack,
type (drape_), dimension(numelc_drape) drape_sh4n,
type (drape_), dimension(numeltg_drape) drape_sh3n,
type (drapeg_) drapeg )

Definition at line 38 of file imp_k_eig.F.

54C-----------------------------------------------
55C M o d u l e s
56C-----------------------------------------------
57 USE elbufdef_mod
58 USE intbufdef_mod
59 USE stack_mod
60 USE drape_mod
61 use element_mod , only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg
62C-----------------------------------------------
63C I m p l i c i t T y p e s
64C-----------------------------------------------
65#include "implicit_f.inc"
66C-----------------------------------------------
67C C o m m o n B l o c k s
68C-----------------------------------------------
69#include "com01_c.inc"
70#include "com04_c.inc"
71#include "task_c.inc"
72#include "timeri_c.inc"
73#include "param_c.inc"
74#include "units_c.inc"
75#include "impl1_c.inc"
76C-----------------------------------------------
77C D u m m y A r g u m e n t s
78C-----------------------------------------------
79 INTEGER NDDL0, NNZK0, LSIZE(*), IPM(NPROPMI,*),IGEO(NPROPGI,*),
80 . IXS(*), IXQ(NIXQ,*), IXC(NIXC,*), IXT(NIXT,*),
81 . IXP(NIXP,*), IXR(NIXR,*), IXTG(NIXTG,*),
82 . IXTG1(4,*), IPARG(NPARG,*),
83 . NPC(*), IDDL(*), NDOF(*), IADK(*),JDIK(*),
84 . ICODT(*), ICODR(*), ISKEW(*), IBFV(NIFV,*),
85 . LPBY(*), NPBY(NNPBY,*), ITAB(*),
86 . WEIGHT(*), NRBYAC, IRBYAC(*), NSC(*), IKINW(*), NMC,
87 . IPARI(NPARI,*), NINT2, IINT2(*), IKC(*),
88 . ITASK, EIGIPM(*), EIGIBUF(*), NDDL, INLOC(*),
89 . IAD_ELEM(2,*), FR_ELEM(*),IRBE3(*),LRBE3(*),IRBE2(*),
90 . LRBE2(*)
92 . diag_k(*), lt_k(*), pm(npropm,*), geo(npropg,*),
93 . elbuf(*), tf(*), w16(*), bufmat(*),
94 . thke(*), bufgeo(*),rby(*),
95 . skew(lskew,*), x(3,*), wa(*), vel(lfxvelr,*), ms(*),
96 . in(*), d_imp(3,*), lb(*), fr_wave(*),frbe3(*)
97 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
98 TYPE(INTBUF_STRUCT_) INTBUF_TAB(*)
99 TYPE (STACK_PLY) :: STACK
100 TYPE (DRAPE_) :: DRAPE_SH4N(NUMELC_DRAPE), DRAPE_SH3N(NUMELTG_DRAPE)
101 TYPE (DRAPEG_) :: DRAPEG
102C-----------------------------------------------
103C L o c a l V a r i a b l e s
104C-----------------------------------------------
105 INTEGER NNZK, I, L1, L2, L3, LI1, LI2, LI3, LI4, LI5,
106 . LI6, LI7, LI8, ETAG(NUMNOD), NN, IBID1, IBID2, NT_RW,
107 . NMC2, LI9, LI10, LI11, LI12, NNMAX, NKMAX,IBID3,LI13,
108 . LI14,LI15
109 my_real
110 . rbid
111C=======================================================================
112 DO i=1,numnod
113 etag(i)=0
114 ENDDO
115 nn=eigipm(10)
116 DO i=1,nn
117 etag(eigibuf(i))=1
118 ENDDO
119 DO i=1,nddl0
120 lb(i)=zero
121 ENDDO
122C No imposed velocity (or rigid wall) in modal analysis
123 nfxvel=0
124 nt_rw=0
125C
126 nddl = nddl0
127 nnzk = nnzk0
128 DO i=1,nddl
129 diag_k(i)=zero
130 ENDDO
131 DO i=1,nnzk
132 lt_k(i)=zero
133 ENDDO
134 nmc2=lsize(11)
135 l1 = 1+nixs*numels
136 l2 = l1+6*numels10
137 l3 = l2+12*numels20
138 li1 =1
139 li2 = li1+lsize(4)
140 li3 = li2+lsize(5)
141 li4 = li3+lsize(1)
142 li5 = li4+lsize(3)
143 li6 = li5+lsize(7)
144 li7 = li6+lsize(2)
145 li8 = li7+lsize(6)
146 li9 = li8+nint2
147 li10 = li9+lsize(8)
148 li11 = li10+(lsize(8)-nrbyac)*lsize(9)
149 li12 = li11+nrbyac*lsize(10)
150 li13 = li12+4*lsize(11)
151 li14 = li13+lsize(14)
152 li15 = li14+lsize(15)
153C
154 ngdone = 1
155 CALL imp_glob_k(
156 1 pm ,geo ,ipm ,igeo ,elbuf ,
157 2 ixs ,ixq ,ixc ,ixt ,ixp ,
158 3 ixr ,ixtg ,ixtg1 ,ixs(l1) ,
159 4 ixs(l2) ,ixs(l3) ,iparg ,tf ,npc ,
160 5 fr_wave ,w16 ,bufmat ,thke ,bufgeo ,
161 6 rby ,skew ,x ,
162 7 wa ,iddl ,ndof ,diag_k ,lt_k ,
163 8 iadk ,jdik ,ikg ,etag ,elbuf_tab ,
164 9 stack ,drape_sh4n, drape_sh3n ,drapeg )
165C /---------------/
166 CALL my_barrier
167C /---------------/
168 CALL upd_glob_k(
169 1 icodt ,icodr ,iskew ,ibfv ,npc ,
170 2 tf ,vel ,rbid ,
171 3 rby ,x ,skew ,lpby ,npby ,
172 4 itab ,weight ,ms ,in ,nrbyac ,
173 5 irbyac ,nsc ,ikinw(li1),nmc ,ikinw(li2),
174 6 ikinw(li3),ikinw(li4),nint2 ,iint2 ,ikinw(li8),
175 7 ikinw(li5),ikinw(li6),ikinw(li7),ipari ,intbuf_tab,
176 8 nddl ,nnzk ,iadk ,jdik ,
177 9 diag_k ,lt_k ,ndof ,iddl ,ikc ,
178 a d_imp ,lb ,ibid1 ,ibid2 ,rbid ,
179 b nmc2 ,ikinw(li12),nt_rw ,rbid ,ibid3 ,
180 c irbe3 ,lrbe3 ,frbe3 ,ikinw(li13),irbe2 ,
181 d lrbe2 ,ikinw(li14),ikinw(li15))
182 IF (nspmd>1) THEN
183 CALL upd_fr_k(
184 1 iadk ,jdik ,ndof ,ikc ,iddl ,
185 2 inloc ,fr_elem ,iad_elem ,nddl )
186 ENDIF
187C
188 nnmax=lsize(9)
189 nkmax=lsize(10)
190 CALL pr_infok(nddl0, nnzk0, nddl, nnzk, max(nnmax,nkmax))
191C------------
192 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine upd_fr_k(iadk, jdik, ndof, ikc, iddl, inloc, fr_elem, iad_elem, nddl)
Definition imp_fri.F:4097
subroutine imp_glob_k(pm, geo, ipm, igeo, elbuf, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, ixtg1, ixs10, ixs20, ixs16, iparg, tf, npc, fr_wave, w16, bufmat, thke, bufgeo, rby, skew, x, wa, iddl, ndof, k_diag, k_lt, iadk, jdik, ikgeo, etag, elbuf_tab, stack, drape_sh4n, drape_sh3n, drapeg)
Definition imp_glob_k.F:63
subroutine pr_infok(nddl0, nnzk0, nddl, nnzk, nnmax)
Definition imp_solv.F:2145
#define max(a, b)
Definition macros.h:21
subroutine my_barrier
Definition machine.F:31
subroutine upd_glob_k(icodt, icodr, iskew, ibfv, npc, tf, vel, xframe, rby, x, skew, lpby, npby, itab, weight, ms, in, nrbyac, irbyac, nsc, isij, nmc, imij, nss, iss, nint2, iint2, nsc2, isij2, nss2, iss2, ipari, intbuf_tab, nddl, nnz, iadk, jdik, diag_k, lt_k, ndof, iddl, ikc, ud, b, nkud, ikud, bkud, nmc2, imij2, nt_rw, rd, lj, irbe3, lrbe3, frbe3, iss3, irbe2, lrbe2, isb2, nsrb2)
Definition upd_glob_k.F:66