<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">hi Andy,<div class=""><br class=""></div><div class="">In the category of “better late than never?”, here is my overdue reply.</div><div class=""><br class=""></div><div class="">FLASH doesn’t have a built-in mechanism for doing this, but it can be done.  I have done it before with FLASH v2.5 years ago.  I never got around to bringing the functionality to FLASH3/4.  The basic idea is to start a “new” simulation with an arbitrary grid setup and read data from a checkpoint file that is interpolated onto the new, arbitrary grid.</div><div class=""><br class=""></div><div class="">I’m attaching the init_block.F90 that I wrote to do this in FLASH2.5.  I only ever did this for 2D simulations.  And the approach in this file is, I now realize, wildly inefficient.  I basically had every processor reading the whole checkpoint file.  Which works if you’ve got loads of memory!  But is dumb (but hey, I was a second-year grad student, so….).  A better approach would be to read the metadata and block bounding boxes on every processor, then search to see what blocks from the checkpoint that the regions of the new domain owned by the current process needs.  Then read in only those blocks from the checkpoint file, interpolate appropriately, and then release the memory used for the checkpoint data.</div><div class=""><br class=""></div><div class="">If I remember correctly, this init_block.F90 does conservative averaging/interpolation so that things like mass and energy are conserved from the old grid to the new.  But no guarantees there!  Caveat emptor!</div><div class=""><br class=""></div><div class="">Best,</div><div class="">Sean</div><div class=""></div></body></html>