OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
dsdim.F File Reference
#include "implicit_f.inc"
#include "com04_c.inc"
#include "param_c.inc"
#include "scr23_c.inc"
#include "sms_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine dsdim0 (ndof, ixs, ixq, ixc, ixt, ixp, ixr, ixtg, kxx, ixx, geo)

Function/Subroutine Documentation

◆ dsdim0()

subroutine dsdim0 ( integer, dimension(*) ndof,
integer, dimension(nixs,*) 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(nixx,*) kxx,
integer, dimension(*) ixx,
geo )

Definition at line 29 of file dsdim.F.

32 use element_mod , only : nixs,nixq,nixc,nixt,nixp,nixr,nixtg,nixtg
33C-----------------------------------------------
34C I m p l i c i t T y p e s
35C-----------------------------------------------
36#include "implicit_f.inc"
37C-----------------------------------------------
38C C o m m o n B l o c k s
39C-----------------------------------------------
40#include "com04_c.inc"
41#include "param_c.inc"
42#include "scr23_c.inc"
43#include "sms_c.inc"
44C-----------------------------------------------
45C D u m m y A r g u m e n t s
46C-----------------------------------------------
47 INTEGER NDOF(*), IXS(NIXS,*), IXQ(NIXQ,*), IXC(NIXC,*),
48 . IXT(NIXT,*), IXP(NIXP,*), IXR(NIXR,*),
49 . IXTG(NIXTG,*), KXX(NIXX,*), IXX(*)
51 . geo(npropg,*)
52C-----------------------------------------------
53C L o c a l V a r i a b l e s
54C-----------------------------------------------
55 INTEGER I, IEL, J, N, IGTYP, NN
56 INTEGER, DIMENSION(:), ALLOCATABLE :: TAG8
57
58 ALLOCATE(tag8(numnod))
59C
60C Filling of ndof (see dim_glob_k in engine)
61C
62 DO i=1,numnod
63 ndof(i)=0
64 ENDDO
65C
66 IF(isms==0)THEN
67C---- IMPLICIT
68 DO iel=1,numels
69 DO j=1,8
70 n=ixs(j+1,iel)
71 IF(n/=0)ndof(n)=3
72 ENDDO
73 ENDDO
74 DO iel=1,numelt
75 DO j=1,2
76 n=ixt(j+1,iel)
77 IF(n/=0)ndof(n)=3
78 ENDDO
79 ENDDO
80 DO iel=1,numelc
81 DO j=1,4
82 n=ixc(j+1,iel)
83 IF(n/=0)ndof(n)=6
84 ENDDO
85 ENDDO
86 DO iel=1,numeltg
87 DO j=1,3
88 n=ixtg(j+1,iel)
89 IF(n/=0)ndof(n)=6
90 ENDDO
91 ENDDO
92 DO iel=1,numelp
93 DO j=1,2
94 n=ixp(j+1,iel)
95 IF(n/=0)ndof(n)=6
96 ENDDO
97 ENDDO
98 DO iel=1,numelr
99 igtyp= nint(geo(12,ixr(1,iel)))
100 IF (igtyp==8.OR.igtyp==13 .OR. igtyp == 23) THEN
101 DO j=1,2
102 n=ixr(j+1,iel)
103 IF(n/=0)ndof(n)=6
104 ENDDO
105 ELSEIF (igtyp==4) THEN
106 DO j=1,2
107 n=ixr(j+1,iel)
108 IF(n/=0)ndof(n)=max(ndof(n),3)
109 ENDDO
110 ENDIF
111 ENDDO
112C
113C DO I=1,NRBYKIN
114C N=NPBY(1,I)
115C IF(N/=0)NDOF(N)=6
116C ENDDO
117C
118 ELSE
119C---- AMS
120 DO iel=1,numels
121 DO j=1,8
122 n = ixs(j+1,iel)
123 IF(n/=0)tag8(n)=0
124 ENDDO
125 nn=0
126 DO j=1,8
127 n = ixs(j+1,iel)
128 IF(n/=0)THEN
129 IF(tag8(n)==0)THEN
130 nn=nn+1
131 tag8(n)=1
132 END IF
133 END IF
134 ENDDO
135 DO j=1,8
136 n = ixs(j+1,iel)
137 IF(n/=0)tag8(n)=0
138 ENDDO
139 DO j=1,8
140 n = ixs(j+1,iel)
141 IF(n/=0)THEN
142 IF(tag8(n)==0)THEN
143 ndof(n)=nn-1
144 tag8(n)=1
145 END IF
146 END IF
147 ENDDO
148 ENDDO
149 DO iel=1,numelt
150 DO j=1,2
151 n=ixt(j+1,iel)
152 IF(n/=0)ndof(n)=1
153 ENDDO
154 ENDDO
155 DO iel=1,numelc
156 DO j=1,4
157 n=ixc(j+1,iel)
158 IF(n/=0)ndof(n)=3
159 ENDDO
160 ENDDO
161 DO iel=1,numeltg
162 DO j=1,3
163 n=ixtg(j+1,iel)
164 IF(n/=0)ndof(n)=2
165 ENDDO
166 ENDDO
167 DO iel=1,numelp
168 DO j=1,2
169 n=ixp(j+1,iel)
170 IF(n/=0)ndof(n)=1
171 ENDDO
172 ENDDO
173 DO iel=1,numelr
174 igtyp= nint(geo(12,ixr(1,iel)))
175 IF (igtyp==8.OR.igtyp==13 .OR. igtyp == 23) THEN
176 DO j=1,2
177 n=ixr(j+1,iel)
178 IF(n/=0)ndof(n)=1
179 ENDDO
180 ELSEIF (igtyp==4) THEN
181 DO j=1,2
182 n=ixr(j+1,iel)
183 IF(n/=0)ndof(n)=1
184 ENDDO
185 ENDIF
186 ENDDO
187 END IF
188 DEALLOCATE(tag8)
189 RETURN
#define my_real
Definition cppsort.cpp:32
#define max(a, b)
Definition macros.h:21