set_nusselt_correlation Subroutine

public subroutine set_nusselt_correlation(nss, cfg, built_in_name)

Arguments

Type IntentOptional Attributes Name
type(nusselt_t), intent(inout) :: nss
class(input_t), intent(in) :: cfg
character(len=*), intent(in) :: built_in_name

Calls

proc~~set_nusselt_correlation~~CallsGraph proc~set_nusselt_correlation set_nusselt_correlation proc~input_keys1d input_t%input_keys1d proc~set_nusselt_correlation->proc~input_keys1d proc~input_str input_t%input_str proc~set_nusselt_correlation->proc~input_str proc~nusselt_dbg_init nusselt_DBG_init proc~set_nusselt_correlation->proc~nusselt_dbg_init proc~nusselt_pipe_init nusselt_pipe_init proc~set_nusselt_correlation->proc~nusselt_pipe_init 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 input_t%input_dbl proc~nusselt_dbg_init->proc~input_dbl proc~nusselt_pipe_init->proc~input_dbl 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~~set_nusselt_correlation~~CalledByGraph proc~set_nusselt_correlation set_nusselt_correlation proc~load_nusselts load_nusselts proc~load_nusselts->proc~set_nusselt_correlation program~reims_p reims_p program~reims_p->proc~load_nusselts

Source Code

    subroutine set_nusselt_correlation(nss, cfg, built_in_name)
        type(nusselt_t), intent(inout) :: nss
        class(input_t),   intent(in)    :: cfg
        character(*),     intent(in)    :: built_in_name
        
        type(c_funptr) :: nusselt_ptr
        integer  :: i

        character(:), allocatable :: cfg_str
        type(str_ptr), allocatable :: keys(:)
        type(c_ptr) :: c_cfg
        c_cfg = C_NULL_PTR

        nss%nusselt_corr = cfg%str('nusselt',trim(built_in_name))
        select case (cfg%str('base',nss%nusselt_corr))
        case('pipe')
            call nusselt_pipe_init(cfg, c_cfg)
            nss%nuss_cfg        =  c_cfg
            nss%nuss            => nusselt_pipe
        case('DBG')
            call nusselt_DBG_init(cfg, c_cfg)
            nss%nuss_cfg        =  c_cfg
            nss%nuss            => nusselt_DBG
            nss%nuss_der_Re     => nusselt_DBG_der_Re
            nss%nuss_der_Pra    => nusselt_DBG_der_Pra
            nss%nuss_der_Tother => nusselt_DBG_der_Tother
            nss%nuss_der_T      => nusselt_DBG_der_T
        end select

        if(.not. associated(init_nusselt_ext)) return

        ! serialization
        keys = cfg%keys1d()
        cfg_str = ''
        do i = 1, size(keys)
            cfg_str =  cfg_str // keys(i)%p // c_null_char // cfg%str(keys(i)%p) // c_null_char
        end do

        nusselt_ptr = C_NULL_FUNPTR
        if(.not. init_nusselt_ext(len(cfg_str), cfg_str, c_cfg, nusselt_ptr)) return  

        if(c_associated(nusselt_ptr)) then
            call c_f_procpointer(nusselt_ptr, nss%nuss)
            nss%nuss_cfg = c_cfg
        endif        
    end subroutine set_nusselt_correlation