load_frictions Subroutine

public subroutine load_frictions(cfgs)

Arguments

Type IntentOptional Attributes Name
class(input_t), intent(in) :: cfgs(:)

Calls

proc~~load_frictions~~CallsGraph proc~load_frictions load_frictions interface~getprocaddress GetProcAddress proc~load_frictions->interface~getprocaddress proc~empty_cfg empty_cfg proc~load_frictions->proc~empty_cfg proc~set_friction_correlation set_friction_correlation proc~load_frictions->proc~set_friction_correlation proc~friction_factor_blasius_init friction_factor_blasius_init proc~set_friction_correlation->proc~friction_factor_blasius_init proc~friction_factor_central_spiral_init friction_factor_central_spiral_init proc~set_friction_correlation->proc~friction_factor_central_spiral_init proc~friction_factor_katheder_init friction_factor_katheder_init proc~set_friction_correlation->proc~friction_factor_katheder_init proc~input_keys1d input_t%input_keys1d proc~set_friction_correlation->proc~input_keys1d proc~input_str input_t%input_str proc~set_friction_correlation->proc~input_str proc~input_dbl input_t%input_dbl proc~friction_factor_blasius_init->proc~input_dbl proc~friction_factor_central_spiral_init->proc~input_dbl proc~friction_factor_katheder_init->proc~input_dbl proc~select_dict select_dict proc~input_keys1d->proc~select_dict proc~input_has_key input_t%input_has_key proc~input_str->proc~input_has_key proc~input_node input_t%input_node proc~input_str->proc~input_node proc~select_scalar select_scalar proc~input_str->proc~select_scalar proc~input_dbl->proc~input_has_key proc~input_dbl->proc~input_node proc~continue_if continue_if proc~input_dbl->proc~continue_if proc~get0d_hdf5 get0d_hdf5 proc~input_dbl->proc~get0d_hdf5 to_real to_real proc~input_dbl->to_real proc~input_has_key->proc~select_dict get get proc~input_has_key->get proc~input_node->proc~select_dict proc~input_node->get proc~dictionary_traverse dictionary_traverse proc~input_node->proc~dictionary_traverse 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~get0d_hdf5->proc~input_str 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

Called by

proc~~load_frictions~~CalledByGraph proc~load_frictions load_frictions program~reims_p reims_p program~reims_p->proc~load_frictions

Source Code

    subroutine load_frictions(cfgs)
        class(input_t), intent(in) :: cfgs(:)
        
        character(20)  :: names(3) = ['blasius','katheder','central_spiral']
        integer        :: i
        type(c_funptr) :: init_friction_ext_ptr

        do i = 1, size(lib_handles)     
            init_friction_ext_ptr = GetProcAddress(lib_handles(i), 'init_friction_ext' // c_null_char)
            if (c_associated(init_friction_ext_ptr)) then
                call c_f_procpointer(init_friction_ext_ptr, init_friction_ext)
                exit
            endif
        enddo

        allocate(frictions(size(cfgs) + size(names)))
        do i = 1, size(cfgs)
            call set_friction_correlation(frictions(i), cfgs(i), '')
        enddo 
        do i = 1, size(names)
            call set_friction_correlation(frictions(size(cfgs)+i), empty_cfg(), names(i))
        enddo 
    end subroutine load_frictions