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