28 MODULE PROCEDURE reallocate_c1, reallocate_c2, reallocate_c3, reallocate_c4, &
29 reallocate_i1, reallocate_i2, reallocate_i3, reallocate_i4, &
30 reallocate_r1, reallocate_r2, reallocate_r3, reallocate_r4, &
31 reallocate_r5, reallocate_s1, reallocate_l1, reallocate_8i1, &
44 SUBROUTINE reallocate_c1 (p, lb1_new,ub1_new)
47 POINTER,
INTENT(INOUT) :: p
49 INTEGER,
INTENT(IN) :: &
52 INTEGER :: lb1, lb1_old, ub1, ub1_old
60 IF (
ASSOCIATED(p))
THEN
61 lb1_old = lbound(p, 1)
62 ub1_old = ubound(p, 1)
63 lb1 = max(lb1_new, lb1_old)
64 ub1 = min(ub1_new, ub1_old)
68 ALLOCATE (p(lb1_new:ub1_new))
71 IF (
ASSOCIATED(work))
THEN
72 p(lb1:ub1) = work(lb1:ub1)
85 SUBROUTINE reallocate_c2 (p, lb1_new,ub1_new,lb2_new,ub2_new)
88 POINTER,
INTENT(INOUT) :: p
90 INTEGER,
INTENT(IN) :: &
91 lb1_new,ub1_new,lb2_new,ub2_new
93 INTEGER :: lb1, lb1_old, ub1, ub1_old
94 INTEGER :: lb2, lb2_old, ub2, ub2_old
102 IF (
ASSOCIATED(p))
THEN
103 lb1_old = lbound(p, 1)
104 ub1_old = ubound(p, 1)
105 lb1 = max(lb1_new, lb1_old)
106 ub1 = min(ub1_new, ub1_old)
107 lb2_old = lbound(p, 2)
108 ub2_old = ubound(p, 2)
109 lb2 = max(lb2_new, lb2_old)
110 ub2 = min(ub2_new, ub2_old)
114 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new))
117 IF (
ASSOCIATED(work))
THEN
118 p(lb1:ub1,lb2:ub2) = work(lb1:ub1,lb2:ub2)
133 SUBROUTINE reallocate_c3 (p, lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new)
136 POINTER,
INTENT(INOUT) :: p
138 INTEGER,
INTENT(IN) :: &
139 lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new
141 INTEGER :: lb1, lb1_old, ub1, ub1_old
142 INTEGER :: lb2, lb2_old, ub2, ub2_old
143 INTEGER :: lb3, lb3_old, ub3, ub3_old
151 IF (
ASSOCIATED(p))
THEN
152 lb1_old = lbound(p, 1)
153 ub1_old = ubound(p, 1)
154 lb1 = max(lb1_new, lb1_old)
155 ub1 = min(ub1_new, ub1_old)
156 lb2_old = lbound(p, 2)
157 ub2_old = ubound(p, 2)
158 lb2 = max(lb2_new, lb2_old)
159 ub2 = min(ub2_new, ub2_old)
160 lb3_old = lbound(p, 3)
161 ub3_old = ubound(p, 3)
162 lb3 = max(lb3_new, lb3_old)
163 ub3 = min(ub3_new, ub3_old)
167 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new,lb3_new:ub3_new))
170 IF (
ASSOCIATED(work))
THEN
171 p(lb1:ub1,lb2:ub2,lb3:ub3) = work(lb1:ub1,lb2:ub2,lb3:ub3)
188 SUBROUTINE reallocate_c4 (p, lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new,lb4_new,ub4_new)
190 DIMENSION(:,:,:,:), &
191 POINTER,
INTENT(INOUT) :: p
193 INTEGER,
INTENT(IN) :: &
194 lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new,lb4_new,ub4_new
196 INTEGER :: lb1, lb1_old, ub1, ub1_old
197 INTEGER :: lb2, lb2_old, ub2, ub2_old
198 INTEGER :: lb3, lb3_old, ub3, ub3_old
199 INTEGER :: lb4, lb4_old, ub4, ub4_old
202 DIMENSION(:,:,:,:), &
207 IF (
ASSOCIATED(p))
THEN
208 lb1_old = lbound(p, 1)
209 ub1_old = ubound(p, 1)
210 lb1 = max(lb1_new, lb1_old)
211 ub1 = min(ub1_new, ub1_old)
212 lb2_old = lbound(p, 2)
213 ub2_old = ubound(p, 2)
214 lb2 = max(lb2_new, lb2_old)
215 ub2 = min(ub2_new, ub2_old)
216 lb3_old = lbound(p, 3)
217 ub3_old = ubound(p, 3)
218 lb3 = max(lb3_new, lb3_old)
219 ub3 = min(ub3_new, ub3_old)
220 lb4_old = lbound(p, 4)
221 ub4_old = ubound(p, 4)
222 lb4 = max(lb4_new, lb4_old)
223 ub4 = min(ub4_new, ub4_old)
227 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new,lb3_new:ub3_new,lb4_new:ub4_new))
230 IF (
ASSOCIATED(work))
THEN
231 p(lb1:ub1,lb2:ub2,lb3:ub3,lb4:ub4) = work(lb1:ub1,lb2:ub2,lb3:ub3,lb4:ub4)
242 SUBROUTINE reallocate_i1 (p, lb1_new,ub1_new)
245 POINTER,
INTENT(INOUT) :: p
247 INTEGER,
INTENT(IN) :: &
250 INTEGER :: lb1, lb1_old, ub1, ub1_old
258 IF (
ASSOCIATED(p))
THEN
259 lb1_old = lbound(p, 1)
260 ub1_old = ubound(p, 1)
261 lb1 = max(lb1_new, lb1_old)
262 ub1 = min(ub1_new, ub1_old)
266 ALLOCATE (p(lb1_new:ub1_new))
269 IF (
ASSOCIATED(work))
THEN
270 p(lb1:ub1) = work(lb1:ub1)
283 SUBROUTINE reallocate_i2 (p, lb1_new,ub1_new,lb2_new,ub2_new)
286 POINTER,
INTENT(INOUT) :: p
288 INTEGER,
INTENT(IN) :: &
289 lb1_new,ub1_new,lb2_new,ub2_new
291 INTEGER :: lb1, lb1_old, ub1, ub1_old
292 INTEGER :: lb2, lb2_old, ub2, ub2_old
300 IF (
ASSOCIATED(p))
THEN
301 lb1_old = lbound(p, 1)
302 ub1_old = ubound(p, 1)
303 lb1 = max(lb1_new, lb1_old)
304 ub1 = min(ub1_new, ub1_old)
305 lb2_old = lbound(p, 2)
306 ub2_old = ubound(p, 2)
307 lb2 = max(lb2_new, lb2_old)
308 ub2 = min(ub2_new, ub2_old)
312 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new))
315 IF (
ASSOCIATED(work))
THEN
316 p(lb1:ub1,lb2:ub2) = work(lb1:ub1,lb2:ub2)
331 SUBROUTINE reallocate_i3 (p, lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new)
334 POINTER,
INTENT(INOUT) :: p
336 INTEGER,
INTENT(IN) :: &
337 lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new
339 INTEGER :: lb1, lb1_old, ub1, ub1_old
340 INTEGER :: lb2, lb2_old, ub2, ub2_old
341 INTEGER :: lb3, lb3_old, ub3, ub3_old
349 IF (
ASSOCIATED(p))
THEN
350 lb1_old = lbound(p, 1)
351 ub1_old = ubound(p, 1)
352 lb1 = max(lb1_new, lb1_old)
353 ub1 = min(ub1_new, ub1_old)
354 lb2_old = lbound(p, 2)
355 ub2_old = ubound(p, 2)
356 lb2 = max(lb2_new, lb2_old)
357 ub2 = min(ub2_new, ub2_old)
358 lb3_old = lbound(p, 3)
359 ub3_old = ubound(p, 3)
360 lb3 = max(lb3_new, lb3_old)
361 ub3 = min(ub3_new, ub3_old)
365 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new,lb3_new:ub3_new))
368 IF (
ASSOCIATED(work))
THEN
369 p(lb1:ub1,lb2:ub2,lb3:ub3) = work(lb1:ub1,lb2:ub2,lb3:ub3)
386 SUBROUTINE reallocate_i4 (p, lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new,lb4_new,ub4_new)
388 DIMENSION(:,:,:,:), &
389 POINTER,
INTENT(INOUT) :: p
391 INTEGER,
INTENT(IN) :: &
392 lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new,lb4_new,ub4_new
394 INTEGER :: lb1, lb1_old, ub1, ub1_old
395 INTEGER :: lb2, lb2_old, ub2, ub2_old
396 INTEGER :: lb3, lb3_old, ub3, ub3_old
397 INTEGER :: lb4, lb4_old, ub4, ub4_old
400 DIMENSION(:,:,:,:), &
405 IF (
ASSOCIATED(p))
THEN
406 lb1_old = lbound(p, 1)
407 ub1_old = ubound(p, 1)
408 lb1 = max(lb1_new, lb1_old)
409 ub1 = min(ub1_new, ub1_old)
410 lb2_old = lbound(p, 2)
411 ub2_old = ubound(p, 2)
412 lb2 = max(lb2_new, lb2_old)
413 ub2 = min(ub2_new, ub2_old)
414 lb3_old = lbound(p, 3)
415 ub3_old = ubound(p, 3)
416 lb3 = max(lb3_new, lb3_old)
417 ub3 = min(ub3_new, ub3_old)
418 lb4_old = lbound(p, 4)
419 ub4_old = ubound(p, 4)
420 lb4 = max(lb4_new, lb4_old)
421 ub4 = min(ub4_new, ub4_old)
425 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new,lb3_new:ub3_new,lb4_new:ub4_new))
428 IF (
ASSOCIATED(work))
THEN
429 p(lb1:ub1,lb2:ub2,lb3:ub3,lb4:ub4) = work(lb1:ub1,lb2:ub2,lb3:ub3,lb4:ub4)
440 SUBROUTINE reallocate_8i1 (p, lb1_new,ub1_new)
441 INTEGER(KIND=int_8), &
443 POINTER,
INTENT(INOUT) :: p
445 INTEGER,
INTENT(IN) :: &
448 INTEGER :: lb1, lb1_old, ub1, ub1_old
450 INTEGER(KIND=int_8), &
456 IF (
ASSOCIATED(p))
THEN
457 lb1_old = lbound(p, 1)
458 ub1_old = ubound(p, 1)
459 lb1 = max(lb1_new, lb1_old)
460 ub1 = min(ub1_new, ub1_old)
464 ALLOCATE (p(lb1_new:ub1_new))
467 IF (
ASSOCIATED(work))
THEN
468 p(lb1:ub1) = work(lb1:ub1)
481 SUBROUTINE reallocate_8i2 (p, lb1_new,ub1_new,lb2_new,ub2_new)
482 INTEGER(KIND=int_8), &
484 POINTER,
INTENT(INOUT) :: p
486 INTEGER,
INTENT(IN) :: &
487 lb1_new,ub1_new,lb2_new,ub2_new
489 INTEGER :: lb1, lb1_old, ub1, ub1_old
490 INTEGER :: lb2, lb2_old, ub2, ub2_old
492 INTEGER(KIND=int_8), &
498 IF (
ASSOCIATED(p))
THEN
499 lb1_old = lbound(p, 1)
500 ub1_old = ubound(p, 1)
501 lb1 = max(lb1_new, lb1_old)
502 ub1 = min(ub1_new, ub1_old)
503 lb2_old = lbound(p, 2)
504 ub2_old = ubound(p, 2)
505 lb2 = max(lb2_new, lb2_old)
506 ub2 = min(ub2_new, ub2_old)
510 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new))
513 IF (
ASSOCIATED(work))
THEN
514 p(lb1:ub1,lb2:ub2) = work(lb1:ub1,lb2:ub2)
525 SUBROUTINE reallocate_r1 (p, lb1_new,ub1_new)
528 POINTER,
INTENT(INOUT) :: p
530 INTEGER,
INTENT(IN) :: &
533 INTEGER :: lb1, lb1_old, ub1, ub1_old
541 IF (
ASSOCIATED(p))
THEN
542 lb1_old = lbound(p, 1)
543 ub1_old = ubound(p, 1)
544 lb1 = max(lb1_new, lb1_old)
545 ub1 = min(ub1_new, ub1_old)
549 ALLOCATE (p(lb1_new:ub1_new))
552 IF (
ASSOCIATED(work))
THEN
553 p(lb1:ub1) = work(lb1:ub1)
566 SUBROUTINE reallocate_r2 (p, lb1_new,ub1_new,lb2_new,ub2_new)
569 POINTER,
INTENT(INOUT) :: p
571 INTEGER,
INTENT(IN) :: &
572 lb1_new,ub1_new,lb2_new,ub2_new
574 INTEGER :: lb1, lb1_old, ub1, ub1_old
575 INTEGER :: lb2, lb2_old, ub2, ub2_old
583 IF (
ASSOCIATED(p))
THEN
584 lb1_old = lbound(p, 1)
585 ub1_old = ubound(p, 1)
586 lb1 = max(lb1_new, lb1_old)
587 ub1 = min(ub1_new, ub1_old)
588 lb2_old = lbound(p, 2)
589 ub2_old = ubound(p, 2)
590 lb2 = max(lb2_new, lb2_old)
591 ub2 = min(ub2_new, ub2_old)
595 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new))
598 IF (
ASSOCIATED(work))
THEN
599 p(lb1:ub1,lb2:ub2) = work(lb1:ub1,lb2:ub2)
614 SUBROUTINE reallocate_r3 (p, lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new)
617 POINTER,
INTENT(INOUT) :: p
619 INTEGER,
INTENT(IN) :: &
620 lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new
622 INTEGER :: lb1, lb1_old, ub1, ub1_old
623 INTEGER :: lb2, lb2_old, ub2, ub2_old
624 INTEGER :: lb3, lb3_old, ub3, ub3_old
632 IF (
ASSOCIATED(p))
THEN
633 lb1_old = lbound(p, 1)
634 ub1_old = ubound(p, 1)
635 lb1 = max(lb1_new, lb1_old)
636 ub1 = min(ub1_new, ub1_old)
637 lb2_old = lbound(p, 2)
638 ub2_old = ubound(p, 2)
639 lb2 = max(lb2_new, lb2_old)
640 ub2 = min(ub2_new, ub2_old)
641 lb3_old = lbound(p, 3)
642 ub3_old = ubound(p, 3)
643 lb3 = max(lb3_new, lb3_old)
644 ub3 = min(ub3_new, ub3_old)
648 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new,lb3_new:ub3_new))
651 IF (
ASSOCIATED(work))
THEN
652 p(lb1:ub1,lb2:ub2,lb3:ub3) = work(lb1:ub1,lb2:ub2,lb3:ub3)
669 SUBROUTINE reallocate_r4 (p, lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new,lb4_new,ub4_new)
671 DIMENSION(:,:,:,:), &
672 POINTER,
INTENT(INOUT) :: p
674 INTEGER,
INTENT(IN) :: &
675 lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new,lb4_new,ub4_new
677 INTEGER :: lb1, lb1_old, ub1, ub1_old
678 INTEGER :: lb2, lb2_old, ub2, ub2_old
679 INTEGER :: lb3, lb3_old, ub3, ub3_old
680 INTEGER :: lb4, lb4_old, ub4, ub4_old
683 DIMENSION(:,:,:,:), &
688 IF (
ASSOCIATED(p))
THEN
689 lb1_old = lbound(p, 1)
690 ub1_old = ubound(p, 1)
691 lb1 = max(lb1_new, lb1_old)
692 ub1 = min(ub1_new, ub1_old)
693 lb2_old = lbound(p, 2)
694 ub2_old = ubound(p, 2)
695 lb2 = max(lb2_new, lb2_old)
696 ub2 = min(ub2_new, ub2_old)
697 lb3_old = lbound(p, 3)
698 ub3_old = ubound(p, 3)
699 lb3 = max(lb3_new, lb3_old)
700 ub3 = min(ub3_new, ub3_old)
701 lb4_old = lbound(p, 4)
702 ub4_old = ubound(p, 4)
703 lb4 = max(lb4_new, lb4_old)
704 ub4 = min(ub4_new, ub4_old)
708 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new,lb3_new:ub3_new,lb4_new:ub4_new))
711 IF (
ASSOCIATED(work))
THEN
712 p(lb1:ub1,lb2:ub2,lb3:ub3,lb4:ub4) = work(lb1:ub1,lb2:ub2,lb3:ub3,lb4:ub4)
731 SUBROUTINE reallocate_r5 (p, lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new,lb4_new,ub4_new,lb5_new,ub5_new)
733 DIMENSION(:,:,:,:,:), &
734 POINTER,
INTENT(INOUT) :: p
736 INTEGER,
INTENT(IN) :: &
737 lb1_new,ub1_new,lb2_new,ub2_new,lb3_new,ub3_new,lb4_new,ub4_new,lb5_new,ub5_new
739 INTEGER :: lb1, lb1_old, ub1, ub1_old
740 INTEGER :: lb2, lb2_old, ub2, ub2_old
741 INTEGER :: lb3, lb3_old, ub3, ub3_old
742 INTEGER :: lb4, lb4_old, ub4, ub4_old
743 INTEGER :: lb5, lb5_old, ub5, ub5_old
746 DIMENSION(:,:,:,:,:), &
751 IF (
ASSOCIATED(p))
THEN
752 lb1_old = lbound(p, 1)
753 ub1_old = ubound(p, 1)
754 lb1 = max(lb1_new, lb1_old)
755 ub1 = min(ub1_new, ub1_old)
756 lb2_old = lbound(p, 2)
757 ub2_old = ubound(p, 2)
758 lb2 = max(lb2_new, lb2_old)
759 ub2 = min(ub2_new, ub2_old)
760 lb3_old = lbound(p, 3)
761 ub3_old = ubound(p, 3)
762 lb3 = max(lb3_new, lb3_old)
763 ub3 = min(ub3_new, ub3_old)
764 lb4_old = lbound(p, 4)
765 ub4_old = ubound(p, 4)
766 lb4 = max(lb4_new, lb4_old)
767 ub4 = min(ub4_new, ub4_old)
768 lb5_old = lbound(p, 5)
769 ub5_old = ubound(p, 5)
770 lb5 = max(lb5_new, lb5_old)
771 ub5 = min(ub5_new, ub5_old)
775 ALLOCATE (p(lb1_new:ub1_new,lb2_new:ub2_new,lb3_new:ub3_new,lb4_new:ub4_new,lb5_new:ub5_new))
778 IF (
ASSOCIATED(work))
THEN
779 p(lb1:ub1,lb2:ub2,lb3:ub3,lb4:ub4,lb5:ub5) = work(lb1:ub1,lb2:ub2,lb3:ub3,lb4:ub4,lb5:ub5)
790 SUBROUTINE reallocate_l1 (p, lb1_new,ub1_new)
793 POINTER,
INTENT(INOUT) :: p
795 INTEGER,
INTENT(IN) :: &
798 INTEGER :: lb1, lb1_old, ub1, ub1_old
806 IF (
ASSOCIATED(p))
THEN
807 lb1_old = lbound(p, 1)
808 ub1_old = ubound(p, 1)
809 lb1 = max(lb1_new, lb1_old)
810 ub1 = min(ub1_new, ub1_old)
814 ALLOCATE (p(lb1_new:ub1_new))
817 IF (
ASSOCIATED(work))
THEN
818 p(lb1:ub1) = work(lb1:ub1)
829 SUBROUTINE reallocate_s1 (p, lb1_new,ub1_new)
832 POINTER,
INTENT(INOUT) :: p
834 INTEGER,
INTENT(IN) :: &
837 INTEGER :: lb1, lb1_old, ub1, ub1_old
839 CHARACTER(LEN=LEN(p)), &
845 IF (
ASSOCIATED(p))
THEN
846 lb1_old = lbound(p, 1)
847 ub1_old = ubound(p, 1)
848 lb1 = max(lb1_new, lb1_old)
849 ub1 = min(ub1_new, ub1_old)
853 ALLOCATE (p(lb1_new:ub1_new))
856 IF (
ASSOCIATED(work))
THEN
857 p(lb1:ub1) = work(lb1:ub1)