nonlin 1.5.2
A library that provides routines to compute the solutions to systems of nonlinear equations.
Loading...
Searching...
No Matches
nonlin_optimize_line_search.f90
1! nonlin_optimize_line_search.f90
2
3submodule(nonlin_optimize) nonlin_optimize_line_search
4 implicit none
5contains
6! ------------------------------------------------------------------------------
7 module subroutine lso_get_line_search(this, ls)
8 class(line_search_optimizer), intent(in) :: this
9 class(line_search), intent(out), allocatable :: ls
10 if (allocated(this%m_lineSearch)) &
11 allocate(ls, source = this%m_lineSearch)
12 end subroutine
13
14! ----------------------
15 module subroutine lso_set_line_search(this, ls)
16 class(line_search_optimizer), intent(inout) :: this
17 class(line_search), intent(in) :: ls
18 if (allocated(this%m_lineSearch)) deallocate(this%m_lineSearch)
19 allocate(this%m_lineSearch, source = ls)
20 end subroutine
21
22! ------------------------------------------------------------------------------
23 module subroutine lso_set_default(this)
24 class(line_search_optimizer), intent(inout) :: this
25 type(line_search) :: ls
26 call this%set_line_search(ls)
27 end subroutine
28
29! ------------------------------------------------------------------------------
30 pure module function lso_is_line_search_defined(this) result(x)
31 class(line_search_optimizer), intent(in) :: this
32 logical :: x
33 x = allocated(this%m_lineSearch)
34 end function
35
36! ------------------------------------------------------------------------------
37 pure module function lso_get_use_search(this) result(x)
38 class(line_search_optimizer), intent(in) :: this
39 logical :: x
40 x = this%m_useLineSearch
41 end function
42
43! --------------------
44 module subroutine lso_set_use_search(this, x)
45 class(line_search_optimizer), intent(inout) :: this
46 logical, intent(in) :: x
47 this%m_useLineSearch = x
48 end subroutine
49
50! ------------------------------------------------------------------------------
51 pure module function lso_get_var_tol(this) result(x)
52 class(line_search_optimizer), intent(in) :: this
53 real(real64) :: x
54 x = this%m_xtol
55 end function
56
57! --------------------
58 module subroutine lso_set_var_tol(this, x)
59 class(line_search_optimizer), intent(inout) :: this
60 real(real64), intent(in) :: x
61 this%m_xtol = x
62 end subroutine
63end submodule
nonlin_optimize