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