Clean up allocated memory in mqc_config_t
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(mqc_config_t), | intent(inout) | :: | this |
| Type | Visibility | Attributes | Name | Initial | |||
|---|---|---|---|---|---|---|---|
| integer, | private | :: | i |
subroutine config_destroy(this) !! Clean up allocated memory in mqc_config_t class(mqc_config_t), intent(inout) :: this integer :: i if (allocated(this%schema_name)) deallocate (this%schema_name) if (allocated(this%schema_version)) deallocate (this%schema_version) if (allocated(this%units)) deallocate (this%units) if (allocated(this%basis)) deallocate (this%basis) if (allocated(this%aux_basis)) deallocate (this%aux_basis) if (allocated(this%log_level)) deallocate (this%log_level) if (allocated(this%frag_method)) deallocate (this%frag_method) if (allocated(this%embedding)) deallocate (this%embedding) if (allocated(this%cutoff_method)) deallocate (this%cutoff_method) if (allocated(this%distance_metric)) deallocate (this%distance_metric) if (allocated(this%fragment_cutoffs)) deallocate (this%fragment_cutoffs) call this%geometry%destroy() if (allocated(this%fragments)) then do i = 1, size(this%fragments) call this%fragments(i)%destroy() end do deallocate (this%fragments) end if if (allocated(this%bonds)) deallocate (this%bonds) ! Clean up molecules array (multi-molecule mode) if (allocated(this%molecules)) then do i = 1, size(this%molecules) call this%molecules(i)%destroy() end do deallocate (this%molecules) end if end subroutine config_destroy