input_dbl Function

private function input_dbl(me, key, default_value) result(val)

Function returns double value given by the key and stops if key doesn't exist.

Providing one of the optional arguments will not stop program in case of missing key, default return value is in this case is NaN

Type Bound

input_t

Arguments

Type IntentOptional Attributes Name
class(input_t), intent(in) :: me
character(len=*), intent(in) :: key

key to the value in dictionary

real(kind=dp), intent(in), optional :: default_value

default value in case of missing key

Return Value real(kind=dp)

returned value


Calls

proc~~input_dbl~~CallsGraph proc~input_dbl input_t%input_dbl proc~continue_if continue_if proc~input_dbl->proc~continue_if proc~get0d_hdf5 get0d_hdf5 proc~input_dbl->proc~get0d_hdf5 proc~input_has_key input_t%input_has_key proc~input_dbl->proc~input_has_key proc~input_node input_t%input_node proc~input_dbl->proc~input_node to_real to_real proc~input_dbl->to_real proc~get0d_hdf5->proc~input_has_key h5close_f h5close_f proc~get0d_hdf5->h5close_f h5dclose_f h5dclose_f proc~get0d_hdf5->h5dclose_f h5dopen_f h5dopen_f proc~get0d_hdf5->h5dopen_f h5dread_f h5dread_f proc~get0d_hdf5->h5dread_f h5fclose_f h5fclose_f proc~get0d_hdf5->h5fclose_f h5fopen_f h5fopen_f proc~get0d_hdf5->h5fopen_f h5ltget_dataset_info_f h5ltget_dataset_info_f proc~get0d_hdf5->h5ltget_dataset_info_f h5open_f h5open_f proc~get0d_hdf5->h5open_f proc~input_str input_t%input_str proc~get0d_hdf5->proc~input_str get get proc~input_has_key->get proc~select_dict select_dict proc~input_has_key->proc~select_dict proc~input_node->get proc~dictionary_traverse dictionary_traverse proc~input_node->proc~dictionary_traverse proc~input_node->proc~select_dict proc~dictionary_traverse->proc~dictionary_traverse get_dictionary get_dictionary proc~dictionary_traverse->get_dictionary proc~abort_if abort_if proc~dictionary_traverse->proc~abort_if proc~input_str->proc~input_has_key proc~input_str->proc~input_node proc~select_scalar select_scalar proc~input_str->proc~select_scalar

Called by

proc~~input_dbl~~CalledByGraph proc~input_dbl input_t%input_dbl proc~channel_init_part1 channel_init_part1 proc~channel_init_part1->proc~input_dbl proc~signal_init signal_t%signal_init proc~channel_init_part1->proc~signal_init proc~circulator_init_part1 circulator_init_part1 proc~circulator_init_part1->proc~input_dbl proc~ffsrclink_init_part2 FFsrcLink_init_part2 proc~ffsrclink_init_part2->proc~input_dbl proc~friction_factor_blasius_init friction_factor_blasius_init proc~friction_factor_blasius_init->proc~input_dbl proc~friction_factor_central_spiral_init friction_factor_central_spiral_init proc~friction_factor_central_spiral_init->proc~input_dbl proc~friction_factor_katheder_init friction_factor_katheder_init proc~friction_factor_katheder_init->proc~input_dbl proc~fslink_init_part2 FSlink_init_part2 proc~fslink_init_part2->proc~input_dbl proc~hdf5_init hdf5_t%hdf5_init proc~hdf5_init->proc~input_dbl proc~junction_init_part2 junction_init_part2 proc~junction_init_part2->proc~input_dbl proc~material_copper_init material_copper_init proc~material_copper_init->proc~input_dbl proc~material_glass_epoxy_init material_glass_epoxy_init proc~material_glass_epoxy_init->proc~input_dbl proc~material_glass_kapton_glass_init material_glass_kapton_glass_init proc~material_glass_kapton_glass_init->proc~input_dbl proc~material_nb3sn_init material_nb3sn_init proc~material_nb3sn_init->proc~input_dbl proc~material_nbti_init material_nbti_init proc~material_nbti_init->proc~input_dbl proc~material_stainless_steel_init material_stainless_steel_init proc~material_stainless_steel_init->proc~input_dbl proc~mesh2d_init_part1 mesh2D_init_part1 proc~mesh2d_init_part1->proc~input_dbl proc~mesh2d_init_part1->proc~signal_init proc~nusselt_dbg_init nusselt_DBG_init proc~nusselt_dbg_init->proc~input_dbl proc~nusselt_pipe_init nusselt_pipe_init proc~nusselt_pipe_init->proc~input_dbl proc~signal_init->proc~input_dbl proc~sim_init simulation_t%sim_init proc~sim_init->proc~input_dbl proc~sim_init->proc~signal_init proc~solid_init_part1 solid_init_part1 proc~solid_init_part1->proc~input_dbl proc~solid_init_part1->proc~signal_init proc~strand_init_part1 strand_init_part1 proc~strand_init_part1->proc~input_dbl proc~strand_init_part1->proc~signal_init proc~boundary_init_part1 boundary_init_part1 proc~boundary_init_part1->proc~signal_init proc~set_friction_correlation set_friction_correlation proc~set_friction_correlation->proc~friction_factor_blasius_init proc~set_friction_correlation->proc~friction_factor_central_spiral_init proc~set_friction_correlation->proc~friction_factor_katheder_init proc~set_material set_material proc~set_material->proc~material_copper_init proc~set_material->proc~material_glass_epoxy_init proc~set_material->proc~material_glass_kapton_glass_init proc~set_material->proc~material_nb3sn_init proc~set_material->proc~material_nbti_init proc~set_material->proc~material_stainless_steel_init proc~set_nusselt_correlation set_nusselt_correlation proc~set_nusselt_correlation->proc~nusselt_dbg_init proc~set_nusselt_correlation->proc~nusselt_pipe_init program~reims_p reims_p program~reims_p->proc~channel_init_part1 program~reims_p->proc~circulator_init_part1 program~reims_p->proc~ffsrclink_init_part2 program~reims_p->proc~fslink_init_part2 program~reims_p->proc~junction_init_part2 program~reims_p->proc~mesh2d_init_part1 program~reims_p->proc~sim_init program~reims_p->proc~solid_init_part1 program~reims_p->proc~strand_init_part1 program~reims_p->proc~boundary_init_part1 proc~load_frictions load_frictions program~reims_p->proc~load_frictions proc~load_materials load_materials program~reims_p->proc~load_materials proc~load_nusselts load_nusselts program~reims_p->proc~load_nusselts proc~load_frictions->proc~set_friction_correlation proc~load_materials->proc~set_material proc~load_nusselts->proc~set_nusselt_correlation

Source Code

function input_dbl(me,key,default_value) result(val)
    !! Function returns `double` value given by the key and stops if key doesn't exist.
    !!
    !! Providing one of the optional arguments will not stop program in case of missing
    !! key, default return value is in this case is NaN
    class(input_t),     intent(in)    :: me
    character(*),       intent(in)    :: key !! key to the value in dictionary
    real(dp), optional, intent(in)    :: default_value !! default value in case of missing key
    real(dp)                          :: val !! returned value
    logical :: ok
    type(input_t) :: tmp

    if(present(default_value)) val = default_value
    if(.not.me%has_key(key) .and. present(default_value)) return
    select type(node=>me%node(key));class is(type_scalar)
        val = node%to_real(val, ok)
        call continue_if(node, ok)
        return
    class is(type_dictionary)
        tmp%root => node
        if(get0d_hdf5(tmp,val)) return
    end select
    if(present(default_value)) return
    error stop 'Can not convert to value of "double" for key: '//key
end function input_dbl