measure_controller_t Derived Type

type, public :: measure_controller_t

Measure controller for managing time steps The idea is that this controller will keep track of the last value added and the last position added The procedures will automatically add or not a given position get_pos_array will return the array of positions in which the value can be added get_max_array_size will return the maximum size of the array of positions that can be added


Components

Type Visibility Attributes Name Initial
real(kind=dp), public :: last_value_added = 0.0_dp

Last value added

integer(kind=i4), public :: last_position_added = 0

Last position added

real(kind=dp), public :: position_step = 1.0_dp

Position step size

real(kind=dp), public :: min_value = 0.0_dp

Minimum value for the measure

procedure(measure_controller_get_pos_array_i), public, pointer :: get_pos_array => null()

Get position array

procedure(measure_controller_get_max_array_size_i), public, pointer :: get_max_array_size => null()

Get maximum array size

procedure(measure_controller_update), public, pointer :: update => null()

Update measure


Type-Bound Procedures

procedure, public :: init => measure_controller_init

Initialize measure controller

  • private subroutine measure_controller_init(controller, interval_type, step, min_value)

    Arguments

    Type IntentOptional Attributes Name
    class(measure_controller_t), intent(inout) :: controller
    character(len=*), intent(in) :: interval_type
    real(kind=dp), intent(in), optional :: step
    real(kind=dp), intent(in), optional :: min_value

procedure, public :: reset => measure_controller_reset

Reset measure controller

  • private subroutine measure_controller_reset(controller)

    Arguments

    Type IntentOptional Attributes Name
    class(measure_controller_t), intent(inout) :: controller