OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
kldim.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "units_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine kldim (eigipm, eigibuf, ndof, ldiag, ljdik, ljdik2, nddl, k_diag, k_lt, iadk, jdik, ikc, nms, inloc, iddl)

Function/Subroutine Documentation

◆ kldim()

subroutine kldim ( integer, dimension(*) eigipm,
integer, dimension(*) eigibuf,
integer, dimension(*) ndof,
integer ldiag,
integer ljdik,
integer ljdik2,
integer nddl,
k_diag,
k_lt,
integer, dimension(*) iadk,
integer, dimension(*) jdik,
integer, dimension(*) ikc,
integer nms,
integer, dimension(*) inloc,
integer, dimension(*) iddl )

Definition at line 27 of file kldim.F.

30C-----------------------------------------------
31C I m p l i c i t T y p e s
32C-----------------------------------------------
33#include "implicit_f.inc"
34C-----------------------------------------------
35C C o m m o n B l o c k s
36C-----------------------------------------------
37#include "com04_c.inc"
38#include "units_c.inc"
39C-----------------------------------------------
40C D u m m y A r g u m e n t s
41C-----------------------------------------------
42 INTEGER EIGIPM(*), EIGIBUF(*),NDOF(*), LDIAG, LJDIK, LJDIK2,
43 . NDDL, IADK(*), JDIK(*), IKC(*), NMS, INLOC(*), IDDL(*)
45 . k_diag(*), k_lt(*)
46C-----------------------------------------------
47C L o c a l V a r i a b l e s
48C-----------------------------------------------
49 INTEGER ICT, ICR, NN1, NN2, BDOF(6), I, II, J, JD, ITAG(NDDL),
50 . NBDOF, IND_IB(NDDL), ITAGN(NUMNOD), N, ITAG2(NDDL)
51C
52 ict=eigipm(3)
53 icr=eigipm(4)
54 nn1=eigipm(10)
55 nn2=eigipm(11)
56 DO i=1,6
57 bdof(i)=0
58 ENDDO
59 IF (ict==1) THEN
60 bdof(3)=1
61 nbdof=1
62 ELSEIF (ict==2) THEN
63 bdof(2)=1
64 nbdof=1
65 ELSEIF (ict==3) THEN
66 bdof(2)=1
67 bdof(3)=1
68 nbdof=2
69 ELSEIF (ict==4) THEN
70 bdof(1)=1
71 nbdof=1
72 ELSEIF (ict==5) THEN
73 bdof(1)=1
74 bdof(3)=1
75 nbdof=2
76 ELSEIF (ict==6) THEN
77 bdof(1)=1
78 bdof(2)=1
79 nbdof=2
80 ELSEIF (ict==7) THEN
81 bdof(1)=1
82 bdof(2)=1
83 bdof(3)=1
84 nbdof=3
85 ENDIF
86 IF (icr==1) THEN
87 bdof(6)=1
88 nbdof=nbdof+1
89 ELSEIF (icr==2) THEN
90 bdof(5)=1
91 nbdof=nbdof+1
92 ELSEIF (icr==3) THEN
93 bdof(5)=1
94 bdof(6)=1
95 nbdof=nbdof+2
96 ELSEIF (icr==4) THEN
97 bdof(4)=1
98 nbdof=nbdof+1
99 ELSEIF (icr==5) THEN
100 bdof(4)=1
101 bdof(6)=1
102 nbdof=nbdof+2
103 ELSEIF (icr==6) THEN
104 bdof(4)=1
105 bdof(5)=1
106 nbdof=nbdof+2
107 ELSEIF (icr==7) THEN
108 bdof(4)=1
109 bdof(5)=1
110 bdof(6)=1
111 nbdof=nbdof+3
112 ENDIF
113C
114 DO i=1,numnod
115 itagn(i)=0
116 ENDDO
117 DO i=1,nn1
118 ii=eigibuf(i)
119 itagn(ii)=1
120 ENDDO
121 DO i=1,nn2
122 ii=eigibuf(nn1+i)
123 itagn(ii)=2
124 ENDDO
125C
126 DO i=1,nddl
127 itag(i)=0
128 ENDDO
129 nms=0
130 DO i=1,numnod
131 n=inloc(i)
132 ii=iddl(n)
133 IF (itagn(n)==1) THEN
134 DO j=1,ndof(n)
135 itag(ii+j)=1
136 ENDDO
137 ELSEIF (itagn(n)==2) THEN
138 DO j=1,ndof(n)
139 IF (ikc(ii+j)<1.AND.bdof(j)==1) nms=nms+1
140 itag(ii+j)=bdof(j)+1
141 ENDDO
142 ENDIF
143 DO j=1,ndof(n)
144 IF (ikc(ii+j)>=1) itag(ii+j)=-1
145 ENDDO
146 ENDDO
147C Elimination des ddls bloques dans la liste
148 DO i=1,nddl
149 itag2(i)=itag(i)
150 itag(i)=0
151 ENDDO
152 ii=0
153 DO i=1,nddl
154 IF (itag2(i)>=0) THEN
155 ii=ii+1
156 itag(ii)=itag2(i)
157 ENDIF
158 ENDDO
159C
160 DO i=1,nddl
161 ind_ib(i)=0
162 ENDDO
163 ldiag=0
164 ljdik=0
165 ljdik2=0
166 DO i=1,nddl
167 IF (itag(i)>=1) THEN
168 ldiag=ldiag+1
169 DO j=iadk(i),iadk(i+1)-1
170 jd=jdik(j)
171 IF (itag(jd)>=1) THEN
172 ljdik=ljdik+1
173 IF (itag(jd)==2.AND.itag(i)==1)
174 . ind_ib(i)=ind_ib(i)+1
175 IF (itag(jd)==1.AND.itag(i)==2)
176 . ind_ib(jd)=ind_ib(jd)+1
177 ENDIF
178 ENDDO
179 ENDIF
180 ENDDO
181 DO i=1,nddl
182 ljdik2=ljdik2+ind_ib(i)
183 ENDDO
184C
185 RETURN
#define my_real
Definition cppsort.cpp:32