1 # 1 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2 # 1 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/../generics.fypp" 1
11 # 57 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/../generics.fypp"
12 # 2 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp" 2
13 # 1 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/../instrumentation.fypp" 1
14 # 1 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/../subr_list.fypp" 1
23 # 926 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/../subr_list.fypp"
24 # 2 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/../instrumentation.fypp" 2
33 # 112 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/../instrumentation.fypp"
34 # 3 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp" 2
50 use atlas_module,
only: atlas_functionspace,atlas_fieldset,atlas_field,atlas_integer,atlas_metadata,atlas_real
51 use fckit_configuration_module,
only: fckit_configuration
52 use fckit_log_module,
only: fckit_log
53 use fckit_mpi_module,
only: fckit_mpi_comm,fckit_mpi_sum,fckit_mpi_min,fckit_mpi_max,fckit_mpi_status
54 use iso_c_binding,
only: c_char
86 type(atlas_functionspace) :: afunctionspace_in
87 type(atlas_functionspace) :: afunctionspace_out
101 integer,
allocatable :: nn_index(:)
104 logical :: dummy_logical
111 # 80 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
112 # 81 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
113 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
115 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
117 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
119 # 84 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
120 # 81 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
121 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
123 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
125 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
127 # 84 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
128 # 81 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
129 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
131 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
133 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
135 # 84 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
136 # 85 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
137 # 80 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
138 # 81 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
139 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
141 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
143 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
145 # 84 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
146 # 81 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
147 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
149 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
151 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
153 # 84 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
154 # 81 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
155 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
157 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
159 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
161 # 84 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
162 # 85 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
163 # 80 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
164 # 81 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
165 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
167 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
169 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
171 # 84 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
172 # 81 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
173 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
175 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
177 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
179 # 84 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
180 # 81 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
181 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
183 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
185 # 82 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
187 # 84 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
188 # 85 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
189 # 86 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
192 # 89 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
193 # 90 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
194 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
196 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
198 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
200 # 93 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
201 # 90 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
202 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
204 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
206 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
208 # 93 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
209 # 90 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
210 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
212 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
214 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
216 # 93 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
217 # 94 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
218 # 89 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
219 # 90 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
220 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
222 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
224 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
226 # 93 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
227 # 90 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
228 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
230 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
232 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
234 # 93 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
235 # 90 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
236 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
238 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
240 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
242 # 93 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
243 # 94 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
244 # 89 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
245 # 90 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
246 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
248 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
250 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
252 # 93 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
253 # 90 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
254 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
256 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
258 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
260 # 93 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
261 # 90 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
262 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
264 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
266 # 91 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
268 # 93 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
269 # 94 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
270 # 95 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
271 # 96 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
273 # 96 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
275 # 96 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
277 # 98 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
279 generic,
public :: apply_interp => &
280 # 101 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
282 # 101 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
284 # 101 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
286 # 103 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
288 # 105 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
289 # 106 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
291 # 106 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
293 # 106 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
295 # 108 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
296 # 105 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
297 # 106 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
299 # 106 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
301 # 106 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
303 # 108 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
304 # 105 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
305 # 106 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
307 # 106 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
309 # 106 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
311 # 108 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
312 # 109 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
315 # 112 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
316 # 113 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
318 # 113 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
320 # 113 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
322 # 115 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
323 # 112 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
324 # 113 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
326 # 113 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
328 # 113 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
330 # 115 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
331 # 112 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
332 # 113 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
334 # 113 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
336 # 113 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
338 # 115 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
339 # 116 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
356 & lon1d_in,lat1d_in, &
358 & afunctionspace_in, &
359 & lon1d_out,lat1d_out, &
361 & afunctionspace_out, &
362 & nl,fieldset,config)
368 type(fckit_mpi_comm),
intent(in) :: comm
369 real(kind_real),
intent(in),
optional :: lon1d_in(:)
370 real(kind_real),
intent(in),
optional :: lat1d_in(:)
371 real(kind_real),
intent(in),
optional :: lon_in(:)
372 real(kind_real),
intent(in),
optional :: lat_in(:)
373 type(atlas_functionspace),
intent(in),
optional :: afunctionspace_in
374 real(kind_real),
intent(in),
optional :: lon1d_out(:)
375 real(kind_real),
intent(in),
optional :: lat1d_out(:)
376 real(kind_real),
intent(in),
optional :: lon_out(:)
377 real(kind_real),
intent(in),
optional :: lat_out(:)
378 type(atlas_functionspace),
intent(in),
optional :: afunctionspace_out
379 integer,
intent(in),
optional :: nl
381 type(fckit_configuration),
intent(in),
optional :: config
384 integer :: msvali,inode,ilon,ilat
385 real(kind_real) :: msvalr
386 real(kind_real),
allocatable :: lon(:),lat(:)
387 logical :: unique_points
388 type(fckit_configuration) :: bump_config
389 type(atlas_field) :: afield
390 type(atlas_metadata) :: ametadata
403 call bint%bump%nam%init(comm%size())
406 bint%bump%nam%prefix =
'bump_interpolator'
407 bint%bump%nam%datadir =
'testdata'
408 bint%bump%nam%verbosity =
'none'
409 if (
present(nl))
then
410 bint%bump%nam%nl = nl
415 bint%bump%nam%variables(1) =
'var'
419 msvalr = -999.0_kind_real
422 unique_points = .true.
424 if (
present(config))
then
426 if (config%has(
'bump'))
then
427 call config%get_or_die(
'bump',bump_config)
428 call bint%bump%nam%from_conf(comm,bump_config)
432 if (config%has(
'nlevels'))
call config%get_or_die(
'nlevels',bint%bump%nam%nl)
435 if (config%has(
'missingvalue_int'))
call config%get_or_die(
'missingvalue_int',msvali)
436 if (config%has(
'missingvalue_real'))
call config%get_or_die(
'missingvalue_real',msvalr)
439 if (config%has(
'unique_points'))
call config%get_or_die(
'unique_points',unique_points)
443 if (
present(lon1d_in).and.
present(lat1d_in))
then
444 allocate(lon(
size(lon1d_in)*
size(lat1d_in)))
445 allocate(lat(
size(lon1d_in)*
size(lat1d_in)))
447 do ilat=1,
size(lat1d_in)
448 do ilon=1,
size(lon1d_in)
450 lon(inode) = lon1d_in(ilon)
451 lat(inode) = lat1d_in(ilat)
457 elseif (
present(lon_in).and.
present(lat_in))
then
458 if (
size(lon_in)/=
size(lat_in))
then
459 call fckit_log%info(
'input longitudes and latitudes have different sizes')
463 elseif (
present(afunctionspace_in))
then
464 bint%afunctionspace_in = afunctionspace_in
466 call fckit_log%info(
'output ATLAS function space or lon/lat vector should be provided')
471 if (
present(lon1d_out).and.
present(lat1d_out))
then
472 allocate(lon(
size(lon1d_out)*
size(lat1d_out)))
473 allocate(lat(
size(lon1d_out)*
size(lat1d_out)))
475 do ilat=1,
size(lat1d_out)
476 do ilon=1,
size(lon1d_out)
478 lon(inode) = lon1d_out(ilon)
479 lat(inode) = lat1d_out(ilat)
485 elseif (
present(lon_out).and.
present(lat_out))
then
486 if (
size(lon_out)/=
size(lat_out))
then
487 call fckit_log%info(
'output longitudes and latitudes have different sizes')
491 elseif (
present(afunctionspace_out))
then
492 bint%afunctionspace_out = afunctionspace_out
494 call fckit_log%info(
'output ATLAS function space or lon/lat vector should be provided')
499 if (
present(fieldset))
then
502 lfieldset = atlas_fieldset()
506 if (lfieldset%has_field(
'meta'))
then
507 afield = lfieldset%field(
'meta')
509 afield = atlas_field(name=
'meta',kind=atlas_integer(
kind_int),shape=(/0/))
510 call lfieldset%add(afield)
512 ametadata = afield%metadata()
513 call ametadata%set(
'unique_points',unique_points)
521 call bint%bump%setup(comm,bint%afunctionspace_in,lfieldset,msvali=msvali,msvalr=msvalr)
524 if (bint%bump%mpl%main)
then
525 call fckit_log%info(
'-------------------------------------------------------------------')
526 call fckit_log%info(
'--- Initialize output grid')
530 bint%geom_out%nl0 = bint%bump%nam%nl
531 call bint%geom_out%from_atlas(bint%bump%mpl,bint%afunctionspace_out)
532 bint%nouta =
size(bint%geom_out%lon_mga)
535 call bint%bump%run_drivers
538 if (bint%bump%mpl%main)
then
539 call fckit_log%info(
'-------------------------------------------------------------------')
540 call fckit_log%info(
'--- Run bump_interpolation driver')
542 call bint%driver(bint%bump%mpl,bint%bump%nam,bint%bump%geom)
545 if (bint%bump%mpl%main)
then
546 call fckit_log%info(
'-------------------------------------------------------------------')
547 call fckit_log%info(
'--- Release memory (partial)')
549 call bint%bump%partial_dealloc
550 call bint%geom_out%partial_dealloc
551 if (.not.
present(fieldset))
call lfieldset%final()
553 call ametadata%final()
575 integer :: iouta,iproc,i_s,ic0,ic0u,jc0u,ic0b,ic0a,nouta_eff
576 integer :: nout_eff,nn_index(1),proc_to_nouta(mpl%nproc),proc_to_nouta_eff(mpl%nproc)
577 integer :: c0u_to_c0b(geom%nc0u)
578 integer,
allocatable :: c0b_to_c0(:)
579 real(kind_real) :: nn_dist(1),N_max,C_max
580 real(kind_real),
allocatable :: maxweight(:)
581 logical :: maskouta(bint%nouta),lcheck_nc0b(geom%nc0)
593 if (any(.not.geom%myuniverse))
call mpl%abort(
'bint_driver',
'universe should be global for interpolation')
596 if (bint%nouta > 0)
then
597 do iouta=1,bint%nouta
598 call inside(mpl,bint%bump%geom%mesh_c0u%vbnd,bint%geom_out%lon_mga(iouta),bint%geom_out%lat_mga(iouta),maskouta(iouta))
599 if (.not.maskouta(iouta))
then
601 call geom%tree_c0u%find_nearest_neighbors(bint%geom_out%lon_mga(iouta),bint%geom_out%lat_mga(iouta), &
602 & 1,nn_index,nn_dist)
603 if (nn_dist(1)<
rth) maskouta(iouta) = .true.
612 call mpl%f_comm%allgather(bint%nouta,proc_to_nouta)
613 call mpl%f_comm%allgather(nouta_eff,proc_to_nouta_eff)
614 bint%nout = sum(proc_to_nouta)
615 nout_eff = sum(proc_to_nouta_eff)
618 write(mpl%info,
'(a7,a)')
'',
'Number of points in output grid / valid points per MPI task:'
621 write(mpl%info,
'(a10,a,i3,a,i8,a,i8)')
'',
'Task ',iproc,
': ',proc_to_nouta(iproc),
' / ',proc_to_nouta_eff(iproc)
624 write(mpl%info,
'(a10,a,i8,a,i8)')
'',
'Total : ',bint%nout,
' / ',nout_eff
629 write(mpl%info,
'(a7,a)')
'',
'Single level:'
631 call bint%h%interp(mpl,nam,0,geom%nc0u,geom%lon_c0u,geom%lat_c0u,geom%gmask_hor_c0u,geom%mesh_c0u,geom%tree_c0u, &
632 & bint%nouta,bint%geom_out%lon_mga,bint%geom_out%lat_mga,maskouta,geom%mesh_c0u,10)
635 lcheck_nc0b = .false.
637 ic0u = geom%c0a_to_c0u(ic0a)
638 lcheck_nc0b(ic0u) = .true.
640 do iouta=1,bint%nouta
642 jc0u = bint%h%col(i_s)
643 lcheck_nc0b(jc0u) = .true.
649 allocate(c0b_to_c0(bint%nc0b))
652 c0u_to_c0b = mpl%msv%vali
655 if (lcheck_nc0b(ic0u))
then
657 ic0 = geom%c0u_to_c0(ic0u)
658 c0b_to_c0(ic0b) = ic0
659 c0u_to_c0b(ic0u) = ic0b
664 bint%h%n_src = bint%nc0b
666 ic0u = bint%h%col(i_s)
667 ic0b = c0u_to_c0b(ic0u)
668 if (mpl%msv%isnot(ic0b))
then
669 bint%h%col(i_s) = ic0b
671 call mpl%abort(
'bint_driver',
'wrong local source for h')
676 call bint%com%setup(mpl,
'com',geom%nc0a,bint%nc0b,geom%nc0,geom%c0a_to_c0,c0b_to_c0)
679 deallocate(c0b_to_c0)
682 allocate(bint%nn_index(bint%nouta))
685 if (bint%nouta > 0)
then
687 allocate(maxweight(bint%nouta))
690 bint%nn_index = bint%bump%mpl%msv%vali
695 iouta = bint%h%row(i_s)
696 if (bint%h%S(i_s)>maxweight(iouta))
then
697 maxweight(iouta) = bint%h%S(i_s)
698 bint%nn_index(iouta) = bint%h%col(i_s)
701 if (bint%bump%mpl%msv%isany(bint%nn_index))
call bint%bump%mpl%abort(
'bint_driver',
'missing nearest neighbor')
704 deallocate(maxweight)
708 if (nout_eff > 0)
then
709 call mpl%f_comm%allreduce(real(bint%com%nhalo,kind_real),c_max,fckit_mpi_max())
710 c_max = c_max/(
three*real(nout_eff,kind_real)/real(mpl%nproc,kind_real))
711 n_max = real(maxval(proc_to_nouta_eff),kind_real)/(real(nout_eff,kind_real)/real(mpl%nproc,kind_real))
714 write(mpl%info,
'(a7,a,f5.1,a)')
'',
'Output grid repartition imbalance: ',
hundred*real(maxval(proc_to_nouta_eff) &
715 & -minval(proc_to_nouta_eff),kind_real)/(real(sum(proc_to_nouta_eff),kind_real)/real(mpl%nproc,kind_real)),
' %'
717 write(mpl%info,
'(a7,a,i8,a,i8,a,i8)')
'',
'Number of grid points / halo size / number of received values: ', &
718 & bint%com%nred,
' / ',bint%com%next,
' / ',bint%com%nhalo
720 write(mpl%info,
'(a7,a,f10.2,a,f10.2)')
'',
'Scores (N_max / C_max):',n_max,
' / ',c_max
747 real(kind_real),
allocatable :: array_in_mga(:,:),array_in_c0a(:,:),array_out(:,:)
748 character(len=max_string) :: fieldname
749 type(atlas_field) :: afield_in,afield_out
761 allocate(array_in_mga(bint%bump%geom%nmga,bint%bump%geom%nl0))
762 if (.not.bint%bump%geom%same_grid)
allocate(array_in_c0a(bint%bump%geom%nc0a,bint%bump%geom%nl0))
763 allocate(array_out(bint%nouta,bint%bump%geom%nl0))
765 do ifield=1,fieldset_in%size()
767 afield_in = fieldset_in%field(ifield)
768 fieldname = afield_in%name()
771 if (fieldset_out%has_field(fieldname))
then
772 afield_out = fieldset_out%field(name=fieldname)
774 afield_out = bint%afunctionspace_out%create_field(name=fieldname,kind=atlas_real(kind_real),levels=bint%bump%geom%nl0)
775 call fieldset_out%add(afield_out)
781 if (bint%bump%geom%same_grid)
then
783 call bint%apply_interp(array_in_mga,array_out)
787 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,array_in_mga,array_in_c0a)
790 call bint%apply_interp(array_in_c0a,array_out)
797 call afield_in%final()
798 call afield_out%final()
802 deallocate(array_in_mga)
803 if (.not.bint%bump%geom%same_grid)
deallocate(array_in_c0a)
804 deallocate(array_out)
811 # 588 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
812 # 589 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
813 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
824 integer(kind_int),
intent(in) :: array_in(:)
825 integer(kind_int),
intent(out) :: array_out(:)
826 logical,
intent(in),
optional :: trans_in
827 logical,
intent(in),
optional :: trans_out
828 logical,
intent(in),
optional :: nn
831 integer :: nl_in,nl_out
832 integer :: shp_out(1)
834 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
835 logical :: ltrans_in,ltrans_out,lnn
848 if (
present(trans_in)) ltrans_in = trans_in
850 if (
present(trans_out)) ltrans_out = trans_out
852 if (
present(nn)) lnn = nn
855 # 632 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
857 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
858 # 641 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
860 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
861 bint%bump%geom%nl0 = nl_in
864 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
865 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
866 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
869 vec_in(:,1) = array_in
870 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
871 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
874 if (bint%bump%geom%same_grid)
then
875 call bint%apply_interp(vec_in,vec_out,lnn)
877 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
878 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
882 shp_out = shape(array_out)
883 array_out = vec_out(:,1)
884 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
885 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
891 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
902 integer(kind_int),
intent(in) :: array_in(:)
903 integer(kind_int),
intent(out) :: array_out(:,:)
904 logical,
intent(in),
optional :: trans_in
905 logical,
intent(in),
optional :: trans_out
906 logical,
intent(in),
optional :: nn
909 integer :: nl_in,nl_out
910 integer :: shp_out(2)
912 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
913 logical :: ltrans_in,ltrans_out,lnn
926 if (
present(trans_in)) ltrans_in = trans_in
928 if (
present(trans_out)) ltrans_out = trans_out
930 if (
present(nn)) lnn = nn
933 # 632 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
935 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
936 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
938 nl_out =
size(array_out,1)
940 nl_out =
size(array_out,2)
942 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
943 bint%bump%geom%nl0 = nl_in
946 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
947 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
948 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
951 vec_in(:,1) = array_in
952 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
953 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
956 if (bint%bump%geom%same_grid)
then
957 call bint%apply_interp(vec_in,vec_out,lnn)
959 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
960 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
964 shp_out = shape(array_out)
966 # 687 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
968 array_out = transpose(vec_out)
972 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
973 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
979 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
990 integer(kind_int),
intent(in) :: array_in(:)
991 integer(kind_int),
intent(out) :: array_out(:,:,:)
992 logical,
intent(in),
optional :: trans_in
993 logical,
intent(in),
optional :: trans_out
994 logical,
intent(in),
optional :: nn
997 integer :: nl_in,nl_out
998 integer :: shp_out(3)
1000 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1001 logical :: ltrans_in,ltrans_out,lnn
1014 if (
present(trans_in)) ltrans_in = trans_in
1015 ltrans_out = .false.
1016 if (
present(trans_out)) ltrans_out = trans_out
1018 if (
present(nn)) lnn = nn
1021 # 632 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1023 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1024 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1025 if (ltrans_out)
then
1026 nl_out =
size(array_out,1)
1028 nl_out =
size(array_out,3)
1030 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1031 bint%bump%geom%nl0 = nl_in
1034 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1035 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1036 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1039 vec_in(:,1) = array_in
1040 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1041 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1044 if (bint%bump%geom%same_grid)
then
1045 call bint%apply_interp(vec_in,vec_out,lnn)
1047 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1048 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1052 shp_out = shape(array_out)
1054 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1055 # 694 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1057 if (ltrans_out)
then
1058 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
1060 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
1063 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1069 # 708 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1070 # 589 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1071 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1082 integer(kind_int),
intent(in) :: array_in(:,:)
1083 integer(kind_int),
intent(out) :: array_out(:)
1084 logical,
intent(in),
optional :: trans_in
1085 logical,
intent(in),
optional :: trans_out
1086 logical,
intent(in),
optional :: nn
1089 integer :: nl_in,nl_out
1090 integer :: shp_out(1)
1092 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1093 logical :: ltrans_in,ltrans_out,lnn
1106 if (
present(trans_in)) ltrans_in = trans_in
1107 ltrans_out = .false.
1108 if (
present(trans_out)) ltrans_out = trans_out
1110 if (
present(nn)) lnn = nn
1113 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1115 nl_in =
size(array_in,1)
1117 nl_in =
size(array_in,2)
1119 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1120 # 641 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1122 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1123 bint%bump%geom%nl0 = nl_in
1126 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1127 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1128 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1132 # 659 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1134 vec_in = transpose(array_in)
1138 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1139 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1142 if (bint%bump%geom%same_grid)
then
1143 call bint%apply_interp(vec_in,vec_out,lnn)
1145 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1146 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1150 shp_out = shape(array_out)
1151 array_out = vec_out(:,1)
1152 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1153 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1159 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1170 integer(kind_int),
intent(in) :: array_in(:,:)
1171 integer(kind_int),
intent(out) :: array_out(:,:)
1172 logical,
intent(in),
optional :: trans_in
1173 logical,
intent(in),
optional :: trans_out
1174 logical,
intent(in),
optional :: nn
1177 integer :: nl_in,nl_out
1178 integer :: shp_out(2)
1180 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1181 logical :: ltrans_in,ltrans_out,lnn
1194 if (
present(trans_in)) ltrans_in = trans_in
1195 ltrans_out = .false.
1196 if (
present(trans_out)) ltrans_out = trans_out
1198 if (
present(nn)) lnn = nn
1201 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1203 nl_in =
size(array_in,1)
1205 nl_in =
size(array_in,2)
1207 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1208 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1209 if (ltrans_out)
then
1210 nl_out =
size(array_out,1)
1212 nl_out =
size(array_out,2)
1214 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1215 bint%bump%geom%nl0 = nl_in
1218 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1219 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1220 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1224 # 659 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1226 vec_in = transpose(array_in)
1230 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1231 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1234 if (bint%bump%geom%same_grid)
then
1235 call bint%apply_interp(vec_in,vec_out,lnn)
1237 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1238 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1242 shp_out = shape(array_out)
1244 # 687 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1245 if (ltrans_out)
then
1246 array_out = transpose(vec_out)
1250 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1251 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1257 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1268 integer(kind_int),
intent(in) :: array_in(:,:)
1269 integer(kind_int),
intent(out) :: array_out(:,:,:)
1270 logical,
intent(in),
optional :: trans_in
1271 logical,
intent(in),
optional :: trans_out
1272 logical,
intent(in),
optional :: nn
1275 integer :: nl_in,nl_out
1276 integer :: shp_out(3)
1278 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1279 logical :: ltrans_in,ltrans_out,lnn
1292 if (
present(trans_in)) ltrans_in = trans_in
1293 ltrans_out = .false.
1294 if (
present(trans_out)) ltrans_out = trans_out
1296 if (
present(nn)) lnn = nn
1299 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1301 nl_in =
size(array_in,1)
1303 nl_in =
size(array_in,2)
1305 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1306 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1307 if (ltrans_out)
then
1308 nl_out =
size(array_out,1)
1310 nl_out =
size(array_out,3)
1312 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1313 bint%bump%geom%nl0 = nl_in
1316 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1317 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1318 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1322 # 659 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1324 vec_in = transpose(array_in)
1328 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1329 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1332 if (bint%bump%geom%same_grid)
then
1333 call bint%apply_interp(vec_in,vec_out,lnn)
1335 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1336 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1340 shp_out = shape(array_out)
1342 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1343 # 694 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1345 if (ltrans_out)
then
1346 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
1348 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
1351 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1357 # 708 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1358 # 589 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1359 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1370 integer(kind_int),
intent(in) :: array_in(:,:,:)
1371 integer(kind_int),
intent(out) :: array_out(:)
1372 logical,
intent(in),
optional :: trans_in
1373 logical,
intent(in),
optional :: trans_out
1374 logical,
intent(in),
optional :: nn
1377 integer :: nl_in,nl_out
1378 integer :: shp_out(1)
1380 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1381 logical :: ltrans_in,ltrans_out,lnn
1394 if (
present(trans_in)) ltrans_in = trans_in
1395 ltrans_out = .false.
1396 if (
present(trans_out)) ltrans_out = trans_out
1398 if (
present(nn)) lnn = nn
1401 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1403 nl_in =
size(array_in,1)
1405 nl_in =
size(array_in,3)
1407 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1408 # 641 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1410 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1411 bint%bump%geom%nl0 = nl_in
1414 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1415 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1416 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1420 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1421 # 666 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1424 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
1426 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
1429 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1432 if (bint%bump%geom%same_grid)
then
1433 call bint%apply_interp(vec_in,vec_out,lnn)
1435 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1436 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1440 shp_out = shape(array_out)
1441 array_out = vec_out(:,1)
1442 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1443 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1449 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1460 integer(kind_int),
intent(in) :: array_in(:,:,:)
1461 integer(kind_int),
intent(out) :: array_out(:,:)
1462 logical,
intent(in),
optional :: trans_in
1463 logical,
intent(in),
optional :: trans_out
1464 logical,
intent(in),
optional :: nn
1467 integer :: nl_in,nl_out
1468 integer :: shp_out(2)
1470 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1471 logical :: ltrans_in,ltrans_out,lnn
1484 if (
present(trans_in)) ltrans_in = trans_in
1485 ltrans_out = .false.
1486 if (
present(trans_out)) ltrans_out = trans_out
1488 if (
present(nn)) lnn = nn
1491 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1493 nl_in =
size(array_in,1)
1495 nl_in =
size(array_in,3)
1497 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1498 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1499 if (ltrans_out)
then
1500 nl_out =
size(array_out,1)
1502 nl_out =
size(array_out,2)
1504 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1505 bint%bump%geom%nl0 = nl_in
1508 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1509 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1510 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1514 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1515 # 666 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1518 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
1520 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
1523 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1526 if (bint%bump%geom%same_grid)
then
1527 call bint%apply_interp(vec_in,vec_out,lnn)
1529 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1530 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1534 shp_out = shape(array_out)
1536 # 687 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1537 if (ltrans_out)
then
1538 array_out = transpose(vec_out)
1542 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1543 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1549 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1560 integer(kind_int),
intent(in) :: array_in(:,:,:)
1561 integer(kind_int),
intent(out) :: array_out(:,:,:)
1562 logical,
intent(in),
optional :: trans_in
1563 logical,
intent(in),
optional :: trans_out
1564 logical,
intent(in),
optional :: nn
1567 integer :: nl_in,nl_out
1568 integer :: shp_out(3)
1570 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1571 logical :: ltrans_in,ltrans_out,lnn
1584 if (
present(trans_in)) ltrans_in = trans_in
1585 ltrans_out = .false.
1586 if (
present(trans_out)) ltrans_out = trans_out
1588 if (
present(nn)) lnn = nn
1591 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1593 nl_in =
size(array_in,1)
1595 nl_in =
size(array_in,3)
1597 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1598 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1599 if (ltrans_out)
then
1600 nl_out =
size(array_out,1)
1602 nl_out =
size(array_out,3)
1604 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1605 bint%bump%geom%nl0 = nl_in
1608 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1609 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1610 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1614 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1615 # 666 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1618 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
1620 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
1623 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1626 if (bint%bump%geom%same_grid)
then
1627 call bint%apply_interp(vec_in,vec_out,lnn)
1629 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1630 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1634 shp_out = shape(array_out)
1636 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1637 # 694 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1639 if (ltrans_out)
then
1640 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
1642 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
1645 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1651 # 708 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1652 # 709 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1653 # 588 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1654 # 589 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1655 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1666 real(kind_real),
intent(in) :: array_in(:)
1667 real(kind_real),
intent(out) :: array_out(:)
1668 logical,
intent(in),
optional :: trans_in
1669 logical,
intent(in),
optional :: trans_out
1670 logical,
intent(in),
optional :: nn
1673 integer :: nl_in,nl_out
1674 integer :: shp_out(1)
1676 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1677 logical :: ltrans_in,ltrans_out,lnn
1690 if (
present(trans_in)) ltrans_in = trans_in
1691 ltrans_out = .false.
1692 if (
present(trans_out)) ltrans_out = trans_out
1694 if (
present(nn)) lnn = nn
1697 # 632 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1699 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1700 # 641 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1702 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1703 bint%bump%geom%nl0 = nl_in
1706 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1707 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1708 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1711 vec_in(:,1) = array_in
1712 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1713 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1716 if (bint%bump%geom%same_grid)
then
1717 call bint%apply_interp(vec_in,vec_out,lnn)
1719 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1720 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1724 shp_out = shape(array_out)
1725 array_out = vec_out(:,1)
1726 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1727 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1733 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1744 real(kind_real),
intent(in) :: array_in(:)
1745 real(kind_real),
intent(out) :: array_out(:,:)
1746 logical,
intent(in),
optional :: trans_in
1747 logical,
intent(in),
optional :: trans_out
1748 logical,
intent(in),
optional :: nn
1751 integer :: nl_in,nl_out
1752 integer :: shp_out(2)
1754 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1755 logical :: ltrans_in,ltrans_out,lnn
1768 if (
present(trans_in)) ltrans_in = trans_in
1769 ltrans_out = .false.
1770 if (
present(trans_out)) ltrans_out = trans_out
1772 if (
present(nn)) lnn = nn
1775 # 632 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1777 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1778 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1779 if (ltrans_out)
then
1780 nl_out =
size(array_out,1)
1782 nl_out =
size(array_out,2)
1784 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1785 bint%bump%geom%nl0 = nl_in
1788 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1789 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1790 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1793 vec_in(:,1) = array_in
1794 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1795 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1798 if (bint%bump%geom%same_grid)
then
1799 call bint%apply_interp(vec_in,vec_out,lnn)
1801 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1802 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1806 shp_out = shape(array_out)
1808 # 687 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1809 if (ltrans_out)
then
1810 array_out = transpose(vec_out)
1814 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1815 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1821 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1832 real(kind_real),
intent(in) :: array_in(:)
1833 real(kind_real),
intent(out) :: array_out(:,:,:)
1834 logical,
intent(in),
optional :: trans_in
1835 logical,
intent(in),
optional :: trans_out
1836 logical,
intent(in),
optional :: nn
1839 integer :: nl_in,nl_out
1840 integer :: shp_out(3)
1842 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1843 logical :: ltrans_in,ltrans_out,lnn
1856 if (
present(trans_in)) ltrans_in = trans_in
1857 ltrans_out = .false.
1858 if (
present(trans_out)) ltrans_out = trans_out
1860 if (
present(nn)) lnn = nn
1863 # 632 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1865 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1866 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1867 if (ltrans_out)
then
1868 nl_out =
size(array_out,1)
1870 nl_out =
size(array_out,3)
1872 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1873 bint%bump%geom%nl0 = nl_in
1876 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1877 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1878 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1881 vec_in(:,1) = array_in
1882 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1883 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1886 if (bint%bump%geom%same_grid)
then
1887 call bint%apply_interp(vec_in,vec_out,lnn)
1889 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1890 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1894 shp_out = shape(array_out)
1896 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1897 # 694 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1899 if (ltrans_out)
then
1900 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
1902 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
1905 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1911 # 708 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1912 # 589 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1913 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1924 real(kind_real),
intent(in) :: array_in(:,:)
1925 real(kind_real),
intent(out) :: array_out(:)
1926 logical,
intent(in),
optional :: trans_in
1927 logical,
intent(in),
optional :: trans_out
1928 logical,
intent(in),
optional :: nn
1931 integer :: nl_in,nl_out
1932 integer :: shp_out(1)
1934 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1935 logical :: ltrans_in,ltrans_out,lnn
1948 if (
present(trans_in)) ltrans_in = trans_in
1949 ltrans_out = .false.
1950 if (
present(trans_out)) ltrans_out = trans_out
1952 if (
present(nn)) lnn = nn
1955 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1957 nl_in =
size(array_in,1)
1959 nl_in =
size(array_in,2)
1961 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1962 # 641 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1964 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1965 bint%bump%geom%nl0 = nl_in
1968 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1969 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1970 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1974 # 659 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1976 vec_in = transpose(array_in)
1980 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1981 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1984 if (bint%bump%geom%same_grid)
then
1985 call bint%apply_interp(vec_in,vec_out,lnn)
1987 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1988 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1992 shp_out = shape(array_out)
1993 array_out = vec_out(:,1)
1994 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1995 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2001 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2012 real(kind_real),
intent(in) :: array_in(:,:)
2013 real(kind_real),
intent(out) :: array_out(:,:)
2014 logical,
intent(in),
optional :: trans_in
2015 logical,
intent(in),
optional :: trans_out
2016 logical,
intent(in),
optional :: nn
2019 integer :: nl_in,nl_out
2020 integer :: shp_out(2)
2022 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2023 logical :: ltrans_in,ltrans_out,lnn
2036 if (
present(trans_in)) ltrans_in = trans_in
2037 ltrans_out = .false.
2038 if (
present(trans_out)) ltrans_out = trans_out
2040 if (
present(nn)) lnn = nn
2043 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2045 nl_in =
size(array_in,1)
2047 nl_in =
size(array_in,2)
2049 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2050 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2051 if (ltrans_out)
then
2052 nl_out =
size(array_out,1)
2054 nl_out =
size(array_out,2)
2056 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2057 bint%bump%geom%nl0 = nl_in
2060 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2061 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2062 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2066 # 659 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2068 vec_in = transpose(array_in)
2072 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2073 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2076 if (bint%bump%geom%same_grid)
then
2077 call bint%apply_interp(vec_in,vec_out,lnn)
2079 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2080 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2084 shp_out = shape(array_out)
2086 # 687 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2087 if (ltrans_out)
then
2088 array_out = transpose(vec_out)
2092 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2093 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2099 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2110 real(kind_real),
intent(in) :: array_in(:,:)
2111 real(kind_real),
intent(out) :: array_out(:,:,:)
2112 logical,
intent(in),
optional :: trans_in
2113 logical,
intent(in),
optional :: trans_out
2114 logical,
intent(in),
optional :: nn
2117 integer :: nl_in,nl_out
2118 integer :: shp_out(3)
2120 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2121 logical :: ltrans_in,ltrans_out,lnn
2134 if (
present(trans_in)) ltrans_in = trans_in
2135 ltrans_out = .false.
2136 if (
present(trans_out)) ltrans_out = trans_out
2138 if (
present(nn)) lnn = nn
2141 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2143 nl_in =
size(array_in,1)
2145 nl_in =
size(array_in,2)
2147 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2148 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2149 if (ltrans_out)
then
2150 nl_out =
size(array_out,1)
2152 nl_out =
size(array_out,3)
2154 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2155 bint%bump%geom%nl0 = nl_in
2158 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2159 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2160 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2164 # 659 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2166 vec_in = transpose(array_in)
2170 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2171 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2174 if (bint%bump%geom%same_grid)
then
2175 call bint%apply_interp(vec_in,vec_out,lnn)
2177 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2178 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2182 shp_out = shape(array_out)
2184 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2185 # 694 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2187 if (ltrans_out)
then
2188 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
2190 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
2193 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2199 # 708 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2200 # 589 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2201 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2212 real(kind_real),
intent(in) :: array_in(:,:,:)
2213 real(kind_real),
intent(out) :: array_out(:)
2214 logical,
intent(in),
optional :: trans_in
2215 logical,
intent(in),
optional :: trans_out
2216 logical,
intent(in),
optional :: nn
2219 integer :: nl_in,nl_out
2220 integer :: shp_out(1)
2222 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2223 logical :: ltrans_in,ltrans_out,lnn
2236 if (
present(trans_in)) ltrans_in = trans_in
2237 ltrans_out = .false.
2238 if (
present(trans_out)) ltrans_out = trans_out
2240 if (
present(nn)) lnn = nn
2243 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2245 nl_in =
size(array_in,1)
2247 nl_in =
size(array_in,3)
2249 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2250 # 641 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2252 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2253 bint%bump%geom%nl0 = nl_in
2256 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2257 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2258 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2262 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2263 # 666 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2266 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
2268 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
2271 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2274 if (bint%bump%geom%same_grid)
then
2275 call bint%apply_interp(vec_in,vec_out,lnn)
2277 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2278 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2282 shp_out = shape(array_out)
2283 array_out = vec_out(:,1)
2284 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2285 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2291 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2302 real(kind_real),
intent(in) :: array_in(:,:,:)
2303 real(kind_real),
intent(out) :: array_out(:,:)
2304 logical,
intent(in),
optional :: trans_in
2305 logical,
intent(in),
optional :: trans_out
2306 logical,
intent(in),
optional :: nn
2309 integer :: nl_in,nl_out
2310 integer :: shp_out(2)
2312 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2313 logical :: ltrans_in,ltrans_out,lnn
2326 if (
present(trans_in)) ltrans_in = trans_in
2327 ltrans_out = .false.
2328 if (
present(trans_out)) ltrans_out = trans_out
2330 if (
present(nn)) lnn = nn
2333 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2335 nl_in =
size(array_in,1)
2337 nl_in =
size(array_in,3)
2339 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2340 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2341 if (ltrans_out)
then
2342 nl_out =
size(array_out,1)
2344 nl_out =
size(array_out,2)
2346 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2347 bint%bump%geom%nl0 = nl_in
2350 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2351 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2352 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2356 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2357 # 666 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2360 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
2362 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
2365 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2368 if (bint%bump%geom%same_grid)
then
2369 call bint%apply_interp(vec_in,vec_out,lnn)
2371 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2372 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2376 shp_out = shape(array_out)
2378 # 687 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2379 if (ltrans_out)
then
2380 array_out = transpose(vec_out)
2384 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2385 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2391 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2402 real(kind_real),
intent(in) :: array_in(:,:,:)
2403 real(kind_real),
intent(out) :: array_out(:,:,:)
2404 logical,
intent(in),
optional :: trans_in
2405 logical,
intent(in),
optional :: trans_out
2406 logical,
intent(in),
optional :: nn
2409 integer :: nl_in,nl_out
2410 integer :: shp_out(3)
2412 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2413 logical :: ltrans_in,ltrans_out,lnn
2426 if (
present(trans_in)) ltrans_in = trans_in
2427 ltrans_out = .false.
2428 if (
present(trans_out)) ltrans_out = trans_out
2430 if (
present(nn)) lnn = nn
2433 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2435 nl_in =
size(array_in,1)
2437 nl_in =
size(array_in,3)
2439 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2440 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2441 if (ltrans_out)
then
2442 nl_out =
size(array_out,1)
2444 nl_out =
size(array_out,3)
2446 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2447 bint%bump%geom%nl0 = nl_in
2450 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2451 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2452 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2456 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2457 # 666 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2460 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
2462 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
2465 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2468 if (bint%bump%geom%same_grid)
then
2469 call bint%apply_interp(vec_in,vec_out,lnn)
2471 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2472 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2476 shp_out = shape(array_out)
2478 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2479 # 694 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2481 if (ltrans_out)
then
2482 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
2484 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
2487 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2493 # 708 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2494 # 709 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2495 # 588 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2496 # 589 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2497 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2508 logical,
intent(in) :: array_in(:)
2509 logical,
intent(out) :: array_out(:)
2510 logical,
intent(in),
optional :: trans_in
2511 logical,
intent(in),
optional :: trans_out
2512 logical,
intent(in),
optional :: nn
2515 integer :: nl_in,nl_out
2516 integer :: shp_out(1)
2518 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2519 logical :: ltrans_in,ltrans_out,lnn
2532 if (
present(trans_in)) ltrans_in = trans_in
2533 ltrans_out = .false.
2534 if (
present(trans_out)) ltrans_out = trans_out
2536 if (
present(nn)) lnn = nn
2539 # 632 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2541 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2542 # 641 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2544 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2545 bint%bump%geom%nl0 = nl_in
2548 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2549 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2550 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2553 vec_in(:,1) = array_in
2554 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2555 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2558 if (bint%bump%geom%same_grid)
then
2559 call bint%apply_interp(vec_in,vec_out,lnn)
2561 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2562 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2566 shp_out = shape(array_out)
2567 array_out = vec_out(:,1)
2568 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2569 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2575 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2586 logical,
intent(in) :: array_in(:)
2587 logical,
intent(out) :: array_out(:,:)
2588 logical,
intent(in),
optional :: trans_in
2589 logical,
intent(in),
optional :: trans_out
2590 logical,
intent(in),
optional :: nn
2593 integer :: nl_in,nl_out
2594 integer :: shp_out(2)
2596 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2597 logical :: ltrans_in,ltrans_out,lnn
2610 if (
present(trans_in)) ltrans_in = trans_in
2611 ltrans_out = .false.
2612 if (
present(trans_out)) ltrans_out = trans_out
2614 if (
present(nn)) lnn = nn
2617 # 632 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2619 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2620 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2621 if (ltrans_out)
then
2622 nl_out =
size(array_out,1)
2624 nl_out =
size(array_out,2)
2626 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2627 bint%bump%geom%nl0 = nl_in
2630 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2631 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2632 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2635 vec_in(:,1) = array_in
2636 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2637 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2640 if (bint%bump%geom%same_grid)
then
2641 call bint%apply_interp(vec_in,vec_out,lnn)
2643 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2644 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2648 shp_out = shape(array_out)
2650 # 687 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2651 if (ltrans_out)
then
2652 array_out = transpose(vec_out)
2656 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2657 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2663 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2674 logical,
intent(in) :: array_in(:)
2675 logical,
intent(out) :: array_out(:,:,:)
2676 logical,
intent(in),
optional :: trans_in
2677 logical,
intent(in),
optional :: trans_out
2678 logical,
intent(in),
optional :: nn
2681 integer :: nl_in,nl_out
2682 integer :: shp_out(3)
2684 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2685 logical :: ltrans_in,ltrans_out,lnn
2698 if (
present(trans_in)) ltrans_in = trans_in
2699 ltrans_out = .false.
2700 if (
present(trans_out)) ltrans_out = trans_out
2702 if (
present(nn)) lnn = nn
2705 # 632 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2707 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2708 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2709 if (ltrans_out)
then
2710 nl_out =
size(array_out,1)
2712 nl_out =
size(array_out,3)
2714 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2715 bint%bump%geom%nl0 = nl_in
2718 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2719 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2720 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2723 vec_in(:,1) = array_in
2724 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2725 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2728 if (bint%bump%geom%same_grid)
then
2729 call bint%apply_interp(vec_in,vec_out,lnn)
2731 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2732 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2736 shp_out = shape(array_out)
2738 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2739 # 694 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2741 if (ltrans_out)
then
2742 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
2744 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
2747 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2753 # 708 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2754 # 589 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2755 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2766 logical,
intent(in) :: array_in(:,:)
2767 logical,
intent(out) :: array_out(:)
2768 logical,
intent(in),
optional :: trans_in
2769 logical,
intent(in),
optional :: trans_out
2770 logical,
intent(in),
optional :: nn
2773 integer :: nl_in,nl_out
2774 integer :: shp_out(1)
2776 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2777 logical :: ltrans_in,ltrans_out,lnn
2790 if (
present(trans_in)) ltrans_in = trans_in
2791 ltrans_out = .false.
2792 if (
present(trans_out)) ltrans_out = trans_out
2794 if (
present(nn)) lnn = nn
2797 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2799 nl_in =
size(array_in,1)
2801 nl_in =
size(array_in,2)
2803 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2804 # 641 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2806 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2807 bint%bump%geom%nl0 = nl_in
2810 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2811 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2812 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2816 # 659 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2818 vec_in = transpose(array_in)
2822 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2823 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2826 if (bint%bump%geom%same_grid)
then
2827 call bint%apply_interp(vec_in,vec_out,lnn)
2829 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2830 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2834 shp_out = shape(array_out)
2835 array_out = vec_out(:,1)
2836 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2837 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2843 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2854 logical,
intent(in) :: array_in(:,:)
2855 logical,
intent(out) :: array_out(:,:)
2856 logical,
intent(in),
optional :: trans_in
2857 logical,
intent(in),
optional :: trans_out
2858 logical,
intent(in),
optional :: nn
2861 integer :: nl_in,nl_out
2862 integer :: shp_out(2)
2864 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2865 logical :: ltrans_in,ltrans_out,lnn
2878 if (
present(trans_in)) ltrans_in = trans_in
2879 ltrans_out = .false.
2880 if (
present(trans_out)) ltrans_out = trans_out
2882 if (
present(nn)) lnn = nn
2885 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2887 nl_in =
size(array_in,1)
2889 nl_in =
size(array_in,2)
2891 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2892 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2893 if (ltrans_out)
then
2894 nl_out =
size(array_out,1)
2896 nl_out =
size(array_out,2)
2898 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2899 bint%bump%geom%nl0 = nl_in
2902 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2903 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2904 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2908 # 659 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2910 vec_in = transpose(array_in)
2914 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2915 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2918 if (bint%bump%geom%same_grid)
then
2919 call bint%apply_interp(vec_in,vec_out,lnn)
2921 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2922 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2926 shp_out = shape(array_out)
2928 # 687 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2929 if (ltrans_out)
then
2930 array_out = transpose(vec_out)
2934 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2935 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2941 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2952 logical,
intent(in) :: array_in(:,:)
2953 logical,
intent(out) :: array_out(:,:,:)
2954 logical,
intent(in),
optional :: trans_in
2955 logical,
intent(in),
optional :: trans_out
2956 logical,
intent(in),
optional :: nn
2959 integer :: nl_in,nl_out
2960 integer :: shp_out(3)
2962 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2963 logical :: ltrans_in,ltrans_out,lnn
2976 if (
present(trans_in)) ltrans_in = trans_in
2977 ltrans_out = .false.
2978 if (
present(trans_out)) ltrans_out = trans_out
2980 if (
present(nn)) lnn = nn
2983 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2985 nl_in =
size(array_in,1)
2987 nl_in =
size(array_in,2)
2989 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2990 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2991 if (ltrans_out)
then
2992 nl_out =
size(array_out,1)
2994 nl_out =
size(array_out,3)
2996 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2997 bint%bump%geom%nl0 = nl_in
3000 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3001 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3002 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3006 # 659 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3008 vec_in = transpose(array_in)
3012 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3013 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3016 if (bint%bump%geom%same_grid)
then
3017 call bint%apply_interp(vec_in,vec_out,lnn)
3019 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
3020 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
3024 shp_out = shape(array_out)
3026 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3027 # 694 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3029 if (ltrans_out)
then
3030 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
3032 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
3035 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3041 # 708 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3042 # 589 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3043 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3054 logical,
intent(in) :: array_in(:,:,:)
3055 logical,
intent(out) :: array_out(:)
3056 logical,
intent(in),
optional :: trans_in
3057 logical,
intent(in),
optional :: trans_out
3058 logical,
intent(in),
optional :: nn
3061 integer :: nl_in,nl_out
3062 integer :: shp_out(1)
3064 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3065 logical :: ltrans_in,ltrans_out,lnn
3078 if (
present(trans_in)) ltrans_in = trans_in
3079 ltrans_out = .false.
3080 if (
present(trans_out)) ltrans_out = trans_out
3082 if (
present(nn)) lnn = nn
3085 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3087 nl_in =
size(array_in,1)
3089 nl_in =
size(array_in,3)
3091 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3092 # 641 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3094 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3095 bint%bump%geom%nl0 = nl_in
3098 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3099 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3100 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3104 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3105 # 666 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3108 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
3110 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
3113 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3116 if (bint%bump%geom%same_grid)
then
3117 call bint%apply_interp(vec_in,vec_out,lnn)
3119 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
3120 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
3124 shp_out = shape(array_out)
3125 array_out = vec_out(:,1)
3126 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3127 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3133 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3144 logical,
intent(in) :: array_in(:,:,:)
3145 logical,
intent(out) :: array_out(:,:)
3146 logical,
intent(in),
optional :: trans_in
3147 logical,
intent(in),
optional :: trans_out
3148 logical,
intent(in),
optional :: nn
3151 integer :: nl_in,nl_out
3152 integer :: shp_out(2)
3154 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3155 logical :: ltrans_in,ltrans_out,lnn
3168 if (
present(trans_in)) ltrans_in = trans_in
3169 ltrans_out = .false.
3170 if (
present(trans_out)) ltrans_out = trans_out
3172 if (
present(nn)) lnn = nn
3175 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3177 nl_in =
size(array_in,1)
3179 nl_in =
size(array_in,3)
3181 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3182 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3183 if (ltrans_out)
then
3184 nl_out =
size(array_out,1)
3186 nl_out =
size(array_out,2)
3188 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3189 bint%bump%geom%nl0 = nl_in
3192 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3193 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3194 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3198 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3199 # 666 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3202 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
3204 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
3207 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3210 if (bint%bump%geom%same_grid)
then
3211 call bint%apply_interp(vec_in,vec_out,lnn)
3213 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
3214 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
3218 shp_out = shape(array_out)
3220 # 687 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3221 if (ltrans_out)
then
3222 array_out = transpose(vec_out)
3226 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3227 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3233 # 590 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3244 logical,
intent(in) :: array_in(:,:,:)
3245 logical,
intent(out) :: array_out(:,:,:)
3246 logical,
intent(in),
optional :: trans_in
3247 logical,
intent(in),
optional :: trans_out
3248 logical,
intent(in),
optional :: nn
3251 integer :: nl_in,nl_out
3252 integer :: shp_out(3)
3254 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3255 logical :: ltrans_in,ltrans_out,lnn
3268 if (
present(trans_in)) ltrans_in = trans_in
3269 ltrans_out = .false.
3270 if (
present(trans_out)) ltrans_out = trans_out
3272 if (
present(nn)) lnn = nn
3275 # 634 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3277 nl_in =
size(array_in,1)
3279 nl_in =
size(array_in,3)
3281 # 640 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3282 # 643 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3283 if (ltrans_out)
then
3284 nl_out =
size(array_out,1)
3286 nl_out =
size(array_out,3)
3288 # 649 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3289 bint%bump%geom%nl0 = nl_in
3292 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3293 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3294 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3298 # 665 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3299 # 666 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3302 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
3304 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
3307 # 674 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3310 if (bint%bump%geom%same_grid)
then
3311 call bint%apply_interp(vec_in,vec_out,lnn)
3313 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
3314 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
3318 shp_out = shape(array_out)
3320 # 693 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3321 # 694 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3323 if (ltrans_out)
then
3324 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
3326 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
3329 # 702 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3335 # 708 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3336 # 709 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3337 # 710 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3339 # 712 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3350 integer(kind_int),
intent(in) :: array_in(bint%bump%geom%nc0a,bint%bump%geom%nl0)
3351 integer(kind_int),
intent(out) :: array_out(bint%nouta,bint%bump%geom%nl0)
3352 logical,
intent(in),
optional :: nn
3356 integer(kind_int),
allocatable :: array_in_ext(:,:)
3370 if (
present(nn)) lnn = nn
3373 allocate(array_in_ext(bint%nc0b,bint%bump%geom%nl0))
3376 call bint%com%ext(bint%bump%mpl,array_in,array_in_ext)
3378 if (bint%nouta > 0)
then
3379 # 764 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3381 array_out = array_in_ext(bint%nn_index,:)
3382 # 767 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3386 deallocate(array_in_ext)
3392 # 712 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3403 real(kind_real),
intent(in) :: array_in(bint%bump%geom%nc0a,bint%bump%geom%nl0)
3404 real(kind_real),
intent(out) :: array_out(bint%nouta,bint%bump%geom%nl0)
3405 logical,
intent(in),
optional :: nn
3409 real(kind_real),
allocatable :: array_in_ext(:,:)
3423 if (
present(nn)) lnn = nn
3426 allocate(array_in_ext(bint%nc0b,bint%bump%geom%nl0))
3429 call bint%com%ext(bint%bump%mpl,array_in,array_in_ext)
3431 if (bint%nouta > 0)
then
3432 # 752 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3435 array_out = array_in_ext(bint%nn_index,:)
3439 do ilev=1,bint%bump%geom%nl0
3440 call bint%h%apply(bint%bump%mpl,array_in_ext(:,ilev),array_out(:,ilev))
3444 # 767 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3448 deallocate(array_in_ext)
3454 # 712 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3465 logical,
intent(in) :: array_in(bint%bump%geom%nc0a,bint%bump%geom%nl0)
3466 logical,
intent(out) :: array_out(bint%nouta,bint%bump%geom%nl0)
3467 logical,
intent(in),
optional :: nn
3471 logical,
allocatable :: array_in_ext(:,:)
3485 if (
present(nn)) lnn = nn
3488 allocate(array_in_ext(bint%nc0b,bint%bump%geom%nl0))
3491 call bint%com%ext(bint%bump%mpl,array_in,array_in_ext)
3493 if (bint%nouta > 0)
then
3494 # 764 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3496 array_out = array_in_ext(bint%nn_index,:)
3497 # 767 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3501 deallocate(array_in_ext)
3507 # 777 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3528 real(kind_real),
allocatable :: array_in_mga(:,:),array_in_c0a(:,:),array_out(:,:)
3529 character(len=max_string) :: fieldname
3530 type(atlas_field) :: afield_in,afield_out
3542 allocate(array_in_mga(bint%bump%geom%nmga,bint%bump%geom%nl0))
3543 if (.not.bint%bump%geom%same_grid)
allocate(array_in_c0a(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3544 allocate(array_out(bint%nouta,bint%bump%geom%nl0))
3546 do ifield=1,fieldset_out%size()
3548 afield_out = fieldset_out%field(ifield)
3549 fieldname = afield_out%name()
3552 if (fieldset_in%has_field(fieldname))
then
3553 afield_in = fieldset_in%field(name=fieldname)
3555 afield_in = bint%afunctionspace_in%create_field(name=fieldname,kind=atlas_real(kind_real),levels=bint%bump%geom%nl0)
3556 call fieldset_in%add(afield_in)
3561 if (bint%bump%geom%same_grid)
then
3563 call bint%apply_interp_ad(array_out,array_in_mga)
3566 call bint%apply_interp_ad(array_out,array_in_c0a)
3569 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,array_in_c0a,array_in_mga)
3576 call afield_in%final()
3577 call afield_out%final()
3581 deallocate(array_in_mga)
3582 if (.not.bint%bump%geom%same_grid)
deallocate(array_in_c0a)
3583 deallocate(array_out)
3590 # 860 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3591 # 861 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3602 real(kind_real),
intent(in) :: array_out(:)
3603 real(kind_real),
intent(inout) :: array_in(:)
3604 logical,
intent(in),
optional :: trans_out
3605 logical,
intent(in),
optional :: trans_in
3608 integer :: nl_in,nl_out
3609 integer :: shp_in(1)
3611 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3612 logical :: ltrans_in,ltrans_out
3624 ltrans_out = .false.
3625 if (
present(trans_out)) ltrans_out = trans_out
3627 if (
present(trans_in)) ltrans_in = trans_in
3630 # 900 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3632 # 908 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3633 # 909 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3635 # 917 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3636 bint%bump%geom%nl0 = nl_in
3639 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3640 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3641 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3644 vec_out(:,1) = array_out
3645 # 933 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3646 # 942 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3649 if (bint%bump%geom%same_grid)
then
3650 call bint%apply_interp_ad(vec_out,vec_in)
3652 call bint%apply_interp_ad(vec_out,vec_in_tmp)
3653 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
3657 shp_in = shape(array_in)
3658 array_in = vec_in(:,1)
3659 # 961 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3660 # 970 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3664 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
3671 # 861 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3682 real(kind_real),
intent(in) :: array_out(:)
3683 real(kind_real),
intent(inout) :: array_in(:,:)
3684 logical,
intent(in),
optional :: trans_out
3685 logical,
intent(in),
optional :: trans_in
3688 integer :: nl_in,nl_out
3689 integer :: shp_in(2)
3691 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3692 logical :: ltrans_in,ltrans_out
3704 ltrans_out = .false.
3705 if (
present(trans_out)) ltrans_out = trans_out
3707 if (
present(trans_in)) ltrans_in = trans_in
3710 # 900 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3712 # 908 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3713 # 911 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3715 nl_in =
size(array_in,1)
3717 nl_in =
size(array_in,2)
3719 # 917 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3720 bint%bump%geom%nl0 = nl_in
3723 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3724 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3725 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3728 vec_out(:,1) = array_out
3729 # 933 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3730 # 942 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3733 if (bint%bump%geom%same_grid)
then
3734 call bint%apply_interp_ad(vec_out,vec_in)
3736 call bint%apply_interp_ad(vec_out,vec_in_tmp)
3737 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
3741 shp_in = shape(array_in)
3743 # 955 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3745 array_in = transpose(vec_in)
3749 # 961 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3750 # 970 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3754 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
3761 # 861 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3772 real(kind_real),
intent(in) :: array_out(:)
3773 real(kind_real),
intent(inout) :: array_in(:,:,:)
3774 logical,
intent(in),
optional :: trans_out
3775 logical,
intent(in),
optional :: trans_in
3778 integer :: nl_in,nl_out
3779 integer :: shp_in(3)
3781 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3782 logical :: ltrans_in,ltrans_out
3794 ltrans_out = .false.
3795 if (
present(trans_out)) ltrans_out = trans_out
3797 if (
present(trans_in)) ltrans_in = trans_in
3800 # 900 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3802 # 908 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3803 # 911 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3805 nl_in =
size(array_in,1)
3807 nl_in =
size(array_in,3)
3809 # 917 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3810 bint%bump%geom%nl0 = nl_in
3813 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3814 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3815 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3818 vec_out(:,1) = array_out
3819 # 933 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3820 # 942 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3823 if (bint%bump%geom%same_grid)
then
3824 call bint%apply_interp_ad(vec_out,vec_in)
3826 call bint%apply_interp_ad(vec_out,vec_in_tmp)
3827 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
3831 shp_in = shape(array_in)
3833 # 961 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3834 # 962 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3837 array_in(:,:,il) = transpose(reshape(vec_in(:,il),(/shp_in(2),shp_in(1)/)))
3839 array_in(:,:,il) = reshape(vec_in(:,il),shp_in(1:2))
3842 # 970 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3846 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
3853 # 981 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3854 # 860 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3855 # 861 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3866 real(kind_real),
intent(in) :: array_out(:,:)
3867 real(kind_real),
intent(inout) :: array_in(:)
3868 logical,
intent(in),
optional :: trans_out
3869 logical,
intent(in),
optional :: trans_in
3872 integer :: nl_in,nl_out
3873 integer :: shp_in(1)
3875 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3876 logical :: ltrans_in,ltrans_out
3888 ltrans_out = .false.
3889 if (
present(trans_out)) ltrans_out = trans_out
3891 if (
present(trans_in)) ltrans_in = trans_in
3894 # 902 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3895 if (ltrans_out)
then
3896 nl_out =
size(array_out,1)
3898 nl_out =
size(array_out,2)
3900 # 908 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3901 # 909 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3903 # 917 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3904 bint%bump%geom%nl0 = nl_in
3907 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3908 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3909 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3913 # 927 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3914 if (ltrans_out)
then
3915 vec_out = transpose(array_out)
3919 # 933 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3920 # 942 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3923 if (bint%bump%geom%same_grid)
then
3924 call bint%apply_interp_ad(vec_out,vec_in)
3926 call bint%apply_interp_ad(vec_out,vec_in_tmp)
3927 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
3931 shp_in = shape(array_in)
3932 array_in = vec_in(:,1)
3933 # 961 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3934 # 970 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3938 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
3945 # 861 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3956 real(kind_real),
intent(in) :: array_out(:,:)
3957 real(kind_real),
intent(inout) :: array_in(:,:)
3958 logical,
intent(in),
optional :: trans_out
3959 logical,
intent(in),
optional :: trans_in
3962 integer :: nl_in,nl_out
3963 integer :: shp_in(2)
3965 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3966 logical :: ltrans_in,ltrans_out
3978 ltrans_out = .false.
3979 if (
present(trans_out)) ltrans_out = trans_out
3981 if (
present(trans_in)) ltrans_in = trans_in
3984 # 902 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3985 if (ltrans_out)
then
3986 nl_out =
size(array_out,1)
3988 nl_out =
size(array_out,2)
3990 # 908 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3991 # 911 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3993 nl_in =
size(array_in,1)
3995 nl_in =
size(array_in,2)
3997 # 917 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3998 bint%bump%geom%nl0 = nl_in
4001 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
4002 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
4003 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
4007 # 927 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4008 if (ltrans_out)
then
4009 vec_out = transpose(array_out)
4013 # 933 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4014 # 942 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4017 if (bint%bump%geom%same_grid)
then
4018 call bint%apply_interp_ad(vec_out,vec_in)
4020 call bint%apply_interp_ad(vec_out,vec_in_tmp)
4021 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4025 shp_in = shape(array_in)
4027 # 955 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4029 array_in = transpose(vec_in)
4033 # 961 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4034 # 970 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4038 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4045 # 861 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4056 real(kind_real),
intent(in) :: array_out(:,:)
4057 real(kind_real),
intent(inout) :: array_in(:,:,:)
4058 logical,
intent(in),
optional :: trans_out
4059 logical,
intent(in),
optional :: trans_in
4062 integer :: nl_in,nl_out
4063 integer :: shp_in(3)
4065 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
4066 logical :: ltrans_in,ltrans_out
4078 ltrans_out = .false.
4079 if (
present(trans_out)) ltrans_out = trans_out
4081 if (
present(trans_in)) ltrans_in = trans_in
4084 # 902 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4085 if (ltrans_out)
then
4086 nl_out =
size(array_out,1)
4088 nl_out =
size(array_out,2)
4090 # 908 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4091 # 911 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4093 nl_in =
size(array_in,1)
4095 nl_in =
size(array_in,3)
4097 # 917 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4098 bint%bump%geom%nl0 = nl_in
4101 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
4102 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
4103 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
4107 # 927 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4108 if (ltrans_out)
then
4109 vec_out = transpose(array_out)
4113 # 933 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4114 # 942 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4117 if (bint%bump%geom%same_grid)
then
4118 call bint%apply_interp_ad(vec_out,vec_in)
4120 call bint%apply_interp_ad(vec_out,vec_in_tmp)
4121 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4125 shp_in = shape(array_in)
4127 # 961 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4128 # 962 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4131 array_in(:,:,il) = transpose(reshape(vec_in(:,il),(/shp_in(2),shp_in(1)/)))
4133 array_in(:,:,il) = reshape(vec_in(:,il),shp_in(1:2))
4136 # 970 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4140 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4147 # 981 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4148 # 860 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4149 # 861 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4160 real(kind_real),
intent(in) :: array_out(:,:,:)
4161 real(kind_real),
intent(inout) :: array_in(:)
4162 logical,
intent(in),
optional :: trans_out
4163 logical,
intent(in),
optional :: trans_in
4166 integer :: nl_in,nl_out
4167 integer :: shp_in(1)
4169 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
4170 logical :: ltrans_in,ltrans_out
4182 ltrans_out = .false.
4183 if (
present(trans_out)) ltrans_out = trans_out
4185 if (
present(trans_in)) ltrans_in = trans_in
4188 # 902 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4189 if (ltrans_out)
then
4190 nl_out =
size(array_out,1)
4192 nl_out =
size(array_out,3)
4194 # 908 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4195 # 909 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4197 # 917 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4198 bint%bump%geom%nl0 = nl_in
4201 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
4202 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
4203 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
4207 # 933 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4208 # 934 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4210 if (ltrans_out)
then
4211 vec_out(:,il) = reshape(transpose(array_out(:,:,il)),(/bint%nouta/))
4213 vec_out(:,il) = reshape(array_out(:,:,il),(/bint%nouta/))
4216 # 942 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4219 if (bint%bump%geom%same_grid)
then
4220 call bint%apply_interp_ad(vec_out,vec_in)
4222 call bint%apply_interp_ad(vec_out,vec_in_tmp)
4223 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4227 shp_in = shape(array_in)
4228 array_in = vec_in(:,1)
4229 # 961 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4230 # 970 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4234 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4241 # 861 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4252 real(kind_real),
intent(in) :: array_out(:,:,:)
4253 real(kind_real),
intent(inout) :: array_in(:,:)
4254 logical,
intent(in),
optional :: trans_out
4255 logical,
intent(in),
optional :: trans_in
4258 integer :: nl_in,nl_out
4259 integer :: shp_in(2)
4261 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
4262 logical :: ltrans_in,ltrans_out
4274 ltrans_out = .false.
4275 if (
present(trans_out)) ltrans_out = trans_out
4277 if (
present(trans_in)) ltrans_in = trans_in
4280 # 902 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4281 if (ltrans_out)
then
4282 nl_out =
size(array_out,1)
4284 nl_out =
size(array_out,3)
4286 # 908 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4287 # 911 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4289 nl_in =
size(array_in,1)
4291 nl_in =
size(array_in,2)
4293 # 917 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4294 bint%bump%geom%nl0 = nl_in
4297 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
4298 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
4299 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
4303 # 933 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4304 # 934 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4306 if (ltrans_out)
then
4307 vec_out(:,il) = reshape(transpose(array_out(:,:,il)),(/bint%nouta/))
4309 vec_out(:,il) = reshape(array_out(:,:,il),(/bint%nouta/))
4312 # 942 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4315 if (bint%bump%geom%same_grid)
then
4316 call bint%apply_interp_ad(vec_out,vec_in)
4318 call bint%apply_interp_ad(vec_out,vec_in_tmp)
4319 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4323 shp_in = shape(array_in)
4325 # 955 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4327 array_in = transpose(vec_in)
4331 # 961 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4332 # 970 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4336 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4343 # 861 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4354 real(kind_real),
intent(in) :: array_out(:,:,:)
4355 real(kind_real),
intent(inout) :: array_in(:,:,:)
4356 logical,
intent(in),
optional :: trans_out
4357 logical,
intent(in),
optional :: trans_in
4360 integer :: nl_in,nl_out
4361 integer :: shp_in(3)
4363 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
4364 logical :: ltrans_in,ltrans_out
4376 ltrans_out = .false.
4377 if (
present(trans_out)) ltrans_out = trans_out
4379 if (
present(trans_in)) ltrans_in = trans_in
4382 # 902 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4383 if (ltrans_out)
then
4384 nl_out =
size(array_out,1)
4386 nl_out =
size(array_out,3)
4388 # 908 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4389 # 911 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4391 nl_in =
size(array_in,1)
4393 nl_in =
size(array_in,3)
4395 # 917 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4396 bint%bump%geom%nl0 = nl_in
4399 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
4400 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
4401 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
4405 # 933 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4406 # 934 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4408 if (ltrans_out)
then
4409 vec_out(:,il) = reshape(transpose(array_out(:,:,il)),(/bint%nouta/))
4411 vec_out(:,il) = reshape(array_out(:,:,il),(/bint%nouta/))
4414 # 942 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4417 if (bint%bump%geom%same_grid)
then
4418 call bint%apply_interp_ad(vec_out,vec_in)
4420 call bint%apply_interp_ad(vec_out,vec_in_tmp)
4421 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4425 shp_in = shape(array_in)
4427 # 961 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4428 # 962 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4431 array_in(:,:,il) = transpose(reshape(vec_in(:,il),(/shp_in(2),shp_in(1)/)))
4433 array_in(:,:,il) = reshape(vec_in(:,il),shp_in(1:2))
4436 # 970 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4440 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4447 # 981 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4448 # 982 "/Users/miesch/JEDI/code/working_copy/internal/mpas-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4461 real(kind_real),
intent(in) :: array_out(bint%nouta,bint%bump%geom%nl0)
4462 real(kind_real),
intent(out) :: array_in(bint%bump%geom%nc0a,bint%bump%geom%nl0)
4466 real(kind_real) :: array_in_ext(bint%nc0b,bint%bump%geom%nl0)
4477 if (bint%nouta > 0)
then
4480 do ilev=1,bint%bump%geom%nl0
4481 call bint%h%apply_ad(bint%bump%mpl,array_out(:,ilev),array_in_ext(:,ilev))
4490 call bint%com%red(bint%bump%mpl,array_in_ext,array_in)
4518 call bint%geom_out%dealloc()
4546 call bint%deallocate_outgrid()
4547 call bint%h%dealloc()
4548 call bint%com%dealloc()
4549 call bint%bump%dealloc()
4580 bint%dummy_logical = .false.
Generic ranks, dimensions and types.
integer, parameter max_string
Maximum string size.
subroutine bint_apply_real_r1_r2(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_dummy_final(bint)
Dummy finalization.
subroutine bint_apply_ad_r3_r3(bint, array_out, array_in, trans_out, trans_in)
Apply interpolation operator adjoint.
subroutine bint_apply_logical_r1_r3(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_int_r1_r1(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_driver(bint, mpl, nam, geom)
Initialize BUMP to perform interpolation.
subroutine bint_apply_int_r2_r2(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_delete(bint)
Release all memory.
subroutine bint_apply_ad_r1_r3(bint, array_out, array_in, trans_out, trans_in)
Apply interpolation operator adjoint.
subroutine bint_apply_int_r2_r3(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_interp_int(bint, array_in, array_out, nn)
Low-level routine to apply the interpolation to a single field on a single level.
subroutine bint_apply_ad_r3_r1(bint, array_out, array_in, trans_out, trans_in)
Apply interpolation operator adjoint.
subroutine bint_apply_real_r3_r1(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_logical_r2_r2(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_int_r3_r2(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_real_r2_r3(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_logical_r3_r1(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_ad_r1_r1(bint, array_out, array_in, trans_out, trans_in)
Apply interpolation operator adjoint.
subroutine bint_apply_int_r1_r3(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_logical_r1_r1(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_logical_r2_r3(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_ad_r2_r3(bint, array_out, array_in, trans_out, trans_in)
Apply interpolation operator adjoint.
subroutine bint_apply(bint, fieldset_in, fieldset_out)
Apply interpolation If the fields that constitute the fieldset are not already allocated by the calle...
subroutine bint_apply_interp_logical(bint, array_in, array_out, nn)
Low-level routine to apply the interpolation to a single field on a single level.
subroutine bint_apply_logical_r3_r2(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_ad(bint, fieldset_out, fieldset_in)
Apply interpolator operator adjoint The caller can optionally pass this arguement as an empty fieldse...
subroutine bint_apply_ad_r2_r1(bint, array_out, array_in, trans_out, trans_in)
Apply interpolation operator adjoint.
subroutine bint_apply_int_r3_r1(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_int_r3_r3(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_ad_r3_r2(bint, array_out, array_in, trans_out, trans_in)
Apply interpolation operator adjoint.
subroutine bint_apply_logical_r1_r2(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_int_r2_r1(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_deallocate_outgrid(bint)
Release memory (partial) by deallocating output grid.
subroutine bint_apply_real_r1_r3(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_logical_r3_r3(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_interp_real(bint, array_in, array_out, nn)
Low-level routine to apply the interpolation to a single field on a single level.
subroutine bint_apply_logical_r2_r1(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_ad_r1_r2(bint, array_out, array_in, trans_out, trans_in)
Apply interpolation operator adjoint.
subroutine bint_apply_real_r3_r2(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_ad_r2_r2(bint, array_out, array_in, trans_out, trans_in)
Apply interpolation operator adjoint.
subroutine bint_apply_real_r2_r2(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_int_r1_r2(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_interp_ad(bint, array_out, array_in)
Low-level routine to apply the adjoint of the interpolation operator to a single field on a single le...
subroutine bint_apply_real_r1_r1(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_init(bint, comm, lon1d_in, lat1d_in, lon_in, lat_in, afunctionspace_in, lon1d_out, lat1d_out, lon_out, lat_out, afunctionspace_out, nl, fieldset, config)
Initialize interpolation object The input and output fields are ATLAS_FieldSet objects that are assum...
subroutine bint_apply_real_r3_r3(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
subroutine bint_apply_real_r2_r1(bint, array_in, array_out, trans_in, trans_out, nn)
Apply interpolation.
Subroutines/functions list.
Generic ranks, dimensions and types.
Subroutines/functions list.
Generic ranks, dimensions and types.
Subroutines/functions list.
Subroutines/functions list.
Generic ranks, dimensions and types.
Subroutines/functions list.