mango.F90 File Reference

Go to the source code of this file.

Data Types

type  mango_mod::mango_problem
 An object that represents an optimization problem. More...
 
interface  mango_mod::C_mango_problem_create
 
interface  mango_mod::C_mango_problem_create_least_squares
 
interface  mango_mod::C_mango_problem_destroy
 
interface  mango_mod::C_mango_set_algorithm
 
interface  mango_mod::C_mango_set_algorithm_from_string
 
interface  mango_mod::C_mango_read_input_file
 
interface  mango_mod::C_mango_set_output_filename
 
interface  mango_mod::C_mango_mpi_init
 
interface  mango_mod::C_mango_mpi_partition_set_custom
 
interface  mango_mod::C_mango_set_N_worker_groups
 
interface  mango_mod::C_mango_get_N_worker_groups
 
interface  mango_mod::C_mango_optimize
 
interface  mango_mod::C_mango_get_mpi_rank_world
 
interface  mango_mod::C_mango_get_mpi_rank_worker_groups
 
interface  mango_mod::C_mango_get_mpi_rank_group_leaders
 
interface  mango_mod::C_mango_get_N_procs_world
 
interface  mango_mod::C_mango_get_N_procs_worker_groups
 
interface  mango_mod::C_mango_get_N_procs_group_leaders
 
interface  mango_mod::C_mango_get_proc0_world
 
interface  mango_mod::C_mango_get_proc0_worker_groups
 
interface  mango_mod::C_mango_get_mpi_comm_world
 
interface  mango_mod::C_mango_get_mpi_comm_worker_groups
 
interface  mango_mod::C_mango_get_mpi_comm_group_leaders
 
interface  mango_mod::C_mango_get_N_parameters
 
interface  mango_mod::C_mango_get_N_terms
 
interface  mango_mod::C_mango_get_worker_group
 
interface  mango_mod::C_mango_get_best_function_evaluation
 
interface  mango_mod::C_mango_get_function_evaluations
 
interface  mango_mod::C_mango_set_max_function_evaluations
 
interface  mango_mod::C_mango_set_centered_differences
 
interface  mango_mod::C_mango_does_algorithm_exist
 
interface  mango_mod::C_mango_set_finite_difference_step_size
 
interface  mango_mod::C_mango_set_bound_constraints
 
interface  mango_mod::C_mango_set_verbose
 
interface  mango_mod::C_mango_set_print_residuals_in_output_file
 
interface  mango_mod::C_mango_set_user_data
 
interface  mango_mod::C_mango_stop_workers
 
interface  mango_mod::C_mango_mobilize_workers
 
interface  mango_mod::C_mango_continue_worker_loop
 
interface  mango_mod::C_mango_mpi_partition_write
 
interface  mango_mod::C_mango_set_relative_bound_constraints
 
interface  mango_mod::C_mango_set_N_line_search
 
interface  mango_mod::objective_function_interface
 Format for the user-supplied subroutine that computes the objective function for a general (non least-squares) optimization problem. More...
 
interface  mango_mod::vector_function_interface
 Format for the user-supplied subroutine that computes the residuals for a least-squares optimization problem. More...
 

Modules

module  mango_mod
 This Fortran module provides the Fortran API for calling MANGO from outside applications.
 

Functions/Subroutines

subroutine mango_mod::mango_problem_create (this, N_parameters, state_vector, objective_function)
 Create a standard (i.e. non-least-squares) optimization problem. More...
 
subroutine mango_mod::mango_problem_create_least_squares (this, N_parameters, state_vector, N_terms, targets, sigmas, best_residual_function, residual_function)
 Create a least-squares optimization problem. More...
 
subroutine mango_mod::mango_problem_destroy (this)
 Delete an optimization problem, freeing memory used internally by MANGO. More...
 
subroutine mango_mod::mango_set_algorithm (this, algorithm)
 Sets the optimization algorithm. More...
 
subroutine mango_mod::mango_set_algorithm_from_string (this, algorithm_str)
 Sets the optimization algorithm. More...
 
subroutine mango_mod::mango_read_input_file (this, filename)
 Reads in the number of worker groups and algorithm from a file. More...
 
subroutine mango_mod::mango_set_output_filename (this, filename)
 Sets the name of the output file that will record values of the objective function at each evaluation. More...
 
subroutine mango_mod::mango_mpi_init (this, mpi_comm)
 Initialize MANGO's internal MPI data that describes the partitioning of the processes into worker groups. More...
 
subroutine mango_mod::mango_mpi_partition_set_custom (this, comm_world, comm_group_leaders, comm_worker_groups)
 Use a user-supplied partitioning of the MPI processes into worker groups. More...
 
subroutine mango_mod::mango_set_n_worker_groups (this, N_worker_groups)
 Set the number of worker groups. More...
 
integer function mango_mod::mango_get_n_worker_groups (this)
 Get the number of worker groups. More...
 
double precision function mango_mod::mango_optimize (this)
 Carry out the optimization. More...
 
integer function mango_mod::mango_get_mpi_rank_world (this)
 Get the MPI rank of this processor in MANGO's world communicator. More...
 
integer function mango_mod::mango_get_mpi_rank_worker_groups (this)
 Get the MPI rank of this processor in MANGO's "worker groups" communicator. More...
 
integer function mango_mod::mango_get_mpi_rank_group_leaders (this)
 Get the MPI rank of this processor in MANGO's "group leaders" communicator. More...
 
integer function mango_mod::mango_get_n_procs_world (this)
 Get the number of MPI processors in MANGO's world communicator. More...
 
integer function mango_mod::mango_get_n_procs_worker_groups (this)
 Get the number of MPI processors in the worker group that this processor belongs to. More...
 
integer function mango_mod::mango_get_n_procs_group_leaders (this)
 Get the number of MPI processors in the "group leaders" communicator. More...
 
logical function mango_mod::mango_get_proc0_world (this)
 Determine whether this MPI processor has rank=0 in MANGO's world communicator. More...
 
logical function mango_mod::mango_get_proc0_worker_groups (this)
 Determine whether this MPI processor has rank=0 in MANGO's "worker groups" communicator. More...
 
integer function mango_mod::mango_get_mpi_comm_world (this)
 Get MANGO's "world" MPI communicator. More...
 
integer function mango_mod::mango_get_mpi_comm_worker_groups (this)
 Get MANGO's "worker groups" MPI communicator. More...
 
integer function mango_mod::mango_get_mpi_comm_group_leaders (this)
 Get MANGO's "group leaders" MPI communicator. More...
 
integer function mango_mod::mango_get_n_parameters (this)
 Get the number of independent variables for an optimization problem. More...
 
integer function mango_mod::mango_get_n_terms (this)
 For least-squares optimization problems, get the number of terms that are summed in the objective function. More...
 
integer function mango_mod::mango_get_worker_group (this)
 Determine which worker group this MPI process belongs to. More...
 
integer function mango_mod::mango_get_best_function_evaluation (this)
 For an optimization problem that has already been solved, return the index of the function evaluation corresponding to the optimum. More...
 
integer function mango_mod::mango_get_function_evaluations (this)
 For an optimization problem that has already been solved, return the number of times the objective function was evaluated. More...
 
subroutine mango_mod::mango_set_max_function_evaluations (this, N)
 Set the maximum number of evaluations of the objective function that will be allowed before the optimization is terminated. More...
 
subroutine mango_mod::mango_set_centered_differences (this, centered_differences)
 Control whether 1-sided or centered finite differences will be used to compute derivatives of the objective function. More...
 
logical function mango_mod::mango_does_algorithm_exist (algorithm_str)
 Determine whether MANGO has an optimization algorithm corresponding to the provided string. More...
 
subroutine mango_mod::mango_set_finite_difference_step_size (this, finite_difference_step_size)
 Set an absolute step size for finite difference derivatives. More...
 
subroutine mango_mod::mango_set_bound_constraints (this, lower_bounds, upper_bounds)
 Impose bound constraints on an optimization problem. More...
 
subroutine mango_mod::mango_set_verbose (this, verbose)
 Control how much diagnostic information is printed by MANGO. More...
 
subroutine mango_mod::mango_set_print_residuals_in_output_file (this, print_residuals_in_output_file)
 For least-squares problems, control whether or not to print each individual residual in the MANGO output file. More...
 
subroutine mango_mod::mango_set_user_data (this, user_data)
 Pass a data structure to the objective function whenever it is called. More...
 
subroutine mango_mod::mango_stop_workers (this)
 Tell the worker MPI processes (i.e. those that are not group leaders) that the optimization problem is complete. More...
 
subroutine mango_mod::mango_mobilize_workers (this)
 Tell the worker MPI processes (i.e. those that are not group leaders) to begin an evaluation of the objective function. More...
 
logical function mango_mod::mango_continue_worker_loop (this)
 For an MPI worker, determine whether to carry out another evaluation of the objective function or exit. More...
 
subroutine mango_mod::mango_mpi_partition_write (this, filename)
 Write a file showing the worker group assignments and rank of each process in each MPI communicator. More...
 
subroutine mango_mod::mango_set_relative_bound_constraints (this, min_factor, max_factor, min_radius, preserve_sign)
 Impose bound constraints on an optimization problem, with the bounds chosen as multiples of the initial state vector. More...
 
subroutine mango_mod::mango_set_n_line_search (this, N_line_search)
 Sets the number of points considered as a set for parallel line searches. More...