48
49
50
52 USE intbufdef_mod
53
54
55
56#include "implicit_f.inc"
57
58
59
60#include "tabsiz_c.inc"
61#include "param_c.inc"
62#include "com04_c.inc"
63#include "scr03_c.inc"
64#include "scr05_c.inc"
65
66
67
68 INTEGER NI, MULTIMP_PARAMETER
69
70 TYPE(INTBUF_STRUCT_) INTBUF_TAB
71
72
73
74 INTEGER ITY,IFQ,INACTI,MFROT,NCONT,ITIED,
75 . NCONTE,NSN,NRTM,IEDGE1,FLAGREMNODE
76 INTEGER I,OLD_SIZE,NEW_SIZE,MULTIMP,
77 . OLD_SIZE2,NEW_SIZE2,IERR,
78 . OLD_SIZE_OPT, NEW_SIZE_OPT
79
80 INTEGER, DIMENSION (:), ALLOCATABLE :: OLD_TAB_I
81DIMENSION (:), ALLOCATABLE :: old_tab_r, old_tab2_r
82
83 ierr=0
84
85 multimp =
ipari(npari*(ni-1)+23)
86 ncont =
ipari(npari*(ni-1)+18)
87 old_size = multimp * ncont
88 new_size = multimp_parameter * ncont
89
90
91 nconte = ncont
92 old_size2 = multimp * nconte
93 new_size2 = multimp_parameter * nconte
94
95
96 ipari(npari*(ni-1)+23) = multimp_parameter
97
98 ity =
ipari(npari*(ni-1)+7)
99 inacti = abs(
ipari(npari*(ni-1)+22))
100 mfrot =
ipari(npari*(ni-1)+30)
101 ifq =
ipari(npari*(ni-1)+31)
102 nsn =
ipari(npari*(ni-1)+5)
103 nrtm =
ipari(npari*(ni-1)+4)
104 iedge1 =
ipari(npari*(ni-1)+58)
105 flagremnode=
ipari(npari*(ni-1)+63)
106 itied =
ipari(npari*(ni-1)+85)
107
108
109 IF (ity == 7)THEN
110
111 ALLOCATE (old_tab_i(old_size),stat=ierr)
112 IF(ierr/=0)GOTO 999
113 ALLOCATE (old_tab_r(old_size),stat=ierr)
114 IF(ierr/=0)GOTO 999
115 IF(itied/=0)THEN
116 ALLOCATE (old_tab2_r(8*old_size),stat=ierr)
117 IF(ierr/=0)GOTO 999
118 ELSE
119 ALLOCATE (old_tab2_r(0),stat=ierr)
120 IF(ierr/=0)GOTO 999
121 END IF
122
123
124
125
126 DO i=1,old_size
127 old_tab_i(i)=intbuf_tab%CAND_E(i)
128 ENDDO
129 DEALLOCATE(intbuf_tab%CAND_E)
130 intbuf_tab%S_CAND_E = multimp_parameter * ncont
131 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
132 IF(ierr/=0)GOTO 999
133 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
134 DO i=1,old_size
135 intbuf_tab%CAND_E(i) = old_tab_i(i)
136 ENDDO
137
138
139
140
141 DO i=1,old_size
142 old_tab_i(i)=intbuf_tab%CAND_N(i)
143 ENDDO
144 DEALLOCATE(intbuf_tab%CAND_N)
145 intbuf_tab%S_CAND_N = multimp_parameter * ncont
146 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
147 IF(ierr/=0)GOTO 999
148 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
149 DO i=1,old_size
150 intbuf_tab%CAND_N(i) = old_tab_i(i)
151 ENDDO
152
153 IF (ifq /= 0)THEN
154
155
156
157 DO i=1,old_size
158 old_tab_i(i)=intbuf_tab%IFPEN(i)
159 ENDDO
160 DEALLOCATE(intbuf_tab%IFPEN)
161 intbuf_tab%S_IFPEN = multimp_parameter * ncont
162 ALLOCATE(intbuf_tab%IFPEN(intbuf_tab%S_IFPEN),stat=ierr)
163 IF(ierr/=0)GOTO 999
164 intbuf_tab%IFPEN(1:intbuf_tab%S_IFPEN)=0
165 DO i=1,old_size
166 intbuf_tab%IFPEN(i) = old_tab_i(i)
167 ENDDO
168
169
170
171
172 DO i=1,old_size
173 old_tab_r(i)=intbuf_tab%FTSAVX(i)
174 ENDDO
175 DEALLOCATE(intbuf_tab%FTSAVX)
176 intbuf_tab%S_FTSAVX = multimp_parameter * ncont
177 ALLOCATE(intbuf_tab%FTSAVX(intbuf_tab%S_FTSAVX),stat=ierr)
178 IF(ierr/=0)GOTO 999
179 intbuf_tab%FTSAVX(1:intbuf_tab%S_FTSAVX)=0
180 DO i=1,old_size
181 intbuf_tab%FTSAVX(i) = old_tab_r(i)
182 ENDDO
183
184
185
186
187 DO i=1,old_size
188 old_tab_r(i)=intbuf_tab%FTSAVY(i)
189 ENDDO
190 DEALLOCATE(intbuf_tab%FTSAVY)
191 intbuf_tab%S_FTSAVY = multimp_parameter * ncont
192 ALLOCATE(intbuf_tab%FTSAVY(intbuf_tab%S_FTSAVY),stat=ierr)
193 IF(ierr/=0)GOTO 999
194 intbuf_tab%FTSAVY(1:intbuf_tab%S_FTSAVY)=0
195 DO i=1,old_size
196 intbuf_tab%FTSAVY(i) = old_tab_r(i)
197 ENDDO
198
199
200
201
202 DO i=1,old_size
203 old_tab_r(i)=intbuf_tab%FTSAVZ(i)
204 ENDDO
205 DEALLOCATE(intbuf_tab%FTSAVZ)
206 intbuf_tab%S_FTSAVZ = multimp_parameter * ncont
207 ALLOCATE(intbuf_tab%FTSAVZ(intbuf_tab%S_FTSAVZ),stat=ierr)
208 IF(ierr/=0)GOTO 999
209 intbuf_tab%FTSAVZ(1:intbuf_tab%S_FTSAVZ)=0
210 DO i=1,old_size
211 intbuf_tab%FTSAVZ(i) = old_tab_r(i)
212 ENDDO
213 ENDIF
214
215 IF(itied/=0)THEN
216
217
218
219 DO i=1,8*old_size
220 old_tab2_r(i)=intbuf_tab%CAND_F(i)
221 ENDDO
222 DEALLOCATE(intbuf_tab%CAND_F)
223 intbuf_tab%S_CAND_F = 8 * multimp_parameter * ncont
224 ALLOCATE(intbuf_tab%CAND_F(intbuf_tab%S_CAND_F),stat=ierr)
225 IF(ierr/=0)GOTO 999
226 intbuf_tab%CAND_F(1:intbuf_tab%S_CAND_F)=0
227 DO i=1,8*old_size
228 intbuf_tab%CAND_F(i) = old_tab2_r(i)
229 ENDDO
230 END IF
231
232 IF(inacti == 5 .OR. inacti == 6 .OR. inacti == 7) THEN
233
234
235
236 DO i=1,old_size
237 old_tab_r(i)=intbuf_tab%CAND_P(i)
238 ENDDO
239 DEALLOCATE(intbuf_tab%CAND_P)
240 intbuf_tab%S_CAND_P = multimp_parameter * ncont
241 ALLOCATE(intbuf_tab%CAND_P(intbuf_tab%S_CAND_P),stat=ierr)
242 IF(ierr/=0)GOTO 999
243 intbuf_tab%CAND_P(1:intbuf_tab%S_CAND_P)=0
244 DO i=1,old_size
245 intbuf_tab%CAND_P(i) = old_tab_r(i)
246 ENDDO
247 ENDIF
248
249 DEALLOCATE (old_tab_i,old_tab_r,old_tab2_r)
250
251
252 ELSEIF(ity == 10)THEN
253
254 ALLOCATE (old_tab_i(old_size),stat=ierr)
255 IF(ierr/=0)GOTO 999
256 ALLOCATE (old_tab_r(old_size),stat=ierr)
257 IF(ierr/=0)GOTO 999
258 ALLOCATE (old_tab2_r(6*old_size),stat=ierr)
259 IF(ierr/=0)GOTO 999
260
261
262
263
264 DO i=1,old_size
265 old_tab_i(i)=intbuf_tab%CAND_E(i)
266 ENDDO
267 DEALLOCATE(intbuf_tab%CAND_E)
268 intbuf_tab%S_CAND_E = multimp_parameter * ncont
269 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
270 IF(ierr/=0)GOTO 999
271 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
272 DO i=1,old_size
273 intbuf_tab%CAND_E(i) = old_tab_i(i)
274 ENDDO
275
276
277
278
279 DO i=1,old_size
280 old_tab_i(i)=intbuf_tab%CAND_N(i)
281 ENDDO
282 DEALLOCATE(intbuf_tab%CAND_N)
283 intbuf_tab%S_CAND_N = multimp_parameter * ncont
284 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
285 IF(ierr/=0)GOTO 999
286 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
287 DO i=1,old_size
288 intbuf_tab%CAND_N(i) = old_tab_i(i)
289 ENDDO
290
291
292
293
294 DO i=1,6*old_size
295 old_tab2_r(i)=intbuf_tab%CAND_F(i)
296 ENDDO
297 DEALLOCATE(intbuf_tab%CAND_F)
298 intbuf_tab%S_CAND_F = 6*multimp_parameter * ncont
299 ALLOCATE(intbuf_tab%CAND_F(intbuf_tab%S_CAND_F),stat=ierr)
300 IF(ierr/=0)GOTO 999
301 intbuf_tab%CAND_F(1:intbuf_tab%S_CAND_F)=0
302 DO i=1,6*old_size
303 intbuf_tab%CAND_F(i) = old_tab2_r(i)
304 ENDDO
305
306 DEALLOCATE (old_tab_i,old_tab_r,old_tab2_r)
307
308
309 ELSEIF(ity == 11)THEN
310
311 ALLOCATE (old_tab_i(old_size),stat=ierr)
312 IF(ierr/=0)GOTO 999
313 ALLOCATE (old_tab2_i(2*old_size),stat=ierr)
314 IF(ierr/=0)GOTO 999
315 ALLOCATE (old_tab_r(old_size),stat=ierr)
316 IF(ierr/=0)GOTO 999
317
318
319
320
321 DO i=1,old_size
322 old_tab_i(i)=intbuf_tab%CAND_E(i)
323 ENDDO
324 DEALLOCATE(intbuf_tab%CAND_E)
325 intbuf_tab%S_CAND_E = multimp_parameter * ncont
326 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
327 IF(ierr/=0)GOTO 999
328 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
329 DO i=1,old_size
330 intbuf_tab%CAND_E(i) = old_tab_i(i)
331 ENDDO
332
333
334
335
336 DO i=1,old_size
337 old_tab_i(i)=intbuf_tab%CAND_N(i)
338 ENDDO
339 DEALLOCATE(intbuf_tab%CAND_N)
340 intbuf_tab%S_CAND_N = multimp_parameter * ncont
341 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
342 IF(ierr/=0)GOTO 999
343 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
344 DO i=1,old_size
345 intbuf_tab%CAND_N(i) = old_tab_i(i)
346 ENDDO
347
348
349
350
351 DO i=1,2*old_size
352 old_tab2_i(i)=intbuf_tab%CHAIN(i)
353 ENDDO
354 DEALLOCATE(intbuf_tab%CHAIN)
355 intbuf_tab%S_CHAIN = 2*multimp_parameter * ncont
356 ALLOCATE(intbuf_tab%CHAIN(intbuf_tab%S_CHAIN),stat=ierr)
357 IF(ierr/=0)GOTO 999
358 intbuf_tab%CHAIN(1:intbuf_tab%S_CHAIN)=0
359 DO i=1,2*old_size
360 intbuf_tab%CHAIN(i) = old_tab2_i(i)
361 ENDDO
362
363 IF (mfrot == 2) THEN
364
365
366
367 DO i=1,old_size
368 old_tab_i(i)=intbuf_tab%IFPEN(i)
369 ENDDO
370 DEALLOCATE(intbuf_tab%IFPEN)
371 intbuf_tab%S_IFPEN = multimp_parameter * ncont
372 ALLOCATE(intbuf_tab%IFPEN(intbuf_tab%S_IFPEN),stat=ierr)
373 IF(ierr/=0)GOTO 999
374 intbuf_tab%IFPEN(1:intbuf_tab%S_IFPEN)=0
375 DO i=1,old_size
376 intbuf_tab%IFPEN(i) = old_tab_i(i)
377 ENDDO
378
379
380
381
382 DO i=1,old_size
383 old_tab_r(i)=intbuf_tab%FTSAVX(i)
384 ENDDO
385 DEALLOCATE(intbuf_tab%FTSAVX)
386 intbuf_tab%S_FTSAVX = multimp_parameter * ncont
387 ALLOCATE(intbuf_tab%FTSAVX(intbuf_tab%S_FTSAVX),stat=ierr)
388 IF(ierr/=0)GOTO 999
389 intbuf_tab%FTSAVX(1:intbuf_tab%S_FTSAVX)=0
390 DO i=1,old_size
391 intbuf_tab%FTSAVX(i) = old_tab_r(i)
392 ENDDO
393
394
395
396
397 DO i=1,old_size
398 old_tab_r(i)=intbuf_tab%FTSAVY(i)
399 ENDDO
400 DEALLOCATE(intbuf_tab%FTSAVY)
401 intbuf_tab%S_FTSAVY = multimp_parameter * ncont
402 ALLOCATE(intbuf_tab%FTSAVY(intbuf_tab%S_FTSAVY),stat=ierr)
403 IF(ierr/=0)GOTO 999
404 intbuf_tab%FTSAVY(1:intbuf_tab%S_FTSAVY)=0
405 DO i=1,old_size
406 intbuf_tab%FTSAVY(i) = old_tab_r(i)
407 ENDDO
408
409
410
411
412 DO i=1,old_size
413 old_tab_r(i)=intbuf_tab%FTSAVZ(i)
414 ENDDO
415 DEALLOCATE(intbuf_tab%FTSAVZ)
416 intbuf_tab%S_FTSAVZ = multimp_parameter * ncont
417 ALLOCATE(intbuf_tab%FTSAVZ(intbuf_tab%S_FTSAVZ),stat=ierr)
418 IF(ierr/=0)GOTO 999
419 intbuf_tab%FTSAVZ(1:intbuf_tab%S_FTSAVZ)=0
420 DO i=1,old_size
421 intbuf_tab%FTSAVZ(i) = old_tab_r(i)
422 ENDDO
423 ENDIF
424
425 DEALLOCATE (old_tab_i,old_tab2_i,old_tab_r)
426
427
428 ELSEIF(ity == 16)THEN
429
430 ALLOCATE (old_tab_i(old_size))
431 ALLOCATE (old_tab_r(old_size))
432
433
434
435
436 DO i=1,old_size
437 old_tab_i(i)=intbuf_tab%CAND_E(i)
438 ENDDO
439 DEALLOCATE(intbuf_tab%CAND_E)
440 intbuf_tab%S_CAND_E = multimp_parameter * ncont
441 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
442 IF(ierr/=0)GOTO 999
443 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
444 DO i=1,old_size
445 intbuf_tab%CAND_E(i) = old_tab_i(i)
446 ENDDO
447
448
449
450
451 DO i=1,old_size
452 old_tab_i(i)=intbuf_tab%CAND_N(i)
453 ENDDO
454 DEALLOCATE(intbuf_tab%CAND_N)
455 intbuf_tab%S_CAND_N = multimp_parameter * ncont
456 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
457 IF(ierr/=0)GOTO 999
458 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
459 DO i=1,old_size
460 intbuf_tab%CAND_N(i) = old_tab_i(i)
461 ENDDO
462
463 DEALLOCATE (old_tab_i,old_tab_r)
464
465
466 ELSEIF(ity == 17)THEN
467
468 ALLOCATE (old_tab_i(old_size),stat=ierr)
469 IF(ierr/=0)GOTO 999
470 ALLOCATE (old_tab_r(old_size),stat=ierr)
471 IF(ierr/=0)GOTO 999
472
473
474
475
476 DO i=1,old_size
477 old_tab_i(i)=intbuf_tab%CAND_E(i)
478 ENDDO
479 DEALLOCATE(intbuf_tab%CAND_E)
480 intbuf_tab%S_CAND_E = multimp_parameter * ncont
481 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
482 IF(ierr/=0)GOTO 999
483 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
484 DO i=1,old_size
485 intbuf_tab%CAND_E(i) = old_tab_i(i)
486 ENDDO
487
488
489
490
491 DO i=1,old_size
492 old_tab_i(i)=intbuf_tab%CAND_N(i)
493 ENDDO
494 DEALLOCATE(intbuf_tab%CAND_N)
495 intbuf_tab%S_CAND_N = multimp_parameter * ncont
496 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
497 IF(ierr/=0)GOTO 999
498 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
499 DO i=1,old_size
500 intbuf_tab%CAND_N(i) = old_tab_i(i)
501 ENDDO
502
503 DEALLOCATE (old_tab_i,old_tab_r)
504
505
506 ELSEIF(ity == 20)THEN
507
508 ALLOCATE (old_tab_i(old_size),stat=ierr)
509 IF(ierr/=0)GOTO 999
510 ALLOCATE (old_tab2_i(old_size2),stat=ierr)
511 IF(ierr/=0)GOTO 999
512 ALLOCATE (old_tab3_i(2*old_size2),stat=ierr)
513 IF(ierr/=0)GOTO 999
514 ALLOCATE (old_tab_r(old_size),stat=ierr)
515 IF(ierr/=0)GOTO 999
516
517
518
519
520 DO i=1,old_size
521 old_tab_i(i)=intbuf_tab%CAND_E(i)
522 ENDDO
523 DEALLOCATE(intbuf_tab%CAND_E)
524 intbuf_tab%S_CAND_E = multimp_parameter * ncont
525 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
526 IF(ierr/=0)GOTO 999
527 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
528 DO i=1,old_size
529 intbuf_tab%CAND_E(i) = old_tab_i(i)
530 ENDDO
531
532
533
534
535 DO i=1,old_size
536 old_tab_i(i)=intbuf_tab%CAND_N(i)
537 ENDDO
538 DEALLOCATE(intbuf_tab%CAND_N)
539 intbuf_tab%S_CAND_N = multimp_parameter * ncont
540 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
541 IF(ierr/=0)GOTO 999
542 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
543 DO i=1,old_size
544 intbuf_tab%CAND_N(i) = old_tab_i(i)
545 ENDDO
546
547
548
549
550 DO i=1,old_size2
551 old_tab2_i(i)=intbuf_tab%LCAND_N(i)
552 ENDDO
553 DEALLOCATE(intbuf_tab%LCAND_N)
554 intbuf_tab%S_LCAND_N = multimp_parameter * nconte
555 ALLOCATE(intbuf_tab%LCAND_N(intbuf_tab%S_LCAND_N),stat=ierr)
556 IF(ierr/=0)GOTO 999
557 intbuf_tab%LCAND_N(1:intbuf_tab%S_LCAND_N)=0
558 DO i=1,old_size2
559 intbuf_tab%LCAND_N(i) = old_tab2_i(i)
560 ENDDO
561
562
563
564
565 DO i=1,old_size2
566 old_tab2_i(i)=intbuf_tab%LCAND_S(i)
567 ENDDO
568 DEALLOCATE(intbuf_tab%LCAND_S)
569 intbuf_tab%S_LCAND_S = multimp_parameter * nconte
570 ALLOCATE(intbuf_tab%LCAND_S(intbuf_tab%S_LCAND_S),stat=ierr)
571 IF(ierr/=0)GOTO 999
572 intbuf_tab%LCAND_S(1:intbuf_tab%S_LCAND_S)=0
573 DO i=1,old_size2
574 intbuf_tab%LCAND_S(i) = old_tab2_i(i)
575 ENDDO
576
577
578
579
580 DO i=1,2*old_size2
581 old_tab3_i(i)=intbuf_tab%CHAIN20(i)
582 ENDDO
583 DEALLOCATE(intbuf_tab%CHAIN20)
584 intbuf_tab%S_CHAIN20 = 2*multimp_parameter*nconte
585 ALLOCATE(intbuf_tab%CHAIN20(intbuf_tab%S_CHAIN20),stat=ierr)
586 IF(ierr/=0)GOTO 999
587 intbuf_tab%CHAIN20(1:intbuf_tab%S_CHAIN20)=0
588 DO i=1,2*old_size2
589 intbuf_tab%CHAIN20(i) = old_tab3_i(i)
590 ENDDO
591
592 IF(inacti == 5 .OR. inacti == 6 .OR. inacti == 7) THEN
593
594
595
596 DO i=1,old_size
597 old_tab_r(i)=intbuf_tab%CAND_P(i)
598 ENDDO
599 DEALLOCATE(intbuf_tab%CAND_P)
600 intbuf_tab%S_CAND_P = multimp_parameter * ncont
601 ALLOCATE(intbuf_tab%CAND_P(intbuf_tab%S_CAND_P),stat=ierr)
602 IF(ierr/=0)GOTO 999
603 intbuf_tab%CAND_P(1:intbuf_tab%S_CAND_P)=0
604 DO i=1,old_size
605 intbuf_tab%CAND_P(i) = old_tab_r(i)
606 ENDDO
607 ENDIF
608
609 IF (ifq/=0) THEN
610
611
612
613 DO i=1,old_size
614 old_tab_i(i)=intbuf_tab%IFPEN(i)
615 ENDDO
616 DEALLOCATE(intbuf_tab%IFPEN)
617 intbuf_tab%S_IFPEN = multimp_parameter * ncont
618 ALLOCATE(intbuf_tab%IFPEN(intbuf_tab%S_IFPEN),stat=ierr)
619 IF(ierr/=0)GOTO 999
620 intbuf_tab%IFPEN(1:intbuf_tab%S_IFPEN)=0
621 DO i=1,old_size
622 intbuf_tab%IFPEN(i) = old_tab_i(i)
623 ENDDO
624
625
626
627
628 DO i=1,old_size
629 old_tab_r(i)=intbuf_tab%CAND_FX(i)
630 ENDDO
631 DEALLOCATE(intbuf_tab%CAND_FX)
632 intbuf_tab%S_CAND_FX = multimp_parameter * ncont
633 ALLOCATE(intbuf_tab%CAND_FX(intbuf_tab%S_CAND_FX),stat=ierr)
634 IF(ierr/=0)GOTO 999
635 intbuf_tab%CAND_FX(1:intbuf_tab%S_CAND_FX)=0
636 DO i=1,old_size
637 intbuf_tab%CAND_FX(i) = old_tab_r(i)
638 ENDDO
639
640
641
642
643 DO i=1,old_size
644 old_tab_r(i)=intbuf_tab%CAND_FY(i)
645 ENDDO
646 DEALLOCATE(intbuf_tab%CAND_FY)
647 intbuf_tab%S_CAND_FY = multimp_parameter * ncont
648 ALLOCATE(intbuf_tab%CAND_FY(intbuf_tab%S_CAND_FY),stat=ierr)
649 IF(ierr/=0)GOTO 999
650 intbuf_tab%CAND_FY(1:intbuf_tab%S_CAND_FY)=0
651 DO i=1,old_size
652 intbuf_tab%CAND_FY(i) = old_tab_r(i)
653 ENDDO
654
655
656
657
658 DO i=1,old_size
659 old_tab_r(i)=intbuf_tab%CAND_FZ(i)
660 ENDDO
661 DEALLOCATE(intbuf_tab%CAND_FZ)
662 intbuf_tab%S_CAND_FZ = multimp_parameter * ncont
663 ALLOCATE(intbuf_tab%CAND_FZ(intbuf_tab%S_CAND_FZ),stat=ierr)
664 IF(ierr/=0)GOTO 999
665 intbuf_tab%CAND_FZ(1:intbuf_tab%S_CAND_FZ)=0
666 DO i=1,old_size
667 intbuf_tab%CAND_FZ(i) = old_tab_r(i)
668 ENDDO
669 ENDIF
670
671 DEALLOCATE (old_tab_i,old_tab2_i,old_tab3_i,old_tab_r)
672
673
674 ELSEIF(ity == 21)THEN
675
676 ALLOCATE (old_tab_i(old_size),stat=ierr)
677 IF(ierr/=0)GOTO 999
678 ALLOCATE (old_tab_r(old_size),stat=ierr)
679 IF(ierr/=0)GOTO 999
680
681
682
683
684 DO i=1,old_size
685 old_tab_i(i)=intbuf_tab%CAND_E(i)
686 ENDDO
687 DEALLOCATE(intbuf_tab%CAND_E)
688 intbuf_tab%S_CAND_E = multimp_parameter * ncont
689 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
690 IF(ierr/=0)GOTO 999
691 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
692 DO i=1,old_size
693 intbuf_tab%CAND_E(i) = old_tab_i(i)
694 ENDDO
695
696
697
698
699 DO i=1,old_size
700 old_tab_i(i)=intbuf_tab%CAND_N(i)
701 ENDDO
702 DEALLOCATE(intbuf_tab%CAND_N)
703 intbuf_tab%S_CAND_N = multimp_parameter * ncont
704 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
705 IF(ierr/=0)GOTO 999
706 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
707 DO i=1,old_size
708 intbuf_tab%CAND_N(i) = old_tab_i(i)
709 ENDDO
710
711 DEALLOCATE (old_tab_i,old_tab_r)
712
713
714 ELSEIF(ity == 22)THEN
715
716 ALLOCATE (old_tab_i(old_size),stat=ierr)
717 IF(ierr/=0)GOTO 999
718 ALLOCATE (old_tab_r(old_size),stat=ierr)
719 IF(ierr/=0)GOTO 999
720
721
722
723
724 DO i=1,old_size
725 old_tab_i(i)=intbuf_tab%CAND_E(i)
726 ENDDO
727 DEALLOCATE(intbuf_tab%CAND_E)
728 intbuf_tab%S_CAND_E = multimp_parameter * ncont
729 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
730 IF(ierr/=0)GOTO 999
731 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
732 DO i=1,old_size
733 intbuf_tab%CAND_E(i) = old_tab_i(i)
734 ENDDO
735
736
737
738
739 DO i=1,old_size
740 old_tab_i(i)=intbuf_tab%CAND_N(i)
741 ENDDO
742 DEALLOCATE(intbuf_tab%CAND_N)
743 intbuf_tab%S_CAND_N = multimp_parameter * ncont
744 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
745 IF(ierr/=0)GOTO 999
746 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
747 DO i=1,old_size
748 intbuf_tab%CAND_N(i) = old_tab_i(i)
749 ENDDO
750
751 IF (ifq /= 0)THEN
752
753
754
755 DO i=1,old_size
756 old_tab_i(i)=intbuf_tab%IFPEN(i)
757 ENDDO
758 DEALLOCATE(intbuf_tab%IFPEN)
759 intbuf_tab%S_IFPEN = multimp_parameter * ncont
760 ALLOCATE(intbuf_tab%IFPEN(intbuf_tab%S_IFPEN),stat=ierr)
761 IF(ierr/=0)GOTO 999
762 intbuf_tab%IFPEN(1:intbuf_tab%S_IFPEN)=0
763 DO i=1,old_size
764 intbuf_tab%IFPEN(i) = old_tab_i(i)
765 ENDDO
766 ENDIF
767
768 DEALLOCATE (old_tab_i,old_tab_r)
769
770
771 ELSEIF(ity == 23)THEN
772
773 ALLOCATE (old_tab_i(old_size),stat=ierr)
774 IF(ierr/=0)GOTO 999
775 ALLOCATE (old_tab_r(old_size),stat=ierr)
776 IF(ierr/=0)GOTO 999
777
778
779
780
781 DO i=1,old_size
782 old_tab_i(i)=intbuf_tab%CAND_E(i)
783 ENDDO
784 DEALLOCATE(intbuf_tab%CAND_E)
785 intbuf_tab%S_CAND_E = multimp_parameter * ncont
786 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
787 IF(ierr/=0)GOTO 999
788 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
789 DO i=1,old_size
790 intbuf_tab%CAND_E(i) = old_tab_i(i)
791 ENDDO
792
793
794
795
796 DO i=1,old_size
797 old_tab_i(i)=intbuf_tab%CAND_N(i)
798 ENDDO
799 DEALLOCATE(intbuf_tab%CAND_N)
800 intbuf_tab%S_CAND_N = multimp_parameter * ncont
801 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
802 IF(ierr/=0)GOTO 999
803 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
804 DO i=1,old_size
805 intbuf_tab%CAND_N(i) = old_tab_i(i)
806 ENDDO
807
808
809
810
811 DO i=1,old_size
812 old_tab_i(i)=intbuf_tab%IFPEN(i)
813 ENDDO
814 DEALLOCATE(intbuf_tab%IFPEN)
815 intbuf_tab%S_IFPEN = multimp_parameter * ncont
816 ALLOCATE(intbuf_tab%IFPEN(intbuf_tab%S_IFPEN),stat=ierr)
817 IF(ierr/=0)GOTO 999
818 intbuf_tab%IFPEN(1:intbuf_tab%S_IFPEN)=0
819 DO i=1,old_size
820 intbuf_tab%IFPEN(i) = old_tab_i(i)
821 ENDDO
822
823
824
825
826 DO i=1,old_size
827 old_tab_r(i)=intbuf_tab%CAND_P(i)
828 ENDDO
829 DEALLOCATE(intbuf_tab%CAND_P)
830 intbuf_tab%S_CAND_P = multimp_parameter * ncont
831 ALLOCATE(intbuf_tab%CAND_P(intbuf_tab%S_CAND_P),stat=ierr)
832 IF(ierr/=0)GOTO 999
833 intbuf_tab%CAND_P(1:intbuf_tab%S_CAND_P)=0
834 DO i=1,old_size
835 intbuf_tab%CAND_P(i) = old_tab_r(i)
836 ENDDO
837
838
839
840
841 DO i=1,old_size
842 old_tab_r(i)=intbuf_tab%FTSAVX(i)
843 ENDDO
844 DEALLOCATE(intbuf_tab%FTSAVX)
845 intbuf_tab%S_FTSAVX = multimp_parameter * ncont
846 ALLOCATE(intbuf_tab%FTSAVX(intbuf_tab%S_FTSAVX),stat=ierr)
847 IF(ierr/=0)GOTO 999
848 intbuf_tab%FTSAVX(1:intbuf_tab%S_FTSAVX)=0
849 DO i=1,old_size
850 intbuf_tab%FTSAVX(i) = old_tab_r(i)
851 ENDDO
852
853
854
855
856 DO i=1,old_size
857 old_tab_r(i)=intbuf_tab%FTSAVY(i)
858 ENDDO
859 DEALLOCATE(intbuf_tab%FTSAVY)
860 intbuf_tab%S_FTSAVY = multimp_parameter * ncont
861 ALLOCATE(intbuf_tab%FTSAVY(intbuf_tab%S_FTSAVY),stat=ierr)
862 IF(ierr/=0)GOTO 999
863 intbuf_tab%FTSAVY(1:intbuf_tab%S_FTSAVY)=0
864 DO i=1,old_size
865 intbuf_tab%FTSAVY(i) = old_tab_r(i)
866 ENDDO
867
868
869
870
871 DO i=1,old_size
872 old_tab_r(i)=intbuf_tab%FTSAVZ(i)
873 ENDDO
874 DEALLOCATE(intbuf_tab%FTSAVZ)
875 intbuf_tab%S_FTSAVZ = multimp_parameter * ncont
876 ALLOCATE(intbuf_tab%FTSAVZ(intbuf_tab%S_FTSAVZ),stat=ierr)
877 IF(ierr/=0)GOTO 999
878 intbuf_tab%FTSAVZ(1:intbuf_tab%S_FTSAVZ)=0
879 DO i=1,old_size
880 intbuf_tab%FTSAVZ(i) = old_tab_r(i)
881 ENDDO
882
883
884 DEALLOCATE (old_tab_i,old_tab_r)
885
886
887 ELSEIF(ity == 24)THEN
888
889 ALLOCATE (old_tab_i(old_size),stat=ierr)
890 IF(ierr/=0)GOTO 999
891 ALLOCATE (old_tab_r(old_size),stat=ierr)
892 IF(ierr/=0)GOTO 999
893
894
895
896
897 DO i=1,old_size
898 old_tab_i(i)=intbuf_tab%CAND_E(i)
899 ENDDO
900 DEALLOCATE(intbuf_tab%CAND_E)
901 intbuf_tab%S_CAND_E = multimp_parameter * ncont
902 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
903 IF(ierr/=0)GOTO 999
904 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
905 DO i=1,old_size
906 intbuf_tab%CAND_E(i) = old_tab_i(i)
907 ENDDO
908
909
910
911
912 DO i=1,old_size
913 old_tab_i(i)=intbuf_tab%CAND_N(i)
914 ENDDO
915 DEALLOCATE(intbuf_tab%CAND_N)
916 intbuf_tab%S_CAND_N = multimp_parameter * ncont
917 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
918 IF(ierr/=0)GOTO 999
919 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
920 DO i=1,old_size
921 intbuf_tab%CAND_N(i) = old_tab_i(i)
922 ENDDO
923
924 IF (iedge1 > 0) THEN
925
926
927
928 DO i=1,old_size
929 old_tab_i(i)=intbuf_tab%CAND_T(i)
930 ENDDO
931 DEALLOCATE(intbuf_tab%CAND_T)
932 intbuf_tab%S_CAND_T = multimp_parameter * ncont
933 ALLOCATE(intbuf_tab%CAND_T(intbuf_tab%S_CAND_T),stat=ierr)
934 IF(ierr/=0)GOTO 999
935 intbuf_tab%CAND_T(1:intbuf_tab%S_CAND_T)=0
936 DO i=1,old_size
937 intbuf_tab%CAND_T(i) = old_tab_i(i)
938 ENDDO
939 ENDIF
940
941
942 ELSEIF(ity == 25)THEN
943
944
945 old_size_opt=intbuf_tab%S_CAND_OPT_N
946 new_size_opt=
max(multimp_parameter * ncont,old_size_opt)
947
948 ALLOCATE (old_tab_i(
max(old_size,4*old_size_opt)),stat=ierr)
949 IF(ierr/=0)GOTO 999
950 ALLOCATE (old_tab_r(
max(old_size,4*old_size_opt)),stat=ierr)
951 IF(ierr/=0)GOTO 999
952
953
954
955
956 DO i=1,old_size
957 old_tab_i(i)=intbuf_tab%CAND_E(i)
958 ENDDO
959 DEALLOCATE(intbuf_tab%CAND_E)
960 intbuf_tab%S_CAND_E = multimp_parameter * ncont
961 ALLOCATE(intbuf_tab%CAND_E(intbuf_tab%S_CAND_E),stat=ierr)
962 IF(ierr/=0)GOTO 999
963 intbuf_tab%CAND_E(1:intbuf_tab%S_CAND_E)=0
964 DO i=1,old_size
965 intbuf_tab%CAND_E(i) = old_tab_i(i)
966 ENDDO
967
968
969
970
971 DO i=1,old_size
972 old_tab_i(i)=intbuf_tab%CAND_N(i)
973 ENDDO
974 DEALLOCATE(intbuf_tab%CAND_N)
975 intbuf_tab%S_CAND_N = multimp_parameter * ncont
976 ALLOCATE(intbuf_tab%CAND_N(intbuf_tab%S_CAND_N),stat=ierr)
977 IF(ierr/=0)GOTO 999
978 intbuf_tab%CAND_N(1:intbuf_tab%S_CAND_N)=0
979 DO i=1,old_size
980 intbuf_tab%CAND_N(i) = old_tab_i(i)
981 ENDDO
982
983
984
985
986
987 DO i=1,4*old_size_opt
988 old_tab_i(i)=intbuf_tab%FARM(i)
989 ENDDO
990 DEALLOCATE(intbuf_tab%FARM)
991 intbuf_tab%S_FARM = 4 * new_size_opt
992 ALLOCATE(intbuf_tab%FARM(intbuf_tab%S_FARM),stat=ierr)
993 IF(ierr/=0)GOTO 999
994 DO i=1,4*old_size_opt
995 intbuf_tab%FARM(i) = old_tab_i(i)
996 ENDDO
997
998
999
1000
1001 DO i=1,old_size_opt
1002 old_tab_i(i)=intbuf_tab%CAND_OPT_N(i)
1003 ENDDO
1004 DEALLOCATE(intbuf_tab%CAND_OPT_N)
1005 intbuf_tab%S_CAND_OPT_N = new_size_opt
1006 ALLOCATE(intbuf_tab%CAND_OPT_N(intbuf_tab%S_CAND_OPT_N),stat=ierr)
1007 IF(ierr/=0)GOTO 999
1008 intbuf_tab%CAND_OPT_N(1:intbuf_tab%S_CAND_OPT_N)=0
1009 DO i=1,old_size_opt
1010 intbuf_tab%CAND_OPT_N(i) = old_tab_i(i)
1011 ENDDO
1012
1013
1014
1015
1016 DO i=1,old_size_opt
1017 old_tab_i(i)=intbuf_tab%CAND_OPT_E(i)
1018 ENDDO
1019 DEALLOCATE(intbuf_tab%CAND_OPT_E)
1020 intbuf_tab%S_CAND_OPT_E = new_size_opt
1021 ALLOCATE(intbuf_tab%CAND_OPT_E(intbuf_tab%S_CAND_OPT_E),stat=ierr)
1022 intbuf_tab%CAND_OPT_E(1:intbuf_tab%S_CAND_OPT_E)=0
1023 IF(ierr/=0)GOTO 999
1024 DO i=1,old_size_opt
1025 intbuf_tab%CAND_OPT_E(i) = old_tab_i(i)
1026 ENDDO
1027
1028
1029
1030
1031 DO i=1,4*old_size_opt
1032 old_tab_r(i)=intbuf_tab%PENM(i)
1033 ENDDO
1034 DEALLOCATE(intbuf_tab%PENM)
1035 intbuf_tab%S_PENM = 4 * new_size_opt
1036 ALLOCATE(intbuf_tab%PENM(intbuf_tab%S_PENM),stat=ierr)
1037 intbuf_tab%PENM(1:intbuf_tab%S_PENM)=zero
1038 IF(ierr/=0)GOTO 999
1039 DO i=1,4*old_size_opt
1040 intbuf_tab%PENM(i) = old_tab_r(i)
1041 ENDDO
1042
1043
1044
1045
1046 DO i=1,old_size_opt
1047 old_tab_r(i)=intbuf_tab%DISTM(i)
1048 ENDDO
1049 DEALLOCATE(intbuf_tab%DISTM)
1050 intbuf_tab%S_DISTM = new_size_opt
1051 ALLOCATE(intbuf_tab%DISTM(intbuf_tab%S_DISTM),stat=ierr)
1052 IF(ierr/=0)GOTO 999
1053 DO i=1,old_size_opt
1054 intbuf_tab%DISTM(i) = old_tab_r(i)
1055 ENDDO
1056
1057
1058
1059
1060 DO i=1,4*old_size_opt
1061 old_tab_r(i)=intbuf_tab%LBM(i)
1062 ENDDO
1063 DEALLOCATE(intbuf_tab%LBM)
1064 intbuf_tab%S_LBM= 4 * new_size_opt
1065 ALLOCATE(intbuf_tab%LBM(intbuf_tab%S_LBM),stat=ierr)
1066 IF(ierr/=0)GOTO 999
1067 DO i=1,4*old_size_opt
1068 intbuf_tab%LBM(i) = old_tab_r(i)
1069 ENDDO
1070
1071
1072
1073
1074 DO i=1,4*old_size_opt
1075 old_tab_r(i)=intbuf_tab%LCM(i)
1076 ENDDO
1077 DEALLOCATE(intbuf_tab%LCM)
1078 intbuf_tab%S_LCM = 4 * new_size_opt
1079 ALLOCATE(intbuf_tab%LCM(intbuf_tab%S_LCM),stat=ierr)
1080 IF(ierr/=0)GOTO 999
1081 DO i=1,4*old_size_opt
1082 intbuf_tab%LCM(i) = old_tab_r(i)
1083 ENDDO
1084
1085 DEALLOCATE (old_tab_i,old_tab_r)
1086
1087 ENDIF
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105 RETURN
1106 999 CONTINUE
1108