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

Go to the source code of this file.

Functions/Subroutines

subroutine aniskewf (geo, skew, iparg, ixr, dd_iad, lrbuf)
subroutine cntskew (iparg, cnt, cntg)

Function/Subroutine Documentation

◆ aniskewf()

subroutine aniskewf ( geo,
skew,
integer, dimension(nparg,*) iparg,
integer, dimension(nixr,*) ixr,
integer, dimension(nspmd+1,*) dd_iad,
integer lrbuf )

Definition at line 35 of file aniskewf.F.

36 use element_mod , only : nixr
37C-----------------------------------------------
38C I m p l i c i t T y p e s
39C-----------------------------------------------
40#include "implicit_f.inc"
41C-----------------------------------------------
42C C o m m o n B l o c k s
43C-----------------------------------------------
44#include "com01_c.inc"
45#include "com04_c.inc"
46#include "param_c.inc"
47#include "task_c.inc"
48C-----------------------------------------------
49C D u m m y A r g u m e n t s
50C-----------------------------------------------
51C REAL
53 . geo(npropg,*), skew(lskew,*)
54 INTEGER IXR(NIXR,*),IPARG(NPARG,*),LRBUF,
55 . DD_IAD(NSPMD+1,*)
56C-----------------------------------------------
57C L o c a l V a r i a b l e s
58C-----------------------------------------------
59 INTEGER I,ISK,
60 . NEL,LFT,LLT,NG,
61 . ITY,IAD,MLW,NFT,N,II,ISKK,MSGTAG,LEN,IGTYP
62 INTEGER SRBUF(LRBUF)
63 INTEGER, PARAMETER :: INTSIZE = 4
64c
65C-----------------------------------------------
66C SKEW
67C-----------------------------------------------
68 isk=numskw-1
69C spmd
70 ii = 0
71C problem on ISK: incremented by for all elements!
72 msgtag = 1000
73 IF (nspmd > 1 .AND. ispmd/=0) THEN
74
75 CALL rad_spmd_recv(isk,intsize,ispmd-1,
76 . it_spmd,msgtag+ispmd,intsize)
77
78 ENDIF
79C-----------------------------------------------
80C SKEW ELEMENT 1D
81C-----------------------------------------------
82C
83 DO ng=1,ngroup
84 mlw =iparg(1,ng)
85 nel =iparg(2,ng)
86 ity =iparg(5,ng)
87 nft =iparg(3,ng)
88 iad =iparg(4,ng)
89 igtyp =iparg(38,ng)
90 lft = 1
91 llt = nel
92C-----------------------------------------------
93C TRUSS
94C-----------------------------------------------
95 IF(ity==4)THEN
96 DO i=lft,llt
97 isk=isk+1
98 ii = ii + 1
99 srbuf(ii) = isk
100 ENDDO
101C-----------------------------------------------
102C POUTRES
103C-----------------------------------------------
104 ELSEIF(ity==5)THEN
105 DO i=lft,llt
106 isk=isk+1
107 ii = ii + 1
108 srbuf(ii) = isk
109 ENDDO
110C-----------------------------------------------
111C RESSORTS
112C-----------------------------------------------
113 ELSEIF(ity==6)THEN
114 IF(mlw==1.OR.mlw==7)THEN
115 DO i=lft,llt
116 isk=isk+1
117 ii = ii + 1
118 srbuf(ii) = isk
119 ENDDO
120 ELSEIF(mlw==2)THEN
121 DO i=lft,llt
122 n=i+nft
123 iskk=nint(geo(2,ixr(1,n)))-1
124 ii = ii + 1
125 srbuf(ii) = iskk
126 ENDDO
127 ELSEIF(mlw==3)THEN
128 DO i=lft,llt
129 isk=isk+1
130 ii = ii + 1
131 srbuf(ii) = isk
132 isk=isk+1
133 ii = ii + 1
134 srbuf(ii) = isk
135 ENDDO
136 ELSEIF((mlw >= 4 .AND. mlw <= 6 ) .OR. igtyp == 23)THEN
137 DO i=lft,llt
138 isk=isk+1
139 ii = ii + 1
140 srbuf(ii) = isk
141 ENDDO
142 ENDIF
143 ELSE
144 ENDIF
145 ENDDO
146
147 IF (nspmd > 1) THEN
148 IF (ispmd/=nspmd-1) THEN
149 CALL rad_spmd_send(isk,intsize,ispmd+1,
150 . it_spmd,msgtag+ispmd+1,intsize)
151 ENDIF
152
153 CALL spmd_igath(srbuf,ii,len)
154 ELSE
155 len = ii
156 END IF
157 IF (ispmd==0) THEN
158 CALL write_i_c(srbuf,len)
159 ENDIF
160C ENDIF
161
162C
163 RETURN
#define my_real
Definition cppsort.cpp:32
subroutine rad_spmd_recv(a, siz, ispmd, it_spmd, msgtag, intsize)
subroutine rad_spmd_send(a, siz, ispmd, it_spmd, msgtag, intsize)
subroutine spmd_igath(srbuf, len, lrecv)
Definition spmd_igath.F:34
void write_i_c(int *w, int *len)

◆ cntskew()

subroutine cntskew ( integer, dimension(nparg,*) iparg,
integer cnt,
integer cntg )

Definition at line 173 of file aniskewf.F.

174C-----------------------------------------------
175C I m p l i c i t T y p e s
176C-----------------------------------------------
177#include "implicit_f.inc"
178C-----------------------------------------------
179C C o m m o n B l o c k s
180C-----------------------------------------------
181#include "com01_c.inc"
182#include "param_c.inc"
183C-----------------------------------------------
184C D u m m y A r g u m e n t s
185C-----------------------------------------------
186 INTEGER IPARG(NPARG,*),CNT,CNTG
187
188C-----------------------------------------------
189C L o c a l V a r i a b l e s
190C-----------------------------------------------
191 INTEGER NG,MLW,NEL,ITY
192 cnt = 0
193 DO ng=1,ngroup
194 mlw =iparg(1,ng)
195 nel =iparg(2,ng)
196 ity =iparg(5,ng)
197
198 IF (ity==4.OR.ity==5.OR.ity==6) THEN
199 IF (mlw==3) THEN
200 cnt=cnt+2*nel
201 ELSE
202 cnt = cnt+nel
203 ENDIF
204 ENDIF
205 ENDDO
206
207 cntg = cnt
208 IF (nspmd > 1) CALL spmd_glob_isum9(cntg,1)
subroutine spmd_glob_isum9(v, len)
Definition spmd_th.F:520