| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(nusselt_t), | intent(inout) | :: | nss | |||
| class(input_t), | intent(in) | :: | cfg | |||
| character(len=*), | intent(in) | :: | built_in_name |
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