MFIX  2016-1
resize.f
Go to the documentation of this file.
1 module resize
2 
3  public :: byte_grow
4  public :: integer_grow
5  public :: integer_grow2_reverse
6  public :: integer_grow2
7  public :: logical_grow
8  public :: logical_grow2
9  public :: real_grow
10  public :: real_grow2
11  public :: real_grow2_reverse
12  public :: real_grow3
13  public :: logical_grow2_reverse
14 
15  contains
16 
17  SUBROUTINE byte_grow(byte_array,new_size)
18  IMPLICIT NONE
19 
20  INTEGER, INTENT(IN) :: new_size
21  INTEGER(KIND=1), DIMENSION(:), ALLOCATABLE, INTENT(INOUT) :: byte_array
22  INTEGER(KIND=1), DIMENSION(:), ALLOCATABLE :: byte_tmp
23  INTEGER lSIZE
24 
25  lsize = size(byte_array,1)
26  allocate(byte_tmp(new_size))
27  byte_tmp(1:lsize) = byte_array(1:lsize)
28  call move_alloc(byte_tmp,byte_array)
29 
30  END SUBROUTINE byte_grow
31 
32  SUBROUTINE integer_grow(integer_array,new_size)
33  IMPLICIT NONE
34 
35  INTEGER, INTENT(IN) :: new_size
36  INTEGER, DIMENSION(:), ALLOCATABLE, INTENT(INOUT) :: integer_array
37  INTEGER, DIMENSION(:), ALLOCATABLE :: integer_tmp
38  INTEGER lSIZE
39 
40  lsize = size(integer_array,1)
41  allocate(integer_tmp(new_size))
42  integer_tmp(1:lsize) = integer_array(1:lsize)
43  call move_alloc(integer_tmp,integer_array)
44 
45  END SUBROUTINE integer_grow
46 
47  SUBROUTINE integer_grow2_reverse(integer_array,new_size)
48  IMPLICIT NONE
49 
50  INTEGER, INTENT(IN) :: new_size
51  INTEGER, DIMENSION(:,:), ALLOCATABLE, INTENT(INOUT) :: integer_array
52  INTEGER, DIMENSION(:,:), ALLOCATABLE :: integer_tmp
53  INTEGER lSIZE, lSIZE2
54 
55  lsize = size(integer_array,1)
56  lsize2 = size(integer_array,2)
57  allocate(integer_tmp(new_size,lsize2))
58  integer_tmp(1:lsize,:) = integer_array(1:lsize,:)
59  call move_alloc(integer_tmp,integer_array)
60 
61  END SUBROUTINE integer_grow2_reverse
62 
63  SUBROUTINE integer_grow2(integer_array,new_size)
64  IMPLICIT NONE
65 
66  INTEGER, INTENT(IN) :: new_size
67  INTEGER, DIMENSION(:,:), ALLOCATABLE, INTENT(INOUT) :: integer_array
68  INTEGER, DIMENSION(:,:), ALLOCATABLE :: integer_tmp
69  INTEGER lSIZE, lSIZE2
70 
71  lsize = size(integer_array,1)
72  lsize2 = size(integer_array,2)
73  allocate(integer_tmp(lsize,new_size))
74  integer_tmp(:,1:lsize2) = integer_array(:,1:lsize2)
75  call move_alloc(integer_tmp,integer_array)
76 
77  END SUBROUTINE integer_grow2
78 
79  SUBROUTINE logical_grow(logical_array,new_size)
80  IMPLICIT NONE
81 
82  INTEGER, INTENT(IN) :: new_size
83  LOGICAL, DIMENSION(:), ALLOCATABLE, INTENT(INOUT) :: logical_array
84  LOGICAL, DIMENSION(:), ALLOCATABLE :: logical_tmp
85  INTEGER lSIZE
86 
87  lsize = size(logical_array,1)
88  allocate(logical_tmp(new_size))
89  logical_tmp(1:lsize) = logical_array(1:lsize)
90  call move_alloc(logical_tmp,logical_array)
91 
92  END SUBROUTINE logical_grow
93 
94  SUBROUTINE logical_grow2(logical_array,new_size)
95  IMPLICIT NONE
96 
97  INTEGER, INTENT(IN) :: new_size
98  LOGICAL, DIMENSION(:,:), ALLOCATABLE, INTENT(INOUT) :: logical_array
99  LOGICAL, DIMENSION(:,:), ALLOCATABLE :: logical_tmp
100  INTEGER lSIZE, lSIZE2
101 
102  lsize = size(logical_array,1)
103  lsize2 = size(logical_array,2)
104  allocate(logical_tmp(lsize,new_size))
105  logical_tmp(:,1:lsize2) = logical_array(:,1:lsize2)
106  call move_alloc(logical_tmp,logical_array)
107 
108  END SUBROUTINE logical_grow2
109 
110  SUBROUTINE real_grow(real_array,new_size)
111  IMPLICIT NONE
112 
113  INTEGER, INTENT(IN) :: new_size
114  DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE, INTENT(INOUT) :: real_array
115  DOUBLE PRECISION, DIMENSION(:), ALLOCATABLE :: real_tmp
116  INTEGER lSIZE
117 
118  lsize = size(real_array,1)
119  allocate(real_tmp(new_size))
120  real_tmp(1:lsize) = real_array(1:lsize)
121  call move_alloc(real_tmp,real_array)
122 
123  END SUBROUTINE real_grow
124 
125  SUBROUTINE real_grow2(real_array,new_size)
126  IMPLICIT NONE
127 
128  INTEGER, INTENT(IN) :: new_size
129  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE, INTENT(INOUT) :: real_array
130  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: real_tmp
131  INTEGER lSIZE, lSIZE2
132 
133  lsize = size(real_array,1)
134  lsize2 = size(real_array,2)
135  allocate(real_tmp(lsize,new_size))
136  real_tmp(:,1:lsize2) = real_array(:,1:lsize2)
137  call move_alloc(real_tmp,real_array)
138 
139  END SUBROUTINE real_grow2
140 
141  SUBROUTINE real_grow2_reverse(real_array,new_size)
142  IMPLICIT NONE
143 
144  INTEGER, INTENT(IN) :: new_size
145  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE, INTENT(INOUT) :: real_array
146  DOUBLE PRECISION, DIMENSION(:,:), ALLOCATABLE :: real_tmp
147  INTEGER lSIZE, lSIZE2
148 
149  lsize = size(real_array,1)
150  lsize2 = size(real_array,2)
151  allocate(real_tmp(new_size,lsize2))
152  real_tmp(1:lsize,:) = real_array(1:lsize,:)
153  call move_alloc(real_tmp,real_array)
154 
155  END SUBROUTINE real_grow2_reverse
156 
157  SUBROUTINE real_grow3(real_array,new_size)
158  IMPLICIT NONE
159 
160  INTEGER, INTENT(IN) :: new_size
161  DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE, INTENT(INOUT) :: real_array
162  DOUBLE PRECISION, DIMENSION(:,:,:), ALLOCATABLE :: real_tmp
163  INTEGER lSIZE, lSIZE2, lSIZE3
164 
165  lsize = size(real_array,1)
166  lsize2 = size(real_array,2)
167  lsize3 = size(real_array,3)
168  allocate(real_tmp(lsize,lsize2,new_size))
169  real_tmp(:,:,1:lsize3) = real_array(:,:,1:lsize3)
170  call move_alloc(real_tmp,real_array)
171 
172  END SUBROUTINE real_grow3
173 
174  SUBROUTINE logical_grow2_reverse(real_array,new_size)
175  IMPLICIT NONE
176 
177  INTEGER, INTENT(IN) :: new_size
178  LOGICAL, DIMENSION(:,:), ALLOCATABLE, INTENT(INOUT) :: real_array
179  LOGICAL, DIMENSION(:,:), ALLOCATABLE :: real_tmp
180  INTEGER lSIZE, lSIZE2
181 
182  lsize = size(real_array,1)
183  lsize2 = size(real_array,2)
184  allocate(real_tmp(new_size,lsize2))
185  real_tmp(1:lsize,:) = real_array(1:lsize,:)
186  call move_alloc(real_tmp,real_array)
187 
188  END SUBROUTINE logical_grow2_reverse
189 
190 end module resize
subroutine, public integer_grow2_reverse(integer_array, new_size)
Definition: resize.f:48
subroutine, public logical_grow2(logical_array, new_size)
Definition: resize.f:95
subroutine, public real_grow(real_array, new_size)
Definition: resize.f:111
subroutine, public real_grow2(real_array, new_size)
Definition: resize.f:126
subroutine, public byte_grow(byte_array, new_size)
Definition: resize.f:18
subroutine, public integer_grow2(integer_array, new_size)
Definition: resize.f:64
subroutine, public integer_grow(integer_array, new_size)
Definition: resize.f:33
Definition: resize.f:1
subroutine, public real_grow2_reverse(real_array, new_size)
Definition: resize.f:142
subroutine, public real_grow3(real_array, new_size)
Definition: resize.f:158
subroutine, public logical_grow2_reverse(real_array, new_size)
Definition: resize.f:175
subroutine, public logical_grow(logical_array, new_size)
Definition: resize.f:80