get_den_ptr Function

public function get_den_ptr(self, region_id) result(den_ptr)

Type Bound

type_material_manager

Arguments

Type IntentOptional Attributes Name
class(type_material_manager), intent(in), target :: self
integer(kind=int32), intent(in) :: region_id

Return Value class(abst_den), pointer


Called by

proc~~get_den_ptr~~CalledByGraph proc~get_den_ptr type_material_manager%get_den_ptr proc~get_phase_dens type_properties_manager%get_phase_dens proc~get_phase_dens->proc~get_den_ptr proc~get_pointers_for_region type_properties_manager%get_pointers_for_region proc~get_pointers_for_region->proc~get_den_ptr proc~calc_hydraulic_properties_array type_properties_manager%calc_hydraulic_properties_array proc~calc_hydraulic_properties_array->proc~get_pointers_for_region proc~calc_hydraulic_properties_scalar type_properties_manager%calc_hydraulic_properties_scalar proc~calc_hydraulic_properties_scalar->proc~get_pointers_for_region proc~calc_thermal_properties_array type_properties_manager%calc_thermal_properties_array proc~calc_thermal_properties_array->proc~get_pointers_for_region proc~calc_thermal_properties_scalar type_properties_manager%calc_thermal_properties_scalar proc~calc_thermal_properties_scalar->proc~get_pointers_for_region proc~calculate_hcf_array type_properties_manager%calculate_hcf_array proc~calculate_hcf_array->proc~get_pointers_for_region proc~calculate_hcf_scalar type_properties_manager%calculate_hcf_scalar proc~calculate_hcf_scalar->proc~get_pointers_for_region proc~calculate_qw_array type_properties_manager%calculate_qw_array proc~calculate_qw_array->proc~get_pointers_for_region proc~calculate_qw_scalar type_properties_manager%calculate_qw_scalar proc~calculate_qw_scalar->proc~get_pointers_for_region proc~calculate_thc_array type_properties_manager%calculate_thc_array proc~calculate_thc_array->proc~get_pointers_for_region proc~calculate_thc_scalar type_properties_manager%calculate_thc_scalar proc~calculate_thc_scalar->proc~get_pointers_for_region proc~calculate_vhc_array type_properties_manager%calculate_vhc_array proc~calculate_vhc_array->proc~get_pointers_for_region proc~calculate_vhc_scalar type_properties_manager%calculate_vhc_scalar proc~calculate_vhc_scalar->proc~get_pointers_for_region proc~update_type_thermal_crs update_type_thermal_crs proc~update_type_thermal_crs->proc~get_phase_dens none~calc_qw type_properties_manager%calc_qw proc~update_type_thermal_crs->none~calc_qw interface~update_type_thermal_crs type_thermal_crs%update_type_thermal_crs interface~update_type_thermal_crs->proc~update_type_thermal_crs none~calc_hydraulic type_properties_manager%calc_hydraulic none~calc_hydraulic->proc~calc_hydraulic_properties_array none~calc_hydraulic->proc~calc_hydraulic_properties_scalar none~calc_qw->proc~calculate_qw_array none~calc_qw->proc~calculate_qw_scalar none~calc_thc type_properties_manager%calc_thc none~calc_thc->proc~calculate_thc_array none~calc_thc->proc~calculate_thc_scalar none~calc_vhc type_properties_manager%calc_vhc none~calc_vhc->proc~calculate_vhc_array none~calc_vhc->proc~calculate_vhc_scalar proc~get_observations_si get_observations_si proc~get_observations_si->none~calc_qw proc~get_observations_thc get_observations_thc proc~get_observations_thc->none~calc_qw proc~get_observations_thc->none~calc_thc proc~get_observations_vhc get_observations_vhc proc~get_observations_vhc->none~calc_qw proc~get_observations_vhc->none~calc_vhc proc~interpolate_observations_si interpolate_observations_si proc~interpolate_observations_si->none~calc_qw proc~interpolate_observations_thc interpolate_observations_thc proc~interpolate_observations_thc->none~calc_qw proc~interpolate_observations_thc->none~calc_thc proc~interpolate_observations_vhc interpolate_observations_vhc proc~interpolate_observations_vhc->none~calc_qw proc~interpolate_observations_vhc->none~calc_vhc proc~process_element_hydraulic_linear_1 process_element_hydraulic_linear_1 proc~process_element_hydraulic_linear_1->none~calc_hydraulic proc~hydraulic_assemble_system_linear_1 hydraulic_assemble_system_linear_1 proc~hydraulic_assemble_system_linear_1->proc~process_element_hydraulic_linear_1 proc~hydraulic_assemble_system_linear_1_parallel hydraulic_assemble_system_linear_1_parallel proc~hydraulic_assemble_system_linear_1_parallel->proc~process_element_hydraulic_linear_1

Source Code

    function get_den_ptr(self, region_id) result(den_ptr)
        implicit none
        class(type_material_manager), intent(in), target :: self
        integer(int32), intent(in) :: region_id
        class(abst_den), pointer :: den_ptr

        integer(int32) :: model_index

#ifdef USE_DEBUG
        if (region_id < 1 .or. region_id > size(self%region_id_map)) then
            print *, "Error: Invalid region_id in get_den_ptr:", region_id
            nullify (den_ptr)
            stop 1
        end if
#endif

        model_index = self%region_id_map(region_id)

#ifdef USE_DEBUG
        if (model_index == 0) then
            print *, "Error: region_id not mapped in get_den_ptr:", region_id
            nullify (den_ptr)
            stop 1
        end if
#endif

        den_ptr => self%den(model_index)%p
    end function get_den_ptr