OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
parsorc.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "com04_c.inc"
#include "param_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine parsorc (x, d, xnorm, iadd, cdg, bufel, iparg, ixq, ixc, ixtg, invert, el2fa, mater, ipartq, ipartc, iparttg, elbuf_tab)

Function/Subroutine Documentation

◆ parsorc()

subroutine parsorc ( x,
d,
xnorm,
integer, dimension(*) iadd,
cdg,
bufel,
integer, dimension(nparg,*) iparg,
integer, dimension(nixq,*) ixq,
integer, dimension(nixc,*) ixc,
integer, dimension(nixtg,*) ixtg,
integer, dimension(*) invert,
integer, dimension(*) el2fa,
integer, dimension(*) mater,
integer, dimension(*) ipartq,
integer, dimension(*) ipartc,
integer, dimension(*) iparttg,
type (elbuf_struct_), dimension(ngroup) elbuf_tab )

Definition at line 31 of file parsorc.F.

36C-----------------------------------------------
37C M o d u l e s
38C-----------------------------------------------
39 USE elbufdef_mod
40C-----------------------------------------------
41C I m p l i c i t T y p e s
42C-----------------------------------------------
43#include "implicit_f.inc"
44C-----------------------------------------------
45C C o m m o n B l o c k s
46C-----------------------------------------------
47#include "com01_c.inc"
48#include "com04_c.inc"
49#include "param_c.inc"
50C-----------------------------------------------
51C D u m m y A r g u m e n t s
52C-----------------------------------------------
53C REAL
55 . x(*),d(*),xnorm(3,*),cdg(*),bufel(*)
56 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),IADD(*),IPARG(NPARG,*),
57 . IXQ(NIXQ,*),
58 . INVERT(*), EL2FA(*),MATER(*),
59 . IPARTQ(*),IPARTC(*),IPARTTG(*)
60 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP) :: ELBUF_TAB
61C-----------------------------------------------
62C REAL
64 . off
65 INTEGER II(4),IE,NG, ITY, LFT, LLT, KPT, N, I, J,
66 . IPRT, NEL, IAD, NPAR, NFT, IMID,IALEL,MTN,
67 . NN1,NN2,NN3,NN4,NN5,NN6,NN7,NN8,NN9,NN10,
68 . JJ, K, SH_IH, IHBE,BUF
69 INTEGER NP((NUMELQ + NUMELC + NUMELTG )*4)
70C-----------------------------------------------
71C NORMALE
72C-----------------------------------------------
73 DO k=1,numnod
74 DO j=1,3
75 xnorm(j,k) = zero
76 ENDDO
77 ENDDO
78 ie = 0
79C
80 nn1 = 1
81 nn2 = 1
82 nn3 = 1
83 nn4 = nn3 + numelq
84 nn5 = nn4 + numelc
85 nn6 = nn5 + numeltg
86 nn7 = nn6
87 nn8 = nn7
88 nn9 = nn8
89C-----------------------------------------------
90 npar = 0
91C
92C-----------------------------------------------
93C PART
94C-----------------------------------------------
95 IF(numelq + numelc + numeltg/=0)THEN
96 jj = 0
97
98 DO 500 iprt=1,npart
99 IF(mater(iprt)==0)GOTO 500
100 npar = npar + 1
101 DO 490 ng=1,ngroup
102 mtn =iparg(1,ng)
103 nel =iparg(2,ng)
104 nft =iparg(3,ng)
105 iad =iparg(4,ng)
106 ity =iparg(5,ng)
107 lft=1
108 llt=nel
109C-----------------------------------------------
110C QUAD
111C-----------------------------------------------
112 IF(ity==2)THEN
113 DO 20 i=lft,llt
114 n = i + nft
115 IF(ipartq(n)/=iprt) GOTO 20
116 IF (mtn/=0 .AND. mtn/=13) off=elbuf_tab(ng)%GBUF%OFF(i)
117 ii(1) = ixq(2,n)
118 ii(2) = ixq(3,n)
119 ii(3) = ixq(4,n)
120 ii(4) = ixq(5,n)
121
122 xnorm(1,ii(1)) = one
123 xnorm(2,ii(1)) = zero
124 xnorm(3,ii(1)) = zero
125 ii(1) = ii(1)-1
126 ii(2) = ii(2)-1
127 ii(3) = ii(3)-1
128 ii(4) = ii(4)-1
129 CALL write_i_c(ii,4)
130 ie = ie + 1
131 invert(ie) = 1
132 el2fa(nn3+n) = ie
133 jj = jj + 4
134 20 CONTINUE
135C-----------------------------------------------
136C COQUES
137C-----------------------------------------------
138 ELSEIF(ity==3)THEN
139 kpt =iparg(6,ng)
140 ihbe = iparg(23,ng)
141 sh_ih = 16
142 IF (ihbe>=21.AND.ihbe<=29) sh_ih = 17
143 IF (ihbe==22) sh_ih = sh_ih + 6
144 DO 130 i=lft,llt
145 n = i + nft
146 IF(ipartc(n)/=iprt)GOTO 130
147 IF (mtn/=0 .AND. mtn/=13) off=elbuf_tab(ng)%GBUF%OFF(i)
148 ii(1) = ixc(2,n)
149 ii(2) = ixc(3,n)
150 ii(3) = ixc(4,n)
151 ii(4) = ixc(5,n)
152 ie = ie + 1
153
154 CALL facnor(x,d,ii,xnorm,cdg,invert(ie))
155
156 ii(1) = ii(1)-1
157 ii(2) = ii(2)-1
158 ii(3) = ii(3)-1
159 ii(4) = ii(4)-1
160 CALL write_i_c(ii,4)
161 el2fa(nn4+n) = ie
162 jj = jj + 4
163 130 CONTINUE
164C-----------------------------------------------
165C COQUES 3 NOEUDS
166C-----------------------------------------------
167 ELSEIF(ity==7)THEN
168 kpt =iparg(6,ng)
169 DO 170 i=lft,llt
170 n = i + nft
171 IF(iparttg(n)/=iprt)GOTO 170
172 IF (mtn/=0 .AND. mtn/=13) off=elbuf_tab(ng)%GBUF%OFF(i)
173 ii(1) = ixtg(2,n)
174 ii(2) = ixtg(3,n)
175 ii(3) = ixtg(4,n)
176 ii(4) = ii(3)
177 ie = ie + 1
178 CALL facnor(x,d,ii,xnorm,cdg,invert(ie))
179 ii(1) = ii(1)-1
180 ii(2) = ii(2)-1
181 ii(3) = ii(3)-1
182 ii(4) = ii(4)-1
183 CALL write_i_c(ii,4)
184 el2fa(nn5+n) = ie
185 jj = jj + 4
186 170 CONTINUE
187
188 ELSE
189 ENDIF
190 490 CONTINUE
191C
192
193C-----------------------------------------------
194C PART ADRESS
195C-----------------------------------------------
196 iadd(npar) = ie
197 500 CONTINUE
198 ENDIF
199C-----------------------------------------------
200 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine invert(matrix, inverse, n, errorflag)
subroutine facnor(x, d, ii, xnorm, cdg, invert)
Definition facnor.F:30
void write_i_c(int *w, int *len)