Deallocate all allocatable arrays
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mg_t), | intent(inout) | :: | mg |
subroutine mg_deallocate_storage(mg) type(mg_t), intent(inout) :: mg integer :: lvl if (.not. mg%is_allocated) error stop "deallocate_storage: tree is not allocated" deallocate(mg%boxes) deallocate(mg%buf) deallocate(mg%comm_restrict%n_send) deallocate(mg%comm_restrict%n_recv) deallocate(mg%comm_prolong%n_send) deallocate(mg%comm_prolong%n_recv) deallocate(mg%comm_ghostcell%n_send) deallocate(mg%comm_ghostcell%n_recv) do lvl = mg%lowest_lvl, mg%highest_lvl deallocate(mg%lvls(lvl)%ids) deallocate(mg%lvls(lvl)%leaves) deallocate(mg%lvls(lvl)%parents) deallocate(mg%lvls(lvl)%ref_bnds) deallocate(mg%lvls(lvl)%my_ids) deallocate(mg%lvls(lvl)%my_leaves) deallocate(mg%lvls(lvl)%my_parents) deallocate(mg%lvls(lvl)%my_ref_bnds) end do mg%is_allocated = .false. mg%n_boxes = 0 mg%phi_bc_data_stored = .false. end subroutine mg_deallocate_storage