mod_optimize Module

This module contains optimization subroutine and parametric model


Uses

  • module~~mod_optimize~~UsesGraph module~mod_optimize mod_optimize module~mod_constants mod_constants module~mod_optimize->module~mod_constants module~mod_array mod_array module~mod_optimize->module~mod_array iso_fortran_env iso_fortran_env module~mod_constants->iso_fortran_env module~mod_array->module~mod_constants

Used by

  • module~~mod_optimize~~UsedByGraph module~mod_optimize mod_optimize module~mod_functions mod_functions module~mod_functions->module~mod_optimize module~mod_rohsa mod_rohsa module~mod_rohsa->module~mod_optimize module~mod_rohsa->module~mod_functions program~rohsa ROHSA program~rohsa->module~mod_rohsa

Contents


Functions

public pure function gaussian(x, a, m, s)

Gaussian function

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: x
real(kind=xp), intent(in) :: a
real(kind=xp), intent(in) :: m
real(kind=xp), intent(in) :: s

Return Value real(kind=xp)

public pure function myfunc_spec(residual)

Arguments

Type IntentOptional AttributesName
real(kind=xp), intent(in), dimension(:), allocatable:: residual

Return Value real(kind=xp)


Subroutines

public subroutine minimize_spec(n, m, x, lb, ub, line, dim_v, n_gauss, maxiter, iprint)

Minimize algorithn for a specturm

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: n
integer, intent(in) :: m
real(kind=xp), intent(in), dimension(:), allocatable:: x
real(kind=xp), intent(in), dimension(:), allocatable:: lb
real(kind=xp), intent(in), dimension(:), allocatable:: ub
real(kind=xp), intent(in), dimension(dim_v):: line
integer, intent(in) :: dim_v
integer, intent(in) :: n_gauss
integer, intent(in) :: maxiter
integer, intent(in) :: iprint

public subroutine myresidual(params, line, residual, n_gauss, dim_v)

Arguments

Type IntentOptional AttributesName
real(kind=xp), intent(in), dimension(3*n_gauss):: params
real(kind=xp), intent(in), dimension(dim_v):: line
real(kind=xp), intent(inout), dimension(:), allocatable:: residual
integer, intent(in) :: n_gauss
integer, intent(in) :: dim_v

private subroutine mygrad_spec(n_gauss, gradient, residual, params, dim_v)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: n_gauss
real(kind=xp), intent(inout), dimension(3*n_gauss):: gradient
real(kind=xp), intent(in), dimension(:), allocatable:: residual
real(kind=xp), intent(in), dimension(3*n_gauss):: params
integer, intent(in) :: dim_v

public subroutine minimize(n, m, x, lb, ub, cube, n_gauss, dim_v, dim_y, dim_x, lambda_amp, lambda_mu, lambda_sig, lambda_var_amp, lambda_var_mu, lambda_var_sig, maxiter, kernel, iprint, std_map, mean_amp, mean_mu, mean_sig)

Arguments

Type IntentOptional AttributesName
integer, intent(in) :: n
integer, intent(in) :: m
real(kind=xp), intent(in), dimension(:), allocatable:: x
real(kind=xp), intent(in), dimension(:), allocatable:: lb
real(kind=xp), intent(in), dimension(:), allocatable:: ub
real(kind=xp), intent(in), dimension(:,:,:), allocatable:: cube
integer, intent(in) :: n_gauss
integer, intent(in) :: dim_v
integer, intent(in) :: dim_y
integer, intent(in) :: dim_x
real(kind=xp), intent(in) :: lambda_amp
real(kind=xp), intent(in) :: lambda_mu
real(kind=xp), intent(in) :: lambda_sig
real(kind=xp), intent(in) :: lambda_var_amp
real(kind=xp), intent(in) :: lambda_var_mu
real(kind=xp), intent(in) :: lambda_var_sig
integer, intent(in) :: maxiter
real(kind=xp), intent(in), dimension(:,:), allocatable:: kernel
integer, intent(in) :: iprint
real(kind=xp), intent(in), dimension(:,:), allocatable:: std_map
real(kind=xp), intent(in), dimension(:), allocatable:: mean_amp
real(kind=xp), intent(in), dimension(:), allocatable:: mean_mu
real(kind=xp), intent(in), dimension(:), allocatable:: mean_sig

private subroutine f_g_cube(f, g, cube, beta, dim_v, dim_y, dim_x, n_gauss, kernel, lambda_amp, lambda_mu, lambda_sig, lambda_var_amp, lambda_var_mu, lambda_var_sig, std_map, mean_amp, mean_mu, mean_sig)

Arguments

Type IntentOptional AttributesName
real(kind=xp), intent(inout) :: f
real(kind=xp), intent(inout), dimension(:), allocatable:: g
real(kind=xp), intent(in), dimension(:,:,:), allocatable:: cube
real(kind=xp), intent(in), dimension(:), allocatable:: beta
integer, intent(in) :: dim_v
integer, intent(in) :: dim_y
integer, intent(in) :: dim_x
integer, intent(in) :: n_gauss
real(kind=xp), intent(in), dimension(:,:), allocatable:: kernel
real(kind=xp), intent(in) :: lambda_amp
real(kind=xp), intent(in) :: lambda_mu
real(kind=xp), intent(in) :: lambda_sig
real(kind=xp), intent(in) :: lambda_var_amp
real(kind=xp), intent(in) :: lambda_var_mu
real(kind=xp), intent(in) :: lambda_var_sig
real(kind=xp), intent(in), dimension(:,:), allocatable:: std_map
real(kind=xp), intent(in), dimension(:), allocatable:: mean_amp
real(kind=xp), intent(in), dimension(:), allocatable:: mean_mu
real(kind=xp), intent(in), dimension(:), allocatable:: mean_sig