1 # 1 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2 # 1 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/../generics.fypp" 1
11 # 56 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/../generics.fypp"
12 # 2 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp" 2
13 # 1 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/../instrumentation.fypp" 1
14 # 1 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/../subr_list.fypp" 1
23 # 726 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/../subr_list.fypp"
24 # 2 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/../instrumentation.fypp" 2
33 # 112 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/../instrumentation.fypp"
34 # 3 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp" 2
50 use atlas_module,
only: atlas_functionspace,atlas_fieldset,atlas_field,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
87 type(atlas_functionspace) :: afunctionspace_in
88 type(atlas_functionspace) :: afunctionspace_out
102 integer,
allocatable :: nn_index(:)
105 logical :: dummy_logical
112 # 81 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
113 # 82 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
114 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
116 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
118 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
120 # 85 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
121 # 82 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
122 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
124 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
126 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
128 # 85 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
129 # 82 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
130 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
132 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
134 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
136 # 85 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
137 # 86 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
138 # 81 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
139 # 82 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
140 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
142 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
144 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
146 # 85 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
147 # 82 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
148 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
150 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
152 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
154 # 85 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
155 # 82 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
156 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
158 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
160 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
162 # 85 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
163 # 86 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
164 # 81 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
165 # 82 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
166 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
168 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
170 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
172 # 85 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
173 # 82 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
174 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
176 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
178 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
180 # 85 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
181 # 82 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
182 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
184 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
186 # 83 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
188 # 85 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
189 # 86 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
190 # 87 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
193 # 90 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
194 # 91 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
195 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
197 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
199 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
201 # 94 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
202 # 91 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
203 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
205 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
207 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
209 # 94 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
210 # 91 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
211 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
213 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
215 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
217 # 94 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
218 # 95 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
219 # 90 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
220 # 91 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
221 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
223 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
225 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
227 # 94 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
228 # 91 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
229 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
231 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
233 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
235 # 94 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
236 # 91 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
237 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
239 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
241 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
243 # 94 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
244 # 95 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
245 # 90 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
246 # 91 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
247 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
249 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
251 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
253 # 94 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
254 # 91 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
255 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
257 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
259 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
261 # 94 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
262 # 91 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
263 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
265 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
267 # 92 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
269 # 94 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
270 # 95 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
271 # 96 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
272 # 97 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
274 # 97 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
276 # 97 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
278 # 99 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
280 generic,
public :: apply_interp => &
281 # 102 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
283 # 102 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
285 # 102 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
287 # 104 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
289 # 106 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
290 # 107 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
292 # 107 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
294 # 107 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
296 # 109 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
297 # 106 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
298 # 107 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
300 # 107 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
302 # 107 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
304 # 109 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
305 # 106 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
306 # 107 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
308 # 107 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
310 # 107 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
312 # 109 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
313 # 110 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
316 # 113 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
317 # 114 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
319 # 114 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
321 # 114 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
323 # 116 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
324 # 113 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
325 # 114 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
327 # 114 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
329 # 114 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
331 # 116 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
332 # 113 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
333 # 114 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
335 # 114 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
337 # 114 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
339 # 116 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
340 # 117 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
357 & lon1d_in,lat1d_in, &
359 & afunctionspace_in, &
360 & lon1d_out,lat1d_out, &
362 & afunctionspace_out, &
369 type(fckit_mpi_comm),
intent(in) :: comm
370 real(kind_real),
intent(in),
optional :: lon1d_in(:)
371 real(kind_real),
intent(in),
optional :: lat1d_in(:)
372 real(kind_real),
intent(in),
optional :: lon_in(:)
373 real(kind_real),
intent(in),
optional :: lat_in(:)
374 type(atlas_functionspace),
intent(in),
optional :: afunctionspace_in
375 real(kind_real),
intent(in),
optional :: lon1d_out(:)
376 real(kind_real),
intent(in),
optional :: lat1d_out(:)
377 real(kind_real),
intent(in),
optional :: lon_out(:)
378 real(kind_real),
intent(in),
optional :: lat_out(:)
379 type(atlas_functionspace),
intent(in),
optional :: afunctionspace_out
380 integer,
intent(in),
optional :: nl
382 type(fckit_configuration),
intent(in),
optional :: config
385 integer :: msvali,inode,ilon,ilat
386 real(kind_real) :: msvalr
387 real(kind_real),
allocatable :: lon(:),lat(:)
388 type(fckit_configuration) :: bump_config
401 call bint%bump%nam%init(comm%size())
404 bint%bump%nam%prefix =
'bump_interpolator'
405 bint%bump%nam%datadir =
'testdata'
406 bint%bump%nam%verbosity =
'none'
407 if (
present(nl))
then
408 bint%bump%nam%nl = nl
413 bint%bump%nam%variables(1) =
'var'
414 bint%bump%nam%interp_type =
'mesh_based'
418 msvalr = -999.0_kind_real
420 if (
present(config))
then
422 if (config%has(
'bump'))
then
423 call config%get_or_die(
'bump',bump_config)
424 call bint%bump%nam%from_conf(comm,bump_config)
428 if (config%has(
'nlevels'))
call config%get_or_die(
'nlevels',bint%bump%nam%nl)
431 if (config%has(
'missingvalue_int'))
call config%get_or_die(
'missingvalue_int',msvali)
432 if (config%has(
'missingvalue_real'))
call config%get_or_die(
'missingvalue_real',msvalr)
436 if (
present(lon1d_in).and.
present(lat1d_in))
then
437 allocate(lon(
size(lon1d_in)*
size(lat1d_in)))
438 allocate(lat(
size(lon1d_in)*
size(lat1d_in)))
440 do ilat=1,
size(lat1d_in)
441 do ilon=1,
size(lon1d_in)
443 lon(inode) = lon1d_in(ilon)
444 lat(inode) = lat1d_in(ilat)
450 elseif (
present(lon_in).and.
present(lat_in))
then
451 if (
size(lon_in)/=
size(lat_in))
then
452 call fckit_log%info(
'input longitudes and latitudes have different sizes')
456 elseif (
present(afunctionspace_in))
then
457 bint%afunctionspace_in = afunctionspace_in
459 call fckit_log%info(
'output ATLAS function space or lon/lat vector should be provided')
464 if (
present(lon1d_out).and.
present(lat1d_out))
then
465 allocate(lon(
size(lon1d_out)*
size(lat1d_out)))
466 allocate(lat(
size(lon1d_out)*
size(lat1d_out)))
468 do ilat=1,
size(lat1d_out)
469 do ilon=1,
size(lon1d_out)
471 lon(inode) = lon1d_out(ilon)
472 lat(inode) = lat1d_out(ilat)
478 elseif (
present(lon_out).and.
present(lat_out))
then
479 if (
size(lon_out)/=
size(lat_out))
then
480 call fckit_log%info(
'output longitudes and latitudes have different sizes')
484 elseif (
present(afunctionspace_out))
then
485 bint%afunctionspace_out = afunctionspace_out
487 call fckit_log%info(
'output ATLAS function space or lon/lat vector should be provided')
497 if (
present(masks))
then
500 lmasks = atlas_fieldset()
502 call bint%bump%setup(comm,bint%afunctionspace_in,lmasks,msvali=msvali,msvalr=msvalr)
505 call fckit_log%info(
'-------------------------------------------------------------------')
506 call fckit_log%info(
'--- Initialize output grid')
509 bint%geom_out%nl0 = bint%bump%nam%nl
510 call bint%geom_out%from_atlas(bint%bump%mpl,bint%afunctionspace_out)
511 bint%nouta =
size(bint%geom_out%lon_mga)
514 call bint%bump%run_drivers
517 call fckit_log%info(
'-------------------------------------------------------------------')
518 call fckit_log%info(
'--- Run bump_interpolation driver')
519 call bint%driver(bint%bump%mpl,bint%bump%rng,bint%bump%nam,bint%bump%geom)
520 if (bint%bump%nam%default_seed)
call bint%bump%rng%reseed(bint%bump%mpl)
523 call fckit_log%info(
'-------------------------------------------------------------------')
524 call fckit_log%info(
'--- Release memory (partial)')
525 call bint%bump%partial_dealloc
548 integer :: iouta,iproc,i_s,ic0,ic0u,jc0u,ic0b,ic0a,nouta_eff
549 integer :: nout_eff,nn_index(1),proc_to_nouta(mpl%nproc),proc_to_nouta_eff(mpl%nproc)
550 integer :: c0u_to_c0b(geom%nc0u)
551 integer,
allocatable :: c0b_to_c0(:)
552 real(kind_real) :: nn_dist(1),N_max,C_max
553 real(kind_real),
allocatable :: maxweight(:)
554 logical :: maskouta(bint%nouta),lcheck_nc0b(geom%nc0)
566 if (any(.not.geom%myuniverse))
call mpl%abort(
'bint_driver',
'universe should be global for interpolation')
569 if (bint%nouta > 0)
then
570 do iouta=1,bint%nouta
571 if (trim(bint%bump%nam%interp_type)==
'mesh_based')
then
572 call geom%mesh_c0u%inside(mpl,bint%geom_out%lon_mga(iouta),bint%geom_out%lat_mga(iouta),maskouta(iouta))
573 elseif (trim(bint%bump%nam%interp_type)==
'tree_based')
then
574 call geom%tree_c0u%inside(bint%geom_out%lon_mga(iouta),bint%geom_out%lat_mga(iouta),maskouta(iouta))
576 if (.not.maskouta(iouta))
then
578 call geom%tree_c0u%find_nearest_neighbors(bint%geom_out%lon_mga(iouta),bint%geom_out%lat_mga(iouta), &
579 & 1,nn_index,nn_dist)
580 if (nn_dist(1)<
rth) maskouta(iouta) = .true.
583 nouta_eff = count(maskouta)
589 call mpl%f_comm%allgather(bint%nouta,proc_to_nouta)
590 call mpl%f_comm%allgather(nouta_eff,proc_to_nouta_eff)
591 bint%nout = sum(proc_to_nouta)
592 nout_eff = sum(proc_to_nouta_eff)
595 write(mpl%info,
'(a7,a)')
'',
'Number of points in output grid / valid points per MPI task:'
598 write(mpl%info,
'(a10,a,i3,a,i8,a,i8)')
'',
'Task ',iproc,
': ',proc_to_nouta(iproc),
' / ',proc_to_nouta_eff(iproc)
601 write(mpl%info,
'(a10,a,i8,a,i8)')
'',
'Total : ',bint%nout,
' / ',nout_eff
606 write(mpl%info,
'(a7,a)')
'',
'Single level:'
608 call bint%h%interp(mpl,rng,nam,geom,0,geom%nc0u,geom%lon_c0u,geom%lat_c0u,geom%gmask_hor_c0u,geom%area_max_c0u,bint%nouta, &
609 & bint%geom_out%lon_mga,bint%geom_out%lat_mga,maskouta,10)
612 lcheck_nc0b = .false.
614 ic0u = geom%c0a_to_c0u(ic0a)
615 lcheck_nc0b(ic0u) = .true.
617 do iouta=1,bint%nouta
619 jc0u = bint%h%col(i_s)
620 lcheck_nc0b(jc0u) = .true.
623 bint%nc0b = count(lcheck_nc0b)
626 allocate(c0b_to_c0(bint%nc0b))
629 c0u_to_c0b = mpl%msv%vali
632 if (lcheck_nc0b(ic0u))
then
634 ic0 = geom%c0u_to_c0(ic0u)
635 c0b_to_c0(ic0b) = ic0
636 c0u_to_c0b(ic0u) = ic0b
641 bint%h%n_src = bint%nc0b
643 ic0u = bint%h%col(i_s)
644 ic0b = c0u_to_c0b(ic0u)
645 if (mpl%msv%isnot(ic0b))
then
646 bint%h%col(i_s) = ic0b
648 call mpl%abort(
'bint_driver',
'wrong local source for h')
653 call bint%com%setup(mpl,
'com',geom%nc0a,bint%nc0b,geom%nc0,geom%c0a_to_c0,c0b_to_c0)
656 deallocate(c0b_to_c0)
659 allocate(bint%nn_index(bint%nouta))
662 if (bint%nouta > 0)
then
664 allocate(maxweight(bint%nouta))
667 bint%nn_index = bint%bump%mpl%msv%vali
672 iouta = bint%h%row(i_s)
673 if (bint%h%S(i_s)>maxweight(iouta))
then
674 maxweight(iouta) = bint%h%S(i_s)
675 bint%nn_index(iouta) = bint%h%col(i_s)
678 if (bint%bump%mpl%msv%isany(bint%nn_index))
call bint%bump%mpl%abort(
'bint_driver',
'missing nearest neighbor')
681 deallocate(maxweight)
685 if (nout_eff > 0)
then
686 call mpl%f_comm%allreduce(real(bint%com%nhalo,kind_real),c_max,fckit_mpi_max())
687 c_max = c_max/(
three*real(nout_eff,kind_real)/real(mpl%nproc,kind_real))
688 n_max = real(maxval(proc_to_nouta_eff),kind_real)/(real(nout_eff,kind_real)/real(mpl%nproc,kind_real))
691 write(mpl%info,
'(a7,a,f5.1,a)')
'',
'Output grid repartition imbalance: ',
hundred*real(maxval(proc_to_nouta_eff) &
692 & -minval(proc_to_nouta_eff),kind_real)/(real(sum(proc_to_nouta_eff),kind_real)/real(mpl%nproc,kind_real)),
' %'
694 write(mpl%info,
'(a7,a,i8,a,i8,a,i8)')
'',
'Number of grid points / halo size / number of received values: ', &
695 & bint%com%nred,
' / ',bint%com%next,
' / ',bint%com%nhalo
697 write(mpl%info,
'(a7,a,f10.2,a,f10.2)')
'',
'Scores (N_max / C_max):',n_max,
' / ',c_max
724 real(kind_real),
allocatable :: array_in_mga(:,:),array_in_c0a(:,:),array_out(:,:)
725 character(len=max_string) :: fieldname
726 type(atlas_field) :: afield_in,afield_out
738 allocate(array_in_mga(bint%bump%geom%nmga,bint%bump%geom%nl0))
739 if (.not.bint%bump%geom%same_grid)
allocate(array_in_c0a(bint%bump%geom%nc0a,bint%bump%geom%nl0))
740 allocate(array_out(bint%nouta,bint%bump%geom%nl0))
742 do ifield=1,fieldset_in%size()
744 afield_in = fieldset_in%field(ifield)
745 fieldname = afield_in%name()
748 if (fieldset_out%has_field(fieldname))
then
749 afield_out = fieldset_out%field(name=fieldname)
751 afield_out = bint%afunctionspace_out%create_field(name=fieldname,kind=atlas_real(kind_real),levels=bint%bump%geom%nl0)
752 call fieldset_out%add(afield_out)
758 if (bint%bump%geom%same_grid)
then
760 call bint%apply_interp(array_in_mga,array_out)
764 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,array_in_mga,array_in_c0a)
767 call bint%apply_interp(array_in_c0a,array_out)
774 call afield_in%final()
775 call afield_out%final()
779 deallocate(array_in_mga)
780 if (.not.bint%bump%geom%same_grid)
deallocate(array_in_c0a)
781 deallocate(array_out)
788 # 565 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
789 # 566 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
790 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
801 integer(kind_int),
intent(in) :: array_in(:)
802 integer(kind_int),
intent(out) :: array_out(:)
803 logical,
intent(in),
optional :: trans_in
804 logical,
intent(in),
optional :: trans_out
805 logical,
intent(in),
optional :: nn
808 integer :: nl_in,nl_out
809 integer :: shp_out(1)
811 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
812 logical :: ltrans_in,ltrans_out,lnn
825 if (
present(trans_in)) ltrans_in = trans_in
827 if (
present(trans_out)) ltrans_out = trans_out
829 if (
present(nn)) lnn = nn
832 # 609 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
834 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
835 # 618 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
837 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
838 bint%bump%geom%nl0 = nl_in
841 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
842 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
843 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
846 vec_in(:,1) = array_in
847 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
848 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
851 if (bint%bump%geom%same_grid)
then
852 call bint%apply_interp(vec_in,vec_out,lnn)
854 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
855 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
859 shp_out = shape(array_out)
860 array_out = vec_out(:,1)
861 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
862 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
868 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
879 integer(kind_int),
intent(in) :: array_in(:)
880 integer(kind_int),
intent(out) :: array_out(:,:)
881 logical,
intent(in),
optional :: trans_in
882 logical,
intent(in),
optional :: trans_out
883 logical,
intent(in),
optional :: nn
886 integer :: nl_in,nl_out
887 integer :: shp_out(2)
889 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
890 logical :: ltrans_in,ltrans_out,lnn
903 if (
present(trans_in)) ltrans_in = trans_in
905 if (
present(trans_out)) ltrans_out = trans_out
907 if (
present(nn)) lnn = nn
910 # 609 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
912 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
913 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
915 nl_out =
size(array_out,1)
917 nl_out =
size(array_out,2)
919 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
920 bint%bump%geom%nl0 = nl_in
923 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
924 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
925 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
928 vec_in(:,1) = array_in
929 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
930 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
933 if (bint%bump%geom%same_grid)
then
934 call bint%apply_interp(vec_in,vec_out,lnn)
936 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
937 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
941 shp_out = shape(array_out)
943 # 664 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
945 array_out = transpose(vec_out)
949 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
950 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
956 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
967 integer(kind_int),
intent(in) :: array_in(:)
968 integer(kind_int),
intent(out) :: array_out(:,:,:)
969 logical,
intent(in),
optional :: trans_in
970 logical,
intent(in),
optional :: trans_out
971 logical,
intent(in),
optional :: nn
974 integer :: nl_in,nl_out
975 integer :: shp_out(3)
977 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
978 logical :: ltrans_in,ltrans_out,lnn
991 if (
present(trans_in)) ltrans_in = trans_in
993 if (
present(trans_out)) ltrans_out = trans_out
995 if (
present(nn)) lnn = nn
998 # 609 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1000 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1001 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1002 if (ltrans_out)
then
1003 nl_out =
size(array_out,1)
1005 nl_out =
size(array_out,3)
1007 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1008 bint%bump%geom%nl0 = nl_in
1011 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1012 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1013 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1016 vec_in(:,1) = array_in
1017 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1018 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1021 if (bint%bump%geom%same_grid)
then
1022 call bint%apply_interp(vec_in,vec_out,lnn)
1024 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1025 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1029 shp_out = shape(array_out)
1031 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1032 # 671 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1034 if (ltrans_out)
then
1035 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
1037 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
1040 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1046 # 685 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1047 # 566 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1048 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1059 integer(kind_int),
intent(in) :: array_in(:,:)
1060 integer(kind_int),
intent(out) :: array_out(:)
1061 logical,
intent(in),
optional :: trans_in
1062 logical,
intent(in),
optional :: trans_out
1063 logical,
intent(in),
optional :: nn
1066 integer :: nl_in,nl_out
1067 integer :: shp_out(1)
1069 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1070 logical :: ltrans_in,ltrans_out,lnn
1083 if (
present(trans_in)) ltrans_in = trans_in
1084 ltrans_out = .false.
1085 if (
present(trans_out)) ltrans_out = trans_out
1087 if (
present(nn)) lnn = nn
1090 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1092 nl_in =
size(array_in,1)
1094 nl_in =
size(array_in,2)
1096 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1097 # 618 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1099 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1100 bint%bump%geom%nl0 = nl_in
1103 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1104 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1105 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1109 # 636 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1111 vec_in = transpose(array_in)
1115 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1116 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1119 if (bint%bump%geom%same_grid)
then
1120 call bint%apply_interp(vec_in,vec_out,lnn)
1122 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1123 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1127 shp_out = shape(array_out)
1128 array_out = vec_out(:,1)
1129 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1130 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1136 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1147 integer(kind_int),
intent(in) :: array_in(:,:)
1148 integer(kind_int),
intent(out) :: array_out(:,:)
1149 logical,
intent(in),
optional :: trans_in
1150 logical,
intent(in),
optional :: trans_out
1151 logical,
intent(in),
optional :: nn
1154 integer :: nl_in,nl_out
1155 integer :: shp_out(2)
1157 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1158 logical :: ltrans_in,ltrans_out,lnn
1171 if (
present(trans_in)) ltrans_in = trans_in
1172 ltrans_out = .false.
1173 if (
present(trans_out)) ltrans_out = trans_out
1175 if (
present(nn)) lnn = nn
1178 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1180 nl_in =
size(array_in,1)
1182 nl_in =
size(array_in,2)
1184 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1185 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1186 if (ltrans_out)
then
1187 nl_out =
size(array_out,1)
1189 nl_out =
size(array_out,2)
1191 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1192 bint%bump%geom%nl0 = nl_in
1195 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1196 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1197 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1201 # 636 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1203 vec_in = transpose(array_in)
1207 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1208 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1211 if (bint%bump%geom%same_grid)
then
1212 call bint%apply_interp(vec_in,vec_out,lnn)
1214 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1215 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1219 shp_out = shape(array_out)
1221 # 664 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1222 if (ltrans_out)
then
1223 array_out = transpose(vec_out)
1227 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1228 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1234 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1245 integer(kind_int),
intent(in) :: array_in(:,:)
1246 integer(kind_int),
intent(out) :: array_out(:,:,:)
1247 logical,
intent(in),
optional :: trans_in
1248 logical,
intent(in),
optional :: trans_out
1249 logical,
intent(in),
optional :: nn
1252 integer :: nl_in,nl_out
1253 integer :: shp_out(3)
1255 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1256 logical :: ltrans_in,ltrans_out,lnn
1269 if (
present(trans_in)) ltrans_in = trans_in
1270 ltrans_out = .false.
1271 if (
present(trans_out)) ltrans_out = trans_out
1273 if (
present(nn)) lnn = nn
1276 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1278 nl_in =
size(array_in,1)
1280 nl_in =
size(array_in,2)
1282 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1283 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1284 if (ltrans_out)
then
1285 nl_out =
size(array_out,1)
1287 nl_out =
size(array_out,3)
1289 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1290 bint%bump%geom%nl0 = nl_in
1293 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1294 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1295 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1299 # 636 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1301 vec_in = transpose(array_in)
1305 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1306 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1309 if (bint%bump%geom%same_grid)
then
1310 call bint%apply_interp(vec_in,vec_out,lnn)
1312 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1313 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1317 shp_out = shape(array_out)
1319 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1320 # 671 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1322 if (ltrans_out)
then
1323 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
1325 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
1328 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1334 # 685 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1335 # 566 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1336 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1347 integer(kind_int),
intent(in) :: array_in(:,:,:)
1348 integer(kind_int),
intent(out) :: array_out(:)
1349 logical,
intent(in),
optional :: trans_in
1350 logical,
intent(in),
optional :: trans_out
1351 logical,
intent(in),
optional :: nn
1354 integer :: nl_in,nl_out
1355 integer :: shp_out(1)
1357 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1358 logical :: ltrans_in,ltrans_out,lnn
1371 if (
present(trans_in)) ltrans_in = trans_in
1372 ltrans_out = .false.
1373 if (
present(trans_out)) ltrans_out = trans_out
1375 if (
present(nn)) lnn = nn
1378 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1380 nl_in =
size(array_in,1)
1382 nl_in =
size(array_in,3)
1384 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1385 # 618 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1387 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1388 bint%bump%geom%nl0 = nl_in
1391 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1392 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1393 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1397 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1398 # 643 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1401 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
1403 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
1406 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1409 if (bint%bump%geom%same_grid)
then
1410 call bint%apply_interp(vec_in,vec_out,lnn)
1412 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1413 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1417 shp_out = shape(array_out)
1418 array_out = vec_out(:,1)
1419 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1420 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1426 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1437 integer(kind_int),
intent(in) :: array_in(:,:,:)
1438 integer(kind_int),
intent(out) :: array_out(:,:)
1439 logical,
intent(in),
optional :: trans_in
1440 logical,
intent(in),
optional :: trans_out
1441 logical,
intent(in),
optional :: nn
1444 integer :: nl_in,nl_out
1445 integer :: shp_out(2)
1447 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1448 logical :: ltrans_in,ltrans_out,lnn
1461 if (
present(trans_in)) ltrans_in = trans_in
1462 ltrans_out = .false.
1463 if (
present(trans_out)) ltrans_out = trans_out
1465 if (
present(nn)) lnn = nn
1468 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1470 nl_in =
size(array_in,1)
1472 nl_in =
size(array_in,3)
1474 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1475 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1476 if (ltrans_out)
then
1477 nl_out =
size(array_out,1)
1479 nl_out =
size(array_out,2)
1481 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1482 bint%bump%geom%nl0 = nl_in
1485 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1486 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1487 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1491 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1492 # 643 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1495 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
1497 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
1500 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1503 if (bint%bump%geom%same_grid)
then
1504 call bint%apply_interp(vec_in,vec_out,lnn)
1506 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1507 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1511 shp_out = shape(array_out)
1513 # 664 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1514 if (ltrans_out)
then
1515 array_out = transpose(vec_out)
1519 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1520 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1526 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1537 integer(kind_int),
intent(in) :: array_in(:,:,:)
1538 integer(kind_int),
intent(out) :: array_out(:,:,:)
1539 logical,
intent(in),
optional :: trans_in
1540 logical,
intent(in),
optional :: trans_out
1541 logical,
intent(in),
optional :: nn
1544 integer :: nl_in,nl_out
1545 integer :: shp_out(3)
1547 integer(kind_int),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1548 logical :: ltrans_in,ltrans_out,lnn
1561 if (
present(trans_in)) ltrans_in = trans_in
1562 ltrans_out = .false.
1563 if (
present(trans_out)) ltrans_out = trans_out
1565 if (
present(nn)) lnn = nn
1568 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1570 nl_in =
size(array_in,1)
1572 nl_in =
size(array_in,3)
1574 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1575 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1576 if (ltrans_out)
then
1577 nl_out =
size(array_out,1)
1579 nl_out =
size(array_out,3)
1581 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1582 bint%bump%geom%nl0 = nl_in
1585 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1586 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1587 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1591 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1592 # 643 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1595 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
1597 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
1600 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1603 if (bint%bump%geom%same_grid)
then
1604 call bint%apply_interp(vec_in,vec_out,lnn)
1606 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1607 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1611 shp_out = shape(array_out)
1613 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1614 # 671 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1616 if (ltrans_out)
then
1617 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
1619 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
1622 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1628 # 685 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1629 # 686 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1630 # 565 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1631 # 566 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1632 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1643 real(kind_real),
intent(in) :: array_in(:)
1644 real(kind_real),
intent(out) :: array_out(:)
1645 logical,
intent(in),
optional :: trans_in
1646 logical,
intent(in),
optional :: trans_out
1647 logical,
intent(in),
optional :: nn
1650 integer :: nl_in,nl_out
1651 integer :: shp_out(1)
1653 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1654 logical :: ltrans_in,ltrans_out,lnn
1667 if (
present(trans_in)) ltrans_in = trans_in
1668 ltrans_out = .false.
1669 if (
present(trans_out)) ltrans_out = trans_out
1671 if (
present(nn)) lnn = nn
1674 # 609 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1676 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1677 # 618 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1679 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1680 bint%bump%geom%nl0 = nl_in
1683 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1684 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1685 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1688 vec_in(:,1) = array_in
1689 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1690 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1693 if (bint%bump%geom%same_grid)
then
1694 call bint%apply_interp(vec_in,vec_out,lnn)
1696 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1697 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1701 shp_out = shape(array_out)
1702 array_out = vec_out(:,1)
1703 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1704 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1710 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1721 real(kind_real),
intent(in) :: array_in(:)
1722 real(kind_real),
intent(out) :: array_out(:,:)
1723 logical,
intent(in),
optional :: trans_in
1724 logical,
intent(in),
optional :: trans_out
1725 logical,
intent(in),
optional :: nn
1728 integer :: nl_in,nl_out
1729 integer :: shp_out(2)
1731 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1732 logical :: ltrans_in,ltrans_out,lnn
1745 if (
present(trans_in)) ltrans_in = trans_in
1746 ltrans_out = .false.
1747 if (
present(trans_out)) ltrans_out = trans_out
1749 if (
present(nn)) lnn = nn
1752 # 609 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1754 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1755 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1756 if (ltrans_out)
then
1757 nl_out =
size(array_out,1)
1759 nl_out =
size(array_out,2)
1761 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1762 bint%bump%geom%nl0 = nl_in
1765 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1766 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1767 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1770 vec_in(:,1) = array_in
1771 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1772 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1775 if (bint%bump%geom%same_grid)
then
1776 call bint%apply_interp(vec_in,vec_out,lnn)
1778 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1779 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1783 shp_out = shape(array_out)
1785 # 664 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1786 if (ltrans_out)
then
1787 array_out = transpose(vec_out)
1791 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1792 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1798 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1809 real(kind_real),
intent(in) :: array_in(:)
1810 real(kind_real),
intent(out) :: array_out(:,:,:)
1811 logical,
intent(in),
optional :: trans_in
1812 logical,
intent(in),
optional :: trans_out
1813 logical,
intent(in),
optional :: nn
1816 integer :: nl_in,nl_out
1817 integer :: shp_out(3)
1819 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1820 logical :: ltrans_in,ltrans_out,lnn
1833 if (
present(trans_in)) ltrans_in = trans_in
1834 ltrans_out = .false.
1835 if (
present(trans_out)) ltrans_out = trans_out
1837 if (
present(nn)) lnn = nn
1840 # 609 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1842 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1843 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1844 if (ltrans_out)
then
1845 nl_out =
size(array_out,1)
1847 nl_out =
size(array_out,3)
1849 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1850 bint%bump%geom%nl0 = nl_in
1853 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1854 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1855 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1858 vec_in(:,1) = array_in
1859 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1860 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1863 if (bint%bump%geom%same_grid)
then
1864 call bint%apply_interp(vec_in,vec_out,lnn)
1866 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1867 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1871 shp_out = shape(array_out)
1873 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1874 # 671 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1876 if (ltrans_out)
then
1877 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
1879 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
1882 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1888 # 685 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1889 # 566 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1890 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1901 real(kind_real),
intent(in) :: array_in(:,:)
1902 real(kind_real),
intent(out) :: array_out(:)
1903 logical,
intent(in),
optional :: trans_in
1904 logical,
intent(in),
optional :: trans_out
1905 logical,
intent(in),
optional :: nn
1908 integer :: nl_in,nl_out
1909 integer :: shp_out(1)
1911 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
1912 logical :: ltrans_in,ltrans_out,lnn
1925 if (
present(trans_in)) ltrans_in = trans_in
1926 ltrans_out = .false.
1927 if (
present(trans_out)) ltrans_out = trans_out
1929 if (
present(nn)) lnn = nn
1932 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1934 nl_in =
size(array_in,1)
1936 nl_in =
size(array_in,2)
1938 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1939 # 618 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1941 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1942 bint%bump%geom%nl0 = nl_in
1945 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
1946 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
1947 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
1951 # 636 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1953 vec_in = transpose(array_in)
1957 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1958 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1961 if (bint%bump%geom%same_grid)
then
1962 call bint%apply_interp(vec_in,vec_out,lnn)
1964 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
1965 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
1969 shp_out = shape(array_out)
1970 array_out = vec_out(:,1)
1971 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1972 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1978 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
1989 real(kind_real),
intent(in) :: array_in(:,:)
1990 real(kind_real),
intent(out) :: array_out(:,:)
1991 logical,
intent(in),
optional :: trans_in
1992 logical,
intent(in),
optional :: trans_out
1993 logical,
intent(in),
optional :: nn
1996 integer :: nl_in,nl_out
1997 integer :: shp_out(2)
1999 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2000 logical :: ltrans_in,ltrans_out,lnn
2013 if (
present(trans_in)) ltrans_in = trans_in
2014 ltrans_out = .false.
2015 if (
present(trans_out)) ltrans_out = trans_out
2017 if (
present(nn)) lnn = nn
2020 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2022 nl_in =
size(array_in,1)
2024 nl_in =
size(array_in,2)
2026 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2027 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2028 if (ltrans_out)
then
2029 nl_out =
size(array_out,1)
2031 nl_out =
size(array_out,2)
2033 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2034 bint%bump%geom%nl0 = nl_in
2037 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2038 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2039 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2043 # 636 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2045 vec_in = transpose(array_in)
2049 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2050 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2053 if (bint%bump%geom%same_grid)
then
2054 call bint%apply_interp(vec_in,vec_out,lnn)
2056 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2057 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2061 shp_out = shape(array_out)
2063 # 664 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2064 if (ltrans_out)
then
2065 array_out = transpose(vec_out)
2069 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2070 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2076 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2087 real(kind_real),
intent(in) :: array_in(:,:)
2088 real(kind_real),
intent(out) :: array_out(:,:,:)
2089 logical,
intent(in),
optional :: trans_in
2090 logical,
intent(in),
optional :: trans_out
2091 logical,
intent(in),
optional :: nn
2094 integer :: nl_in,nl_out
2095 integer :: shp_out(3)
2097 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2098 logical :: ltrans_in,ltrans_out,lnn
2111 if (
present(trans_in)) ltrans_in = trans_in
2112 ltrans_out = .false.
2113 if (
present(trans_out)) ltrans_out = trans_out
2115 if (
present(nn)) lnn = nn
2118 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2120 nl_in =
size(array_in,1)
2122 nl_in =
size(array_in,2)
2124 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2125 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2126 if (ltrans_out)
then
2127 nl_out =
size(array_out,1)
2129 nl_out =
size(array_out,3)
2131 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2132 bint%bump%geom%nl0 = nl_in
2135 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2136 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2137 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2141 # 636 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2143 vec_in = transpose(array_in)
2147 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2148 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2151 if (bint%bump%geom%same_grid)
then
2152 call bint%apply_interp(vec_in,vec_out,lnn)
2154 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2155 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2159 shp_out = shape(array_out)
2161 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2162 # 671 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2164 if (ltrans_out)
then
2165 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
2167 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
2170 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2176 # 685 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2177 # 566 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2178 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2189 real(kind_real),
intent(in) :: array_in(:,:,:)
2190 real(kind_real),
intent(out) :: array_out(:)
2191 logical,
intent(in),
optional :: trans_in
2192 logical,
intent(in),
optional :: trans_out
2193 logical,
intent(in),
optional :: nn
2196 integer :: nl_in,nl_out
2197 integer :: shp_out(1)
2199 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2200 logical :: ltrans_in,ltrans_out,lnn
2213 if (
present(trans_in)) ltrans_in = trans_in
2214 ltrans_out = .false.
2215 if (
present(trans_out)) ltrans_out = trans_out
2217 if (
present(nn)) lnn = nn
2220 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2222 nl_in =
size(array_in,1)
2224 nl_in =
size(array_in,3)
2226 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2227 # 618 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2229 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2230 bint%bump%geom%nl0 = nl_in
2233 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2234 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2235 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2239 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2240 # 643 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2243 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
2245 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
2248 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2251 if (bint%bump%geom%same_grid)
then
2252 call bint%apply_interp(vec_in,vec_out,lnn)
2254 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2255 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2259 shp_out = shape(array_out)
2260 array_out = vec_out(:,1)
2261 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2262 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2268 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2279 real(kind_real),
intent(in) :: array_in(:,:,:)
2280 real(kind_real),
intent(out) :: array_out(:,:)
2281 logical,
intent(in),
optional :: trans_in
2282 logical,
intent(in),
optional :: trans_out
2283 logical,
intent(in),
optional :: nn
2286 integer :: nl_in,nl_out
2287 integer :: shp_out(2)
2289 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2290 logical :: ltrans_in,ltrans_out,lnn
2303 if (
present(trans_in)) ltrans_in = trans_in
2304 ltrans_out = .false.
2305 if (
present(trans_out)) ltrans_out = trans_out
2307 if (
present(nn)) lnn = nn
2310 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2312 nl_in =
size(array_in,1)
2314 nl_in =
size(array_in,3)
2316 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2317 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2318 if (ltrans_out)
then
2319 nl_out =
size(array_out,1)
2321 nl_out =
size(array_out,2)
2323 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2324 bint%bump%geom%nl0 = nl_in
2327 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2328 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2329 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2333 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2334 # 643 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2337 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
2339 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
2342 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2345 if (bint%bump%geom%same_grid)
then
2346 call bint%apply_interp(vec_in,vec_out,lnn)
2348 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2349 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2353 shp_out = shape(array_out)
2355 # 664 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2356 if (ltrans_out)
then
2357 array_out = transpose(vec_out)
2361 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2362 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2368 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2379 real(kind_real),
intent(in) :: array_in(:,:,:)
2380 real(kind_real),
intent(out) :: array_out(:,:,:)
2381 logical,
intent(in),
optional :: trans_in
2382 logical,
intent(in),
optional :: trans_out
2383 logical,
intent(in),
optional :: nn
2386 integer :: nl_in,nl_out
2387 integer :: shp_out(3)
2389 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2390 logical :: ltrans_in,ltrans_out,lnn
2403 if (
present(trans_in)) ltrans_in = trans_in
2404 ltrans_out = .false.
2405 if (
present(trans_out)) ltrans_out = trans_out
2407 if (
present(nn)) lnn = nn
2410 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2412 nl_in =
size(array_in,1)
2414 nl_in =
size(array_in,3)
2416 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2417 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2418 if (ltrans_out)
then
2419 nl_out =
size(array_out,1)
2421 nl_out =
size(array_out,3)
2423 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2424 bint%bump%geom%nl0 = nl_in
2427 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2428 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2429 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2433 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2434 # 643 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2437 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
2439 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
2442 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2445 if (bint%bump%geom%same_grid)
then
2446 call bint%apply_interp(vec_in,vec_out,lnn)
2448 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2449 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2453 shp_out = shape(array_out)
2455 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2456 # 671 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2458 if (ltrans_out)
then
2459 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
2461 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
2464 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2470 # 685 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2471 # 686 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2472 # 565 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2473 # 566 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2474 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2485 logical,
intent(in) :: array_in(:)
2486 logical,
intent(out) :: array_out(:)
2487 logical,
intent(in),
optional :: trans_in
2488 logical,
intent(in),
optional :: trans_out
2489 logical,
intent(in),
optional :: nn
2492 integer :: nl_in,nl_out
2493 integer :: shp_out(1)
2495 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2496 logical :: ltrans_in,ltrans_out,lnn
2509 if (
present(trans_in)) ltrans_in = trans_in
2510 ltrans_out = .false.
2511 if (
present(trans_out)) ltrans_out = trans_out
2513 if (
present(nn)) lnn = nn
2516 # 609 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2518 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2519 # 618 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2521 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2522 bint%bump%geom%nl0 = nl_in
2525 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2526 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2527 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2530 vec_in(:,1) = array_in
2531 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2532 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2535 if (bint%bump%geom%same_grid)
then
2536 call bint%apply_interp(vec_in,vec_out,lnn)
2538 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2539 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2543 shp_out = shape(array_out)
2544 array_out = vec_out(:,1)
2545 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2546 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2552 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2563 logical,
intent(in) :: array_in(:)
2564 logical,
intent(out) :: array_out(:,:)
2565 logical,
intent(in),
optional :: trans_in
2566 logical,
intent(in),
optional :: trans_out
2567 logical,
intent(in),
optional :: nn
2570 integer :: nl_in,nl_out
2571 integer :: shp_out(2)
2573 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2574 logical :: ltrans_in,ltrans_out,lnn
2587 if (
present(trans_in)) ltrans_in = trans_in
2588 ltrans_out = .false.
2589 if (
present(trans_out)) ltrans_out = trans_out
2591 if (
present(nn)) lnn = nn
2594 # 609 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2596 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2597 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2598 if (ltrans_out)
then
2599 nl_out =
size(array_out,1)
2601 nl_out =
size(array_out,2)
2603 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2604 bint%bump%geom%nl0 = nl_in
2607 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2608 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2609 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2612 vec_in(:,1) = array_in
2613 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2614 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2617 if (bint%bump%geom%same_grid)
then
2618 call bint%apply_interp(vec_in,vec_out,lnn)
2620 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2621 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2625 shp_out = shape(array_out)
2627 # 664 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2628 if (ltrans_out)
then
2629 array_out = transpose(vec_out)
2633 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2634 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2640 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2651 logical,
intent(in) :: array_in(:)
2652 logical,
intent(out) :: array_out(:,:,:)
2653 logical,
intent(in),
optional :: trans_in
2654 logical,
intent(in),
optional :: trans_out
2655 logical,
intent(in),
optional :: nn
2658 integer :: nl_in,nl_out
2659 integer :: shp_out(3)
2661 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2662 logical :: ltrans_in,ltrans_out,lnn
2675 if (
present(trans_in)) ltrans_in = trans_in
2676 ltrans_out = .false.
2677 if (
present(trans_out)) ltrans_out = trans_out
2679 if (
present(nn)) lnn = nn
2682 # 609 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2684 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2685 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2686 if (ltrans_out)
then
2687 nl_out =
size(array_out,1)
2689 nl_out =
size(array_out,3)
2691 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2692 bint%bump%geom%nl0 = nl_in
2695 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2696 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2697 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2700 vec_in(:,1) = array_in
2701 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2702 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2705 if (bint%bump%geom%same_grid)
then
2706 call bint%apply_interp(vec_in,vec_out,lnn)
2708 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2709 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2713 shp_out = shape(array_out)
2715 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2716 # 671 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2718 if (ltrans_out)
then
2719 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
2721 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
2724 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2730 # 685 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2731 # 566 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2732 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2743 logical,
intent(in) :: array_in(:,:)
2744 logical,
intent(out) :: array_out(:)
2745 logical,
intent(in),
optional :: trans_in
2746 logical,
intent(in),
optional :: trans_out
2747 logical,
intent(in),
optional :: nn
2750 integer :: nl_in,nl_out
2751 integer :: shp_out(1)
2753 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2754 logical :: ltrans_in,ltrans_out,lnn
2767 if (
present(trans_in)) ltrans_in = trans_in
2768 ltrans_out = .false.
2769 if (
present(trans_out)) ltrans_out = trans_out
2771 if (
present(nn)) lnn = nn
2774 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2776 nl_in =
size(array_in,1)
2778 nl_in =
size(array_in,2)
2780 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2781 # 618 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2783 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2784 bint%bump%geom%nl0 = nl_in
2787 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2788 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2789 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2793 # 636 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2795 vec_in = transpose(array_in)
2799 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2800 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2803 if (bint%bump%geom%same_grid)
then
2804 call bint%apply_interp(vec_in,vec_out,lnn)
2806 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2807 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2811 shp_out = shape(array_out)
2812 array_out = vec_out(:,1)
2813 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2814 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2820 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2831 logical,
intent(in) :: array_in(:,:)
2832 logical,
intent(out) :: array_out(:,:)
2833 logical,
intent(in),
optional :: trans_in
2834 logical,
intent(in),
optional :: trans_out
2835 logical,
intent(in),
optional :: nn
2838 integer :: nl_in,nl_out
2839 integer :: shp_out(2)
2841 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2842 logical :: ltrans_in,ltrans_out,lnn
2855 if (
present(trans_in)) ltrans_in = trans_in
2856 ltrans_out = .false.
2857 if (
present(trans_out)) ltrans_out = trans_out
2859 if (
present(nn)) lnn = nn
2862 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2864 nl_in =
size(array_in,1)
2866 nl_in =
size(array_in,2)
2868 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2869 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2870 if (ltrans_out)
then
2871 nl_out =
size(array_out,1)
2873 nl_out =
size(array_out,2)
2875 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2876 bint%bump%geom%nl0 = nl_in
2879 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2880 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2881 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2885 # 636 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2887 vec_in = transpose(array_in)
2891 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2892 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2895 if (bint%bump%geom%same_grid)
then
2896 call bint%apply_interp(vec_in,vec_out,lnn)
2898 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2899 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
2903 shp_out = shape(array_out)
2905 # 664 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2906 if (ltrans_out)
then
2907 array_out = transpose(vec_out)
2911 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2912 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2918 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2929 logical,
intent(in) :: array_in(:,:)
2930 logical,
intent(out) :: array_out(:,:,:)
2931 logical,
intent(in),
optional :: trans_in
2932 logical,
intent(in),
optional :: trans_out
2933 logical,
intent(in),
optional :: nn
2936 integer :: nl_in,nl_out
2937 integer :: shp_out(3)
2939 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
2940 logical :: ltrans_in,ltrans_out,lnn
2953 if (
present(trans_in)) ltrans_in = trans_in
2954 ltrans_out = .false.
2955 if (
present(trans_out)) ltrans_out = trans_out
2957 if (
present(nn)) lnn = nn
2960 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2962 nl_in =
size(array_in,1)
2964 nl_in =
size(array_in,2)
2966 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2967 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2968 if (ltrans_out)
then
2969 nl_out =
size(array_out,1)
2971 nl_out =
size(array_out,3)
2973 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2974 bint%bump%geom%nl0 = nl_in
2977 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
2978 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
2979 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
2983 # 636 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2985 vec_in = transpose(array_in)
2989 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2990 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
2993 if (bint%bump%geom%same_grid)
then
2994 call bint%apply_interp(vec_in,vec_out,lnn)
2996 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
2997 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
3001 shp_out = shape(array_out)
3003 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3004 # 671 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3006 if (ltrans_out)
then
3007 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
3009 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
3012 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3018 # 685 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3019 # 566 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3020 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3031 logical,
intent(in) :: array_in(:,:,:)
3032 logical,
intent(out) :: array_out(:)
3033 logical,
intent(in),
optional :: trans_in
3034 logical,
intent(in),
optional :: trans_out
3035 logical,
intent(in),
optional :: nn
3038 integer :: nl_in,nl_out
3039 integer :: shp_out(1)
3041 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3042 logical :: ltrans_in,ltrans_out,lnn
3055 if (
present(trans_in)) ltrans_in = trans_in
3056 ltrans_out = .false.
3057 if (
present(trans_out)) ltrans_out = trans_out
3059 if (
present(nn)) lnn = nn
3062 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3064 nl_in =
size(array_in,1)
3066 nl_in =
size(array_in,3)
3068 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3069 # 618 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3071 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3072 bint%bump%geom%nl0 = nl_in
3075 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3076 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3077 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3081 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3082 # 643 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3085 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
3087 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
3090 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3093 if (bint%bump%geom%same_grid)
then
3094 call bint%apply_interp(vec_in,vec_out,lnn)
3096 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
3097 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
3101 shp_out = shape(array_out)
3102 array_out = vec_out(:,1)
3103 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3104 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3110 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3121 logical,
intent(in) :: array_in(:,:,:)
3122 logical,
intent(out) :: array_out(:,:)
3123 logical,
intent(in),
optional :: trans_in
3124 logical,
intent(in),
optional :: trans_out
3125 logical,
intent(in),
optional :: nn
3128 integer :: nl_in,nl_out
3129 integer :: shp_out(2)
3131 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3132 logical :: ltrans_in,ltrans_out,lnn
3145 if (
present(trans_in)) ltrans_in = trans_in
3146 ltrans_out = .false.
3147 if (
present(trans_out)) ltrans_out = trans_out
3149 if (
present(nn)) lnn = nn
3152 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3154 nl_in =
size(array_in,1)
3156 nl_in =
size(array_in,3)
3158 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3159 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3160 if (ltrans_out)
then
3161 nl_out =
size(array_out,1)
3163 nl_out =
size(array_out,2)
3165 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3166 bint%bump%geom%nl0 = nl_in
3169 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3170 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3171 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3175 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3176 # 643 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3179 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
3181 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
3184 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3187 if (bint%bump%geom%same_grid)
then
3188 call bint%apply_interp(vec_in,vec_out,lnn)
3190 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
3191 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
3195 shp_out = shape(array_out)
3197 # 664 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3198 if (ltrans_out)
then
3199 array_out = transpose(vec_out)
3203 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3204 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3210 # 567 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3221 logical,
intent(in) :: array_in(:,:,:)
3222 logical,
intent(out) :: array_out(:,:,:)
3223 logical,
intent(in),
optional :: trans_in
3224 logical,
intent(in),
optional :: trans_out
3225 logical,
intent(in),
optional :: nn
3228 integer :: nl_in,nl_out
3229 integer :: shp_out(3)
3231 logical,
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3232 logical :: ltrans_in,ltrans_out,lnn
3245 if (
present(trans_in)) ltrans_in = trans_in
3246 ltrans_out = .false.
3247 if (
present(trans_out)) ltrans_out = trans_out
3249 if (
present(nn)) lnn = nn
3252 # 611 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3254 nl_in =
size(array_in,1)
3256 nl_in =
size(array_in,3)
3258 # 617 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3259 # 620 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3260 if (ltrans_out)
then
3261 nl_out =
size(array_out,1)
3263 nl_out =
size(array_out,3)
3265 # 626 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3266 bint%bump%geom%nl0 = nl_in
3269 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3270 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3271 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3275 # 642 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3276 # 643 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3279 vec_in(:,il) = reshape(transpose(array_in(:,:,il)),(/bint%bump%geom%nmga/))
3281 vec_in(:,il) = reshape(array_in(:,:,il),(/bint%bump%geom%nmga/))
3284 # 651 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3287 if (bint%bump%geom%same_grid)
then
3288 call bint%apply_interp(vec_in,vec_out,lnn)
3290 call bint%bump%geom%copy_mga_to_c0a(bint%bump%mpl,vec_in,vec_in_tmp)
3291 call bint%apply_interp(vec_in_tmp,vec_out,lnn)
3295 shp_out = shape(array_out)
3297 # 670 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3298 # 671 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3300 if (ltrans_out)
then
3301 array_out(:,:,il) = transpose(reshape(vec_out(:,il),(/shp_out(2),shp_out(1)/)))
3303 array_out(:,:,il) = reshape(vec_out(:,il),shp_out(1:2))
3306 # 679 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3312 # 685 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3313 # 686 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3314 # 687 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3316 # 689 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3327 integer(kind_int),
intent(in) :: array_in(bint%bump%geom%nc0a,bint%bump%geom%nl0)
3328 integer(kind_int),
intent(out) :: array_out(bint%nouta,bint%bump%geom%nl0)
3329 logical,
intent(in),
optional :: nn
3333 integer(kind_int),
allocatable :: array_in_ext(:,:)
3347 if (
present(nn)) lnn = nn
3350 allocate(array_in_ext(bint%nc0b,bint%bump%geom%nl0))
3353 call bint%com%ext(bint%bump%mpl,array_in,array_in_ext)
3355 if (bint%nouta > 0)
then
3356 # 741 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3358 array_out = array_in_ext(bint%nn_index,:)
3359 # 744 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3363 deallocate(array_in_ext)
3369 # 689 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3380 real(kind_real),
intent(in) :: array_in(bint%bump%geom%nc0a,bint%bump%geom%nl0)
3381 real(kind_real),
intent(out) :: array_out(bint%nouta,bint%bump%geom%nl0)
3382 logical,
intent(in),
optional :: nn
3386 real(kind_real),
allocatable :: array_in_ext(:,:)
3400 if (
present(nn)) lnn = nn
3403 allocate(array_in_ext(bint%nc0b,bint%bump%geom%nl0))
3406 call bint%com%ext(bint%bump%mpl,array_in,array_in_ext)
3408 if (bint%nouta > 0)
then
3409 # 729 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3412 array_out = array_in_ext(bint%nn_index,:)
3416 do ilev=1,bint%bump%geom%nl0
3417 call bint%h%apply(bint%bump%mpl,array_in_ext(:,ilev),array_out(:,ilev))
3421 # 744 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3425 deallocate(array_in_ext)
3431 # 689 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3442 logical,
intent(in) :: array_in(bint%bump%geom%nc0a,bint%bump%geom%nl0)
3443 logical,
intent(out) :: array_out(bint%nouta,bint%bump%geom%nl0)
3444 logical,
intent(in),
optional :: nn
3448 logical,
allocatable :: array_in_ext(:,:)
3462 if (
present(nn)) lnn = nn
3465 allocate(array_in_ext(bint%nc0b,bint%bump%geom%nl0))
3468 call bint%com%ext(bint%bump%mpl,array_in,array_in_ext)
3470 if (bint%nouta > 0)
then
3471 # 741 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3473 array_out = array_in_ext(bint%nn_index,:)
3474 # 744 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3478 deallocate(array_in_ext)
3484 # 754 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3505 real(kind_real),
allocatable :: array_in_mga(:,:),array_in_c0a(:,:),array_out(:,:)
3506 character(len=max_string) :: fieldname
3507 type(atlas_field) :: afield_in,afield_out
3519 allocate(array_in_mga(bint%bump%geom%nmga,bint%bump%geom%nl0))
3520 if (.not.bint%bump%geom%same_grid)
allocate(array_in_c0a(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3521 allocate(array_out(bint%nouta,bint%bump%geom%nl0))
3523 do ifield=1,fieldset_out%size()
3525 afield_out = fieldset_out%field(ifield)
3526 fieldname = afield_out%name()
3529 if (fieldset_in%has_field(fieldname))
then
3530 afield_in = fieldset_in%field(name=fieldname)
3532 afield_in = bint%afunctionspace_in%create_field(name=fieldname,kind=atlas_real(kind_real),levels=bint%bump%geom%nl0)
3533 call fieldset_in%add(afield_in)
3538 if (bint%bump%geom%same_grid)
then
3540 call bint%apply_interp_ad(array_out,array_in_mga)
3543 call bint%apply_interp_ad(array_out,array_in_c0a)
3546 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,array_in_c0a,array_in_mga)
3553 call afield_in%final()
3554 call afield_out%final()
3558 deallocate(array_in_mga)
3559 if (.not.bint%bump%geom%same_grid)
deallocate(array_in_c0a)
3560 deallocate(array_out)
3567 # 837 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3568 # 838 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3579 real(kind_real),
intent(in) :: array_out(:)
3580 real(kind_real),
intent(inout) :: array_in(:)
3581 logical,
intent(in),
optional :: trans_out
3582 logical,
intent(in),
optional :: trans_in
3585 integer :: nl_in,nl_out
3586 integer :: shp_in(1)
3588 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3589 logical :: ltrans_in,ltrans_out
3601 ltrans_out = .false.
3602 if (
present(trans_out)) ltrans_out = trans_out
3604 if (
present(trans_in)) ltrans_in = trans_in
3607 # 877 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3609 # 885 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3610 # 886 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3612 # 894 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3613 bint%bump%geom%nl0 = nl_in
3616 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3617 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3618 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3621 vec_out(:,1) = array_out
3622 # 910 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3623 # 919 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3626 if (bint%bump%geom%same_grid)
then
3627 call bint%apply_interp_ad(vec_out,vec_in)
3629 call bint%apply_interp_ad(vec_out,vec_in_tmp)
3630 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
3634 shp_in = shape(array_in)
3635 array_in = vec_in(:,1)
3636 # 938 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3637 # 947 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3641 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
3648 # 838 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3659 real(kind_real),
intent(in) :: array_out(:)
3660 real(kind_real),
intent(inout) :: array_in(:,:)
3661 logical,
intent(in),
optional :: trans_out
3662 logical,
intent(in),
optional :: trans_in
3665 integer :: nl_in,nl_out
3666 integer :: shp_in(2)
3668 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3669 logical :: ltrans_in,ltrans_out
3681 ltrans_out = .false.
3682 if (
present(trans_out)) ltrans_out = trans_out
3684 if (
present(trans_in)) ltrans_in = trans_in
3687 # 877 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3689 # 885 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3690 # 888 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3692 nl_in =
size(array_in,1)
3694 nl_in =
size(array_in,2)
3696 # 894 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3697 bint%bump%geom%nl0 = nl_in
3700 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3701 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3702 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3705 vec_out(:,1) = array_out
3706 # 910 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3707 # 919 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3710 if (bint%bump%geom%same_grid)
then
3711 call bint%apply_interp_ad(vec_out,vec_in)
3713 call bint%apply_interp_ad(vec_out,vec_in_tmp)
3714 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
3718 shp_in = shape(array_in)
3720 # 932 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3722 array_in = transpose(vec_in)
3726 # 938 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3727 # 947 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3731 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
3738 # 838 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3749 real(kind_real),
intent(in) :: array_out(:)
3750 real(kind_real),
intent(inout) :: array_in(:,:,:)
3751 logical,
intent(in),
optional :: trans_out
3752 logical,
intent(in),
optional :: trans_in
3755 integer :: nl_in,nl_out
3756 integer :: shp_in(3)
3758 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3759 logical :: ltrans_in,ltrans_out
3771 ltrans_out = .false.
3772 if (
present(trans_out)) ltrans_out = trans_out
3774 if (
present(trans_in)) ltrans_in = trans_in
3777 # 877 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3779 # 885 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3780 # 888 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3782 nl_in =
size(array_in,1)
3784 nl_in =
size(array_in,3)
3786 # 894 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3787 bint%bump%geom%nl0 = nl_in
3790 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3791 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3792 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3795 vec_out(:,1) = array_out
3796 # 910 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3797 # 919 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3800 if (bint%bump%geom%same_grid)
then
3801 call bint%apply_interp_ad(vec_out,vec_in)
3803 call bint%apply_interp_ad(vec_out,vec_in_tmp)
3804 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
3808 shp_in = shape(array_in)
3810 # 938 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3811 # 939 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3814 array_in(:,:,il) = transpose(reshape(vec_in(:,il),(/shp_in(2),shp_in(1)/)))
3816 array_in(:,:,il) = reshape(vec_in(:,il),shp_in(1:2))
3819 # 947 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3823 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
3830 # 958 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3831 # 837 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3832 # 838 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3843 real(kind_real),
intent(in) :: array_out(:,:)
3844 real(kind_real),
intent(inout) :: array_in(:)
3845 logical,
intent(in),
optional :: trans_out
3846 logical,
intent(in),
optional :: trans_in
3849 integer :: nl_in,nl_out
3850 integer :: shp_in(1)
3852 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3853 logical :: ltrans_in,ltrans_out
3865 ltrans_out = .false.
3866 if (
present(trans_out)) ltrans_out = trans_out
3868 if (
present(trans_in)) ltrans_in = trans_in
3871 # 879 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3872 if (ltrans_out)
then
3873 nl_out =
size(array_out,1)
3875 nl_out =
size(array_out,2)
3877 # 885 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3878 # 886 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3880 # 894 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3881 bint%bump%geom%nl0 = nl_in
3884 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3885 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3886 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3890 # 904 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3891 if (ltrans_out)
then
3892 vec_out = transpose(array_out)
3896 # 910 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3897 # 919 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3900 if (bint%bump%geom%same_grid)
then
3901 call bint%apply_interp_ad(vec_out,vec_in)
3903 call bint%apply_interp_ad(vec_out,vec_in_tmp)
3904 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
3908 shp_in = shape(array_in)
3909 array_in = vec_in(:,1)
3910 # 938 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3911 # 947 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3915 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
3922 # 838 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3933 real(kind_real),
intent(in) :: array_out(:,:)
3934 real(kind_real),
intent(inout) :: array_in(:,:)
3935 logical,
intent(in),
optional :: trans_out
3936 logical,
intent(in),
optional :: trans_in
3939 integer :: nl_in,nl_out
3940 integer :: shp_in(2)
3942 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
3943 logical :: ltrans_in,ltrans_out
3955 ltrans_out = .false.
3956 if (
present(trans_out)) ltrans_out = trans_out
3958 if (
present(trans_in)) ltrans_in = trans_in
3961 # 879 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3962 if (ltrans_out)
then
3963 nl_out =
size(array_out,1)
3965 nl_out =
size(array_out,2)
3967 # 885 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3968 # 888 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3970 nl_in =
size(array_in,1)
3972 nl_in =
size(array_in,2)
3974 # 894 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3975 bint%bump%geom%nl0 = nl_in
3978 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
3979 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
3980 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
3984 # 904 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3985 if (ltrans_out)
then
3986 vec_out = transpose(array_out)
3990 # 910 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3991 # 919 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
3994 if (bint%bump%geom%same_grid)
then
3995 call bint%apply_interp_ad(vec_out,vec_in)
3997 call bint%apply_interp_ad(vec_out,vec_in_tmp)
3998 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4002 shp_in = shape(array_in)
4004 # 932 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4006 array_in = transpose(vec_in)
4010 # 938 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4011 # 947 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4015 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4022 # 838 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4033 real(kind_real),
intent(in) :: array_out(:,:)
4034 real(kind_real),
intent(inout) :: array_in(:,:,:)
4035 logical,
intent(in),
optional :: trans_out
4036 logical,
intent(in),
optional :: trans_in
4039 integer :: nl_in,nl_out
4040 integer :: shp_in(3)
4042 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
4043 logical :: ltrans_in,ltrans_out
4055 ltrans_out = .false.
4056 if (
present(trans_out)) ltrans_out = trans_out
4058 if (
present(trans_in)) ltrans_in = trans_in
4061 # 879 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4062 if (ltrans_out)
then
4063 nl_out =
size(array_out,1)
4065 nl_out =
size(array_out,2)
4067 # 885 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4068 # 888 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4070 nl_in =
size(array_in,1)
4072 nl_in =
size(array_in,3)
4074 # 894 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4075 bint%bump%geom%nl0 = nl_in
4078 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
4079 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
4080 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
4084 # 904 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4085 if (ltrans_out)
then
4086 vec_out = transpose(array_out)
4090 # 910 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4091 # 919 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4094 if (bint%bump%geom%same_grid)
then
4095 call bint%apply_interp_ad(vec_out,vec_in)
4097 call bint%apply_interp_ad(vec_out,vec_in_tmp)
4098 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4102 shp_in = shape(array_in)
4104 # 938 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4105 # 939 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4108 array_in(:,:,il) = transpose(reshape(vec_in(:,il),(/shp_in(2),shp_in(1)/)))
4110 array_in(:,:,il) = reshape(vec_in(:,il),shp_in(1:2))
4113 # 947 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4117 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4124 # 958 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4125 # 837 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4126 # 838 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4137 real(kind_real),
intent(in) :: array_out(:,:,:)
4138 real(kind_real),
intent(inout) :: array_in(:)
4139 logical,
intent(in),
optional :: trans_out
4140 logical,
intent(in),
optional :: trans_in
4143 integer :: nl_in,nl_out
4144 integer :: shp_in(1)
4146 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
4147 logical :: ltrans_in,ltrans_out
4159 ltrans_out = .false.
4160 if (
present(trans_out)) ltrans_out = trans_out
4162 if (
present(trans_in)) ltrans_in = trans_in
4165 # 879 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4166 if (ltrans_out)
then
4167 nl_out =
size(array_out,1)
4169 nl_out =
size(array_out,3)
4171 # 885 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4172 # 886 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4174 # 894 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4175 bint%bump%geom%nl0 = nl_in
4178 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
4179 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
4180 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
4184 # 910 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4185 # 911 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4187 if (ltrans_out)
then
4188 vec_out(:,il) = reshape(transpose(array_out(:,:,il)),(/bint%nouta/))
4190 vec_out(:,il) = reshape(array_out(:,:,il),(/bint%nouta/))
4193 # 919 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4196 if (bint%bump%geom%same_grid)
then
4197 call bint%apply_interp_ad(vec_out,vec_in)
4199 call bint%apply_interp_ad(vec_out,vec_in_tmp)
4200 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4204 shp_in = shape(array_in)
4205 array_in = vec_in(:,1)
4206 # 938 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4207 # 947 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4211 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4218 # 838 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4229 real(kind_real),
intent(in) :: array_out(:,:,:)
4230 real(kind_real),
intent(inout) :: array_in(:,:)
4231 logical,
intent(in),
optional :: trans_out
4232 logical,
intent(in),
optional :: trans_in
4235 integer :: nl_in,nl_out
4236 integer :: shp_in(2)
4238 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
4239 logical :: ltrans_in,ltrans_out
4251 ltrans_out = .false.
4252 if (
present(trans_out)) ltrans_out = trans_out
4254 if (
present(trans_in)) ltrans_in = trans_in
4257 # 879 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4258 if (ltrans_out)
then
4259 nl_out =
size(array_out,1)
4261 nl_out =
size(array_out,3)
4263 # 885 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4264 # 888 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4266 nl_in =
size(array_in,1)
4268 nl_in =
size(array_in,2)
4270 # 894 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4271 bint%bump%geom%nl0 = nl_in
4274 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
4275 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
4276 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
4280 # 910 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4281 # 911 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4283 if (ltrans_out)
then
4284 vec_out(:,il) = reshape(transpose(array_out(:,:,il)),(/bint%nouta/))
4286 vec_out(:,il) = reshape(array_out(:,:,il),(/bint%nouta/))
4289 # 919 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4292 if (bint%bump%geom%same_grid)
then
4293 call bint%apply_interp_ad(vec_out,vec_in)
4295 call bint%apply_interp_ad(vec_out,vec_in_tmp)
4296 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4300 shp_in = shape(array_in)
4302 # 932 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4304 array_in = transpose(vec_in)
4308 # 938 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4309 # 947 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4313 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4320 # 838 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4331 real(kind_real),
intent(in) :: array_out(:,:,:)
4332 real(kind_real),
intent(inout) :: array_in(:,:,:)
4333 logical,
intent(in),
optional :: trans_out
4334 logical,
intent(in),
optional :: trans_in
4337 integer :: nl_in,nl_out
4338 integer :: shp_in(3)
4340 real(kind_real),
allocatable :: vec_in(:,:),vec_in_tmp(:,:),vec_out(:,:)
4341 logical :: ltrans_in,ltrans_out
4353 ltrans_out = .false.
4354 if (
present(trans_out)) ltrans_out = trans_out
4356 if (
present(trans_in)) ltrans_in = trans_in
4359 # 879 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4360 if (ltrans_out)
then
4361 nl_out =
size(array_out,1)
4363 nl_out =
size(array_out,3)
4365 # 885 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4366 # 888 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4368 nl_in =
size(array_in,1)
4370 nl_in =
size(array_in,3)
4372 # 894 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4373 bint%bump%geom%nl0 = nl_in
4376 allocate(vec_out(bint%nouta,bint%bump%geom%nl0))
4377 if (.not.bint%bump%geom%same_grid)
allocate(vec_in_tmp(bint%bump%geom%nc0a,bint%bump%geom%nl0))
4378 allocate(vec_in(bint%bump%geom%nmga,bint%bump%geom%nl0))
4382 # 910 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4383 # 911 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4385 if (ltrans_out)
then
4386 vec_out(:,il) = reshape(transpose(array_out(:,:,il)),(/bint%nouta/))
4388 vec_out(:,il) = reshape(array_out(:,:,il),(/bint%nouta/))
4391 # 919 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4394 if (bint%bump%geom%same_grid)
then
4395 call bint%apply_interp_ad(vec_out,vec_in)
4397 call bint%apply_interp_ad(vec_out,vec_in_tmp)
4398 call bint%bump%geom%copy_c0a_to_mga(bint%bump%mpl,vec_in_tmp,vec_in)
4402 shp_in = shape(array_in)
4404 # 938 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4405 # 939 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4408 array_in(:,:,il) = transpose(reshape(vec_in(:,il),(/shp_in(2),shp_in(1)/)))
4410 array_in(:,:,il) = reshape(vec_in(:,il),shp_in(1:2))
4413 # 947 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4417 if (.not.bint%bump%geom%same_grid)
deallocate(vec_in_tmp)
4424 # 958 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4425 # 959 "/Users/miesch/JEDI/code/working_copy/public/fv3-bundle/saber/src/saber/interpolation/interpolatorbump_mod.fypp"
4438 real(kind_real),
intent(in) :: array_out(bint%nouta,bint%bump%geom%nl0)
4439 real(kind_real),
intent(out) :: array_in(bint%bump%geom%nc0a,bint%bump%geom%nl0)
4443 real(kind_real) :: array_in_ext(bint%nc0b,bint%bump%geom%nl0)
4454 if (bint%nouta > 0)
then
4457 do ilev=1,bint%bump%geom%nl0
4458 call bint%h%apply_ad(bint%bump%mpl,array_out(:,ilev),array_in_ext(:,ilev))
4467 call bint%com%red(bint%bump%mpl,array_in_ext,array_in)
4495 call bint%geom_out%dealloc()
4523 call bint%deallocate_outgrid()
4524 call bint%h%dealloc()
4525 call bint%com%dealloc()
4526 call bint%bump%dealloc()
4557 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_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_driver(bint, mpl, rng, nam, geom)
Initialize BUMP to perform interpolation.
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_init(bint, comm, lon1d_in, lat1d_in, lon_in, lat_in, afunctionspace_in, lon1d_out, lat1d_out, lon_out, lat_out, afunctionspace_out, nl, masks, config)
Initialize interpolation object The input and output fields are ATLAS_FieldSet objects that are assum...
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_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.
Generic ranks, dimensions and types.