m_modmet_find_zero Module

Finds a bracketed root using a safeguarded secant/Regula Falsi hybrid. Reference: KNMI ZEROAB safeguarded root-finding approach.


Used by

  • module~~m_modmet_find_zero~~UsedByGraph module~m_modmet_find_zero m_modmet_find_zero module~m_modmet_flxln2 m_modmet_flxln2 module~m_modmet_flxln2->module~m_modmet_find_zero module~m_modnet_z0corr m_modnet_z0corr module~m_modnet_z0corr->module~m_modmet_find_zero module~modmet modmet module~modmet->module~m_modmet_find_zero module~modmet->module~m_modmet_flxln2 module~m_modmet_lusthov m_modmet_lusthov module~modmet->module~m_modmet_lusthov module~m_modmet_lusthov->module~m_modmet_flxln2

Abstract Interfaces

abstract interface

Callback interface for scalar root finding. Reference: ZEROAB routine interface used in KNMI legacy implementation.

  • public pure function solver_function(x) result(fx)

    Arguments

    Type IntentOptional Attributes Name
    real, intent(in) :: x

    trial x coordinate

    Return Value type(modmet_solver_result)


Derived Types

type, public ::  modmet_solver_result

Components

Type Visibility Attributes Name Initial
real, public :: value
real, public :: root
real, public :: payload(10)

Functions

public pure function modmet_find_zero(f, x0, x1, tol, max_iter) result(root)

Arguments

Type IntentOptional Attributes Name
procedure(solver_function) :: f

function for which we want to find a root

real, intent(in) :: x0

left bracket bound

real, intent(in) :: x1

right bracket bound

real, intent(in) :: tol

convergence tolerance on x

integer, intent(in) :: max_iter

maximum number of iterations

Return Value type(modmet_solver_result)