silo_obj_Final Subroutine

private impure subroutine silo_obj_Final(this)

Finalizes structure and frees memory.

Type Bound

silo_obj

Arguments

Type IntentOptional Attributes Name
class(silo_obj), intent(inout) :: this

A silo object


Calls

proc~~silo_obj_final~~CallsGraph proc~silo_obj_final silo_obj%silo_obj_Final dbclose dbclose proc~silo_obj_final->dbclose proc~parallel_obj_rankisroot parallel_obj%parallel_obj_RankIsRoot proc~silo_obj_final->proc~parallel_obj_rankisroot

Called by

proc~~silo_obj_final~~CalledByGraph proc~silo_obj_final silo_obj%silo_obj_Final proc~eulerian_set_writesilo eulerian_set%eulerian_set_WriteSILO proc~eulerian_set_writesilo->proc~silo_obj_final proc~particle_set_writesilo particle_set%particle_set_WriteSilo proc~particle_set_writesilo->proc~silo_obj_final proc~respart_set_writesilo ResPart_set%ResPart_set_WriteSILO proc~respart_set_writesilo->proc~silo_obj_final proc~cdifs_obj_writeoutputdata cdifs_obj_WriteOutputData proc~cdifs_obj_writeoutputdata->proc~respart_set_writesilo proc~grans_obj_writeoutputdata grans_obj_WriteOutputData proc~grans_obj_writeoutputdata->proc~respart_set_writesilo interface~cdifs_obj_writeoutputdata cdifs_obj%cdifs_obj_WriteOutputData interface~cdifs_obj_writeoutputdata->proc~cdifs_obj_writeoutputdata interface~grans_obj_writeoutputdata grans_obj%grans_obj_WriteOutputData interface~grans_obj_writeoutputdata->proc~grans_obj_writeoutputdata proc~cdifs_obj_preparesolver cdifs_obj_PrepareSolver proc~cdifs_obj_preparesolver->interface~cdifs_obj_writeoutputdata proc~grans_obj_preparesolver grans_obj_PrepareSolver proc~grans_obj_preparesolver->interface~grans_obj_writeoutputdata interface~cdifs_obj_preparesolver cdifs_obj%cdifs_obj_PrepareSolver interface~cdifs_obj_preparesolver->proc~cdifs_obj_preparesolver interface~grans_obj_preparesolver grans_obj%grans_obj_PrepareSolver interface~grans_obj_preparesolver->proc~grans_obj_preparesolver

Source Code

    impure subroutine silo_obj_Final(this)
      !> Finalizes structure and frees memory.
      implicit none
      class(silo_obj),  intent(inout) :: this                                  !! A silo object
      ! Work variables
      integer :: ierr

      if (this%parallel%RankIsRoot()) then
        ! Close the VDB file
        ierr = DBclose(this%fid_VDB)
        ! Close the VisIt
        close(this%fid_VisIt)
      end if

      ! Deallocate arrays
      if (allocated(this%group_ids))   deallocate(this%group_ids)
      if (allocated(this%access_flag)) deallocate(this%access_flag)

      ! Nullify pointers
      this%parallel => null()

      return
    end subroutine silo_obj_Final