load_materials Subroutine

public subroutine load_materials(cfgs)

Arguments

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

Calls

proc~~load_materials~~CallsGraph proc~load_materials load_materials interface~getprocaddress GetProcAddress proc~load_materials->interface~getprocaddress proc~empty_cfg empty_cfg proc~load_materials->proc~empty_cfg proc~set_material set_material proc~load_materials->proc~set_material proc~get_power_law_parameters_nb3sn get_power_law_parameters_nb3sn proc~set_material->proc~get_power_law_parameters_nb3sn proc~get_power_law_parameters_nbti get_power_law_parameters_nbti proc~set_material->proc~get_power_law_parameters_nbti proc~input_keys1d input_t%input_keys1d proc~set_material->proc~input_keys1d proc~input_str input_t%input_str proc~set_material->proc~input_str proc~material_copper_init material_copper_init proc~set_material->proc~material_copper_init proc~material_glass_epoxy_init material_glass_epoxy_init proc~set_material->proc~material_glass_epoxy_init proc~material_glass_kapton_glass_init material_glass_kapton_glass_init proc~set_material->proc~material_glass_kapton_glass_init proc~material_nb3sn_init material_nb3sn_init proc~set_material->proc~material_nb3sn_init proc~material_nbti_init material_nbti_init proc~set_material->proc~material_nbti_init proc~material_stainless_steel_init material_stainless_steel_init proc~set_material->proc~material_stainless_steel_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~material_copper_init->proc~input_dbl proc~material_glass_epoxy_init->proc~input_dbl proc~material_glass_kapton_glass_init->proc~input_dbl proc~material_nb3sn_init->proc~input_dbl proc~material_nbti_init->proc~input_dbl proc~material_stainless_steel_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~~load_materials~~CalledByGraph proc~load_materials load_materials program~reims_p reims_p program~reims_p->proc~load_materials

Source Code

    subroutine load_materials(cfgs)
        class(input_t), intent(in) :: cfgs(:)
        
        character(20)  :: names(6) = ['copper','nb3sn','nbti','stainless_steel','glass_kapton_glass','glass_epoxy']
        integer        :: i
        type(c_funptr) :: init_material_ext_ptr

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

        allocate(materials(size(cfgs) + size(names)))
        do i = 1, size(cfgs)
            call set_material(materials(i), cfgs(i), '')
        enddo 
        do i = 1, size(names)
            call set_material(materials(size(cfgs)+i), empty_cfg(), names(i))
        enddo 
    end subroutine load_materials