OpenRadioss 2025.1.11
OpenRadioss project
Loading...
Searching...
No Matches
stat_c_off.F File Reference
#include "implicit_f.inc"
#include "com01_c.inc"
#include "param_c.inc"
#include "units_c.inc"
#include "task_c.inc"
#include "scr14_c.inc"
#include "scr16_c.inc"

Go to the source code of this file.

Functions/Subroutines

subroutine stat_c_off (elbuf_tab, iparg, ipm, igeo, ixc, ixtg, wa, wap0, ipartc, iparttg, ipart_state, stat_indxc, stat_indxtg, sizp0)

Function/Subroutine Documentation

◆ stat_c_off()

subroutine stat_c_off ( type (elbuf_struct_), dimension(ngroup), target elbuf_tab,
integer, dimension(nparg,*) iparg,
integer, dimension(npropmi,*) ipm,
integer, dimension(npropgi,*) igeo,
integer, dimension(nixc,*) ixc,
integer, dimension(nixtg,*) ixtg,
double precision, dimension(*) wa,
double precision, dimension(*) wap0,
integer, dimension(*) ipartc,
integer, dimension(*) iparttg,
integer, dimension(*) ipart_state,
integer, dimension(*) stat_indxc,
integer, dimension(*) stat_indxtg,
integer sizp0 )

Definition at line 34 of file stat_c_off.F.

37C-----------------------------------------------
38C M o d u l e s
39C-----------------------------------------------
40 USE elbufdef_mod
41 use element_mod , only : nixc,nixtg
42C-----------------------------------------------
43C I m p l i c i t T y p e s
44C-----------------------------------------------
45#include "implicit_f.inc"
46C-----------------------------------------------
47C C o m m o n B l o c k s
48C-----------------------------------------------
49#include "com01_c.inc"
50#include "param_c.inc"
51#include "units_c.inc"
52#include "task_c.inc"
53#include "scr14_c.inc"
54#include "scr16_c.inc"
55C-----------------------------------------------
56C D u m m y A r g u m e n t s
57C-----------------------------------------------
58 INTEGER SIZP0
59 INTEGER IXC(NIXC,*),IXTG(NIXTG,*),
60 . IPARG(NPARG,*),IPM(NPROPMI,*),IGEO(NPROPGI,*),
61 . IPARTC(*), IPARTTG(*), IPART_STATE(*),
62 . STAT_INDXC(*), STAT_INDXTG(*)
63 TYPE (ELBUF_STRUCT_), DIMENSION(NGROUP), TARGET :: ELBUF_TAB
64 double precision WA(*),WAP0(*)
65C-----------------------------------------------
66C L o c a l V a r i a b l e s
67C-----------------------------------------------
68 INTEGER I,J,K,N,JJ,LEN,NG, NEL, NFT, ITY, LFT,
69 . LLT, MLW, IPRT,ID,IOFF
70 CHARACTER*100 LINE
71 TYPE(G_BUFEL_) ,POINTER :: GBUF
72C-----------------------------------------------
73C 4-NODE SHELLS
74C-----------------------------------------------
75 jj = 0
76 IF(stat_numelc==0) GOTO 200
77C
78 DO ng=1,ngroup
79 ity =iparg(5,ng)
80 IF(ity==3) THEN
81 gbuf => elbuf_tab(ng)%GBUF
82 mlw =iparg(1,ng)
83 nel =iparg(2,ng)
84 nft =iparg(3,ng)
85
86 lft =1
87 llt =nel
88 DO i=lft,llt
89 n = i + nft
90
91 iprt=ipartc(n)
92 IF(ipart_state(iprt)==0)cycle
93
94 jj = jj + 1
95 wa(jj) = ixc(nixc,n)
96 jj = jj + 1
97 IF (mlw /= 0 .AND. mlw /= 13) THEN
98 wa(jj) = gbuf%OFF(i)
99 ELSE
100 wa(jj) = zero
101 ENDIF
102 ENDDO
103 ENDIF
104 ENDDO
105
106 200 CONTINUE
107
108 IF(nspmd == 1)THEN
109 len=jj
110 DO j=1,len
111 wap0(j)=wa(j)
112 END DO
113 ELSE
114 len = 0
115 CALL spmd_rgather9_dp(wa,jj,wap0,sizp0,len)
116 END IF
117
118 IF(ispmd==0.AND.len>0) THEN
119
120 IF (izipstrs == 0) THEN
121 WRITE(iugeo,'(A)')'/INISHE/OFF'
122 WRITE(iugeo,'(A)')
123 . '# SHELLID IOFF'
124 ELSE
125 WRITE(line,'(A)')'/INISHE/OFF'
126 CALL strs_txt50(line,100)
127 WRITE(line,'(A)')
128 . '# SHELLID IOFF'
129 CALL strs_txt50(line,100)
130 ENDIF
131 DO n=1,stat_numelc_g
132 k=stat_indxc(n)
133 j=2*(k-1)
134 id =nint(wap0(j+1))
135 ioff=nint(wap0(j+2))
136 IF (izipstrs == 0) THEN
137 WRITE(iugeo,'(2I10)')id,ioff
138 ELSE
139 WRITE(line,'(2I10)')id,ioff
140 CALL strs_txt50(line,100)
141 ENDIF
142 END DO
143 ENDIF
144
145C-----------------------------------------------
146C 3-NODE SHELLS
147C-----------------------------------------------
148 jj = 0
149 IF(stat_numeltg==0) GOTO 300
150
151C
152 DO ng=1,ngroup
153 ity =iparg(5,ng)
154 IF(ity==7) THEN
155 gbuf => elbuf_tab(ng)%GBUF
156 mlw =iparg(1,ng)
157 nel =iparg(2,ng)
158 nft =iparg(3,ng)
159c
160 lft =1
161 llt =nel
162 DO i=lft,llt
163 n = i + nft
164
165 iprt=iparttg(n)
166 IF(ipart_state(iprt)==0)cycle
167
168 jj = jj + 1
169 wa(jj) = ixtg(nixtg,n)
170 jj = jj + 1
171 IF (mlw /= 0 .AND. mlw /= 13) THEN
172 wa(jj) = gbuf%OFF(i)
173 ELSE
174 wa(jj) = zero
175 ENDIF
176 ENDDO
177 ENDIF
178 ENDDO
179
180 300 CONTINUE
181
182 IF(nspmd == 1)THEN
183 len=jj
184 DO j=1,len
185 wap0(j)=wa(j)
186 END DO
187 ELSE
188 len = 0
189 CALL spmd_rgather9_dp(wa,jj,wap0,sizp0,len)
190 END IF
191
192 IF(ispmd==0.AND.len>0) THEN
193
194 IF (izipstrs == 0) THEN
195 WRITE(iugeo,'(A)')'/INISH3/OFF'
196 WRITE(iugeo,'(A)')
197 . '# SH3NID IOFF'
198 ELSE
199 WRITE(line,'(A)')'/INISH3/OFF'
200 CALL strs_txt50(line,100)
201 WRITE(line,'(A)')
202 . '# SH3NID IOFF'
203 CALL strs_txt50(line,100)
204 ENDIF
205
206 DO n=1,stat_numeltg_g
207 k=stat_indxtg(n)
208 j=2*(k-1)
209 id =nint(wap0(j+1))
210 ioff=nint(wap0(j+2))
211 IF (izipstrs == 0) THEN
212 WRITE(iugeo,'(2I10)')id,ioff
213 ELSE
214 WRITE(line,'(2I10)')id,ioff
215 CALL strs_txt50(line,100)
216 ENDIF
217 END DO
218 ENDIF
219c-----------
220 RETURN
initmumps id
subroutine spmd_rgather9_dp(v, len, vp0, lenp0, iad)
Definition spmd_outp.F:1019
subroutine strs_txt50(text, length)
Definition sta_txt.F:87