33
34
35
36
37 USE intbufdef_mod
39
40
41
42#include "implicit_f.inc"
43#include "comlock.inc"
44
45
46
47#include "com04_c.inc"
48#include "param_c.inc"
49#include "task_c.inc"
50
51
52
53 INTEGER NIN
54 INTEGER IPARI(NPARI,NINTER), ITAB(*)
55
56 TYPE(INTBUF_STRUCT_) INTBUF_TAB
57
58
59
60 INTEGER
61 . I, J, L, H, I_STOK_RTLM,
62 . N, NSN, NSNR, IVIS2
63
64
65
66
67 nsn =ipari(5,nin)
68 nsnr =ipari(24,nin)
69 ivis2 =ipari(14,nin)
70
71 i_stok_rtlm = 0
72 IF(ivis2/=-1) THEN
73
74 DO n=1,nsn
75
76
77
78 IF(intbuf_tab%IRTLM(4*(n-1)+1) > 0)THEN
79 IF(intbuf_tab%STFNS(n)==zero)THEN
80
81
82 intbuf_tab%IRTLM(4*n-3:4*n)=0
83 ELSEIF(intbuf_tab%IRTLM(4*(n-1)+4) == ispmd+1)THEN
84 l = intbuf_tab%IRTLM(4*(n-1)+3)
85 IF(intbuf_tab%STFM(l)==zero)THEN
86
87
88 intbuf_tab%IRTLM(4*(n-1)+1)=0
89 intbuf_tab%IRTLM(4*(n-1)+2)=0
90
91
92
93 intbuf_tab%IRTLM(4*(n-1)+3) = -1
94 intbuf_tab%IRTLM(4*(n-1)+4) = 0
95 intbuf_tab%TIME_S(2*(n-1)+1) = ep20
96 intbuf_tab%TIME_S(2*(n-1)+2) = ep20
97
98 intbuf_tab%SECND_FR(6*(n-1)+1:6*n) = zero
99 intbuf_tab%STIF_OLD(2*(n-1)+1:2*n)= zero
100 intbuf_tab%PENE_OLD
101
102 ELSE
103
104
105 i_stok_rtlm=i_stok_rtlm+1
106 intbuf_tab%CAND_OPT_N(i_stok_rtlm)= n
107 intbuf_tab%CAND_OPT_E(i_stok_rtlm)= l
108
109
110 intbuf_tab%SECND_FR(6*(n-1)+4:6*n)=intbuf_tab%SECND_FR(6*(n-1)+1:6*(n-1)+3)
111
112 intbuf_tab%SECND_FR(6*(n-1)+1:6*(n-1)+3)=zero
113 intbuf_tab%PENE_OLD(5*(n-1)+2) = intbuf_tab%PENE_OLD(5*(n-1)+1)
114 intbuf_tab%PENE_OLD(5*(n-1)+1) = zero
115 intbuf_tab%STIF_OLD(2*(n-1)+2) = intbuf_tab%STIF_OLD(2*(n-1)+1)
116 intbuf_tab%STIF_OLD(2*(n-1)+1) = zero
117
118
119 intbuf_tab%TIME_S(2*(n-1)+1) = ep20
120 intbuf_tab%TIME_S(2*(n-1)+2) = ep20
121 END IF
122 ELSE
123
124
125 intbuf_tab%SECND_FR(6*(n-1)+1:6*n) =zero
126 intbuf_tab%STIF_OLD(2*(n-1)+1:2*n)=zero
127 intbuf_tab%PENE_OLD(5*(n-1)+1) =zero
128 intbuf_tab%PENE_OLD(5*(n-1)+2) =zero
129 intbuf_tab%PENE_OLD(5*(n-1)+3) =zero
130 intbuf_tab%PENE_OLD(5*(n-1)+4) =zero
131 intbuf_tab%PENE_OLD(5*(n-1)+5) =zero
132
133
134 intbuf_tab%TIME_S(2*(n-1)+1) = ep20
135 intbuf_tab%TIME_S(2*(n-1)+2) = ep20
136 END IF
137 ELSE
138
139
140
141
142
143 intbuf_tab%PENE_OLD(5*(n-1)+3) =zero
144 intbuf_tab%PENE_OLD(5*(n-1)+4) =zero
145 intbuf_tab%TIME_S(2*(n-1)+1) = -ep20
146 intbuf_tab%TIME_S(2*(n-1)+2) = ep20
147 END IF
148 END DO
149
150 DO n=1,nsnr
151
152
153
155 IF(
stifi(nin)%P(n)==zero)
THEN
156
157
159 ELSEIF(
irtlm_fi(nin)%P(4,n) == ispmd+1)
THEN
161 IF(intbuf_tab%STFM(l)==zero)THEN
162
163
166
167
168
173
177
178 ELSE
179 i_stok_rtlm=i_stok_rtlm+1
180 intbuf_tab%CAND_OPT_N(i_stok_rtlm)= nsn+n
181 intbuf_tab%CAND_OPT_E(i_stok_rtlm)= l
182
183
185
191
192
195 END IF
196 ELSE
197
198
206
207
210 END IF
211 ELSE
212
213
214
215
216
221 END IF
222 END DO
223
224 ELSE
225
226 DO n=1,nsn
227
228
229
230 IF(intbuf_tab%IRTLM(4*(n-1)+1) > 0)THEN
231 IF(intbuf_tab%STFNS(n)==zero)THEN
232
233
234 intbuf_tab%IRTLM(4*n-3:4*n)=0
235 ELSEIF(intbuf_tab%IRTLM(4*(n-1)+4) == ispmd+1)THEN
236 l = intbuf_tab%IRTLM(4*(n-1)+3)
237 IF(intbuf_tab%STFM(l)==zero)THEN
238
239
240 intbuf_tab%IRTLM(4*(n-1)+1)=0
241 intbuf_tab%IRTLM(4*(n-1)+2)=0
242
243
244
245 intbuf_tab%IRTLM(4*(n-1)+3) = -1
246 intbuf_tab%IRTLM(4*(n-1)+4) = 0
247 intbuf_tab%TIME_S(2*(n-1)+1) = ep20
248 intbuf_tab%TIME_S(2*(n-1)+2) = ep20
249
250 intbuf_tab%SECND_FR(6*(n-1)+1:6*n) = zero
251 intbuf_tab%STIF_OLD(2*(n-1)+1:2*n)= zero
252 intbuf_tab%PENE_OLD(5*(n-1)+1:5*n)= zero
253 intbuf_tab%IF_ADH(n) = 0
254
255 ELSE
256
257
258 i_stok_rtlm=i_stok_rtlm+1
259 intbuf_tab%CAND_OPT_N(i_stok_rtlm)= n
260 intbuf_tab%CAND_OPT_E(i_stok_rtlm)= l
261
262
263 intbuf_tab%SECND_FR(6*(n-1)+4:6*n)=intbuf_tab%SECND_FR(6*(n-1)+1:6*(n-1)+3)
264
265 intbuf_tab%SECND_FR(6*(n-1)+1:6*(n-1)+3)=zero
266 intbuf_tab%PENE_OLD(5*(n-1)+2) = intbuf_tab%PENE_OLD(5*(n-1)+1)
267 intbuf_tab%PENE_OLD(5*(n-1)+1) = zero
268 intbuf_tab%STIF_OLD(2*(n-1)+2) = intbuf_tab%STIF_OLD(2*(n-1)+1)
269 intbuf_tab%STIF_OLD(2*(n-1)+1) = zero
270
271
272 intbuf_tab%TIME_S(2*(n-1)+1) = ep20
273 intbuf_tab%TIME_S(2*(n-1)+2) = ep20
274 END IF
275 ELSE
276
277
278 intbuf_tab%SECND_FR(6*(n-1)+1:6*n) =zero
279 intbuf_tab%STIF_OLD(2*(n-1)+1:2*n)=zero
280 intbuf_tab%PENE_OLD(5*(n-1)+1) =zero
281 intbuf_tab%PENE_OLD(5*(n-1)+2) =zero
282 intbuf_tab%PENE_OLD(5*(n-1)+3) =zero
283 intbuf_tab%PENE_OLD(5*(n-1)+4) =zero
284 intbuf_tab%PENE_OLD(5*(n-1)+5) =zero
285 intbuf_tab%IF_ADH(n) = 0
286
287
288 intbuf_tab%TIME_S(2*(n-1)+1) = ep20
289 intbuf_tab%TIME_S(2*(n-1)+2) = ep20
290 END IF
291 ELSE
292
293
294
295
296
297 intbuf_tab%TIME_S(2*(n-1)+1) = -ep20
298 intbuf_tab%TIME_S(2*(n-1)+2) = ep20
299 END IF
300 END DO
301
302 DO n=1,nsnr
303
304
305
307 IF(
stifi(nin)%P(n)==zero)
THEN
308
309
311 ELSEIF(
irtlm_fi(nin)%P(4,n) == ispmd+1)
THEN
313 IF(intbuf_tab%STFM(l)==zero)THEN
314
315
318
319
320
325
330
331 ELSE
332 i_stok_rtlm=i_stok_rtlm+1
333 intbuf_tab%CAND_OPT_N(i_stok_rtlm)= nsn+n
334 intbuf_tab%CAND_OPT_E(i_stok_rtlm)= l
335
336
338
344
345
348 END IF
349 ELSE
350
351
360
361
364 END IF
365 ELSE
366
367
368
369
370
373 END IF
374 END DO
375
376 ENDIF
377
378 intbuf_tab%I_STOK(3) = i_stok_rtlm
379 intbuf_tab%I_STOK(2) = i_stok_rtlm
380
381
382 RETURN
type(real_pointer2), dimension(:), allocatable stif_oldfi
type(real_pointer2), dimension(:), allocatable secnd_frfi
type(real_pointer), dimension(:), allocatable time_sfi
type(int_pointer2), dimension(:), allocatable irtlm_fi
type(real_pointer), dimension(:), allocatable stifi
type(real_pointer2), dimension(:), allocatable pene_oldfi
type(int_pointer), dimension(:), allocatable if_adhfi