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