Finalization method for a minimizer
NOTE: Also closes the logging file
| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(t_minimizer_mhd3d), | intent(inout) | :: | sf |
minimizer |
SUBROUTINE Free_minimizer(sf) ! MODULES !------------------------------------------------------------------------------------------------------------------------------- ! INPUT VARIABLES CLASS(t_minimizer_mhd3d), INTENT(INOUT) :: sf !! minimizer !------------------------------------------------------------------------------------------------------------------------------- ! OUTPUT VARIABLES !------------------------------------------------------------------------------------------------------------------------------- ! LOCAL VARIABLES INTEGER :: i !! iteration variable !=============================================================================================================================== ASSOCIATE(vars=>sf%vars) CLOSE(vars%logUnit) DO i=-1,1 IF(ALLOCATED(vars%dofs)) CALL vars%dofs(i)%free() IF(ALLOCATED(vars%temp_dofs)) CALL vars%temp_dofs(i)%free() END DO DO i=-1,0 IF(ALLOCATED(vars%force)) CALL vars%force(i)%free() END DO SDEALLOCATE(vars%dofs) SDEALLOCATE(vars%temp_dofs) SDEALLOCATE(vars%force) SELECT TYPE(vars) TYPE IS(t_accelerated_gradient_descent_vars) DO i=-1,1 IF(ALLOCATED(vars%velocity)) CALL vars%velocity(i)%free() END DO SDEALLOCATE(vars%velocity) SDEALLOCATE(vars%tau) END SELECT !Type END ASSOCIATE !vars SDEALLOCATE(sf%vars) END SUBROUTINE Free_minimizer