test_solver6 Program

Uses

  • program~~test_solver6~~UsesGraph program~test_solver6 test_solver6 forunittest forunittest program~test_solver6->forunittest module~forsolver forsolver program~test_solver6->module~forsolver module~forsolver_kinds forsolver_kinds program~test_solver6->module~forsolver_kinds module~my_function6 my_function6 program~test_solver6->module~my_function6 module~forsolver->module~forsolver_kinds fordiff fordiff module~forsolver->fordiff module~my_function6->module~forsolver_kinds

Calls

program~~test_solver6~~CallsGraph program~test_solver6 test_solver6 check check program~test_solver6->check none~solve nlsolver%solve program~test_solver6->none~solve proc~set_options nlsolver%set_options program~test_solver6->proc~set_options proc~newton_complex_step_rel_t0 nlsolver%newton_complex_step_rel_T0 none~solve->proc~newton_complex_step_rel_t0 proc~newton_complex_step_rel_t1 nlsolver%newton_complex_step_rel_T1 none~solve->proc~newton_complex_step_rel_t1 proc~newton_rel_t0 nlsolver%newton_rel_T0 none~solve->proc~newton_rel_t0 proc~newton_rel_t1 nlsolver%newton_rel_T1 none~solve->proc~newton_rel_t1 proc~modified_quasi_cs_newton_method_t0 modified_quasi_cs_newton_method_T0 proc~newton_complex_step_rel_t0->proc~modified_quasi_cs_newton_method_t0 proc~quasi_cs_newton_method_t0 quasi_cs_newton_method_T0 proc~newton_complex_step_rel_t0->proc~quasi_cs_newton_method_t0 proc~modified_quasi_cs_newton_method_t1 modified_quasi_cs_newton_method_T1 proc~newton_complex_step_rel_t1->proc~modified_quasi_cs_newton_method_t1 proc~quasi_cs_newton_method_t1 quasi_cs_newton_method_T1 proc~newton_complex_step_rel_t1->proc~quasi_cs_newton_method_t1 proc~modified_newton_method_t0 modified_newton_method_T0 proc~newton_rel_t0->proc~modified_newton_method_t0 proc~modified_quasi_fd_newton_method_t0 modified_quasi_fd_newton_method_T0 proc~newton_rel_t0->proc~modified_quasi_fd_newton_method_t0 proc~newton_method_t0 newton_method_T0 proc~newton_rel_t0->proc~newton_method_t0 proc~quasi_fd_newton_method_t0 quasi_fd_newton_method_T0 proc~newton_rel_t0->proc~quasi_fd_newton_method_t0 proc~modified_newton_method_t1 modified_newton_method_T1 proc~newton_rel_t1->proc~modified_newton_method_t1 proc~modified_quasi_fd_newton_method_t1 modified_quasi_fd_newton_method_T1 proc~newton_rel_t1->proc~modified_quasi_fd_newton_method_t1 proc~newton_method_t1 newton_method_T1 proc~newton_rel_t1->proc~newton_method_t1 proc~quasi_fd_newton_method_t1 quasi_fd_newton_method_T1 proc~newton_rel_t1->proc~quasi_fd_newton_method_t1 interface~solve solve proc~modified_newton_method_t1->interface~solve derivative derivative proc~modified_quasi_cs_newton_method_t0->derivative proc~modified_quasi_cs_newton_method_t1->derivative proc~modified_quasi_cs_newton_method_t1->interface~solve proc~modified_quasi_fd_newton_method_t0->derivative proc~modified_quasi_fd_newton_method_t1->derivative proc~modified_quasi_fd_newton_method_t1->interface~solve proc~newton_method_t1->interface~solve proc~quasi_cs_newton_method_t0->derivative proc~quasi_cs_newton_method_t1->derivative proc~quasi_cs_newton_method_t1->interface~solve proc~quasi_fd_newton_method_t0->derivative proc~quasi_fd_newton_method_t1->derivative proc~quasi_fd_newton_method_t1->interface~solve proc~solver_lin solver_lin interface~solve->proc~solver_lin proc~gels_rel gels_rel proc~solver_lin->proc~gels_rel proc~gesv_rel gesv_rel proc~solver_lin->proc~gesv_rel interface~gels gels proc~gels_rel->interface~gels interface~gesv gesv proc~gesv_rel->interface~gesv

Variables

Type Attributes Name Initial
real(kind=rk) :: expected_x
type(nlsolver) :: nls
type(unit_test) :: ut
real(kind=rk) :: x

Source Code

program test_solver6

   use forsolver_kinds, only: rk
   use forsolver, only: nlsolver
   use my_function6, only: F1
   use forunittest, only: unit_test

   implicit none

   type(nlsolver) :: nls
   real(rk)       :: x, expected_x
   type(unit_test) :: ut

   call nls%set_options(&
      nl_method   = 'newton-quasi-fd-modified',&
      fdm_method  = 'central',&
      fdm_tol     = 1e-6_rk,&
      nmp         = 2,&
      maxit       = 100,&
      TolFun      = 1e-4_rk,&
      verbosity   = 0)

   call nls%solve(F=F1, x0=10.0_rk, x_sol=x)

   ! check if solution is close to ~=0.53128
   expected_x = 0.53128_rk
   call ut%check(x, expected_x, 1.0e-4_rk, 'test_solver6' )

end program test_solver6