We use unk1 in both our transport step and the test refinement step (since we check several variables and there's no easy way to do this with work arrays and no guardcells). For the test refinement step, we set gcell_on_cc to .false. except for two or three variables before doing the mpi_amr_comm_setup and amr_1blk_guardcell. At the end of the subroutine, we set gcell_on_cc back to .true. for all variables. However, in the next transport step, the guardcell values are wrong. This happens at block interfaces where the neighbors are on a different processor and at refinement jumps. Using gcell_on_cc seems like it should be straightforward, am I missing something here, or is there a bug somewhere.