calculate_hcf_impl_array Function

private function calculate_hcf_impl_array(self, ptrs, states) result(vals)

Type Bound

type_properties_manager

Arguments

Type IntentOptional Attributes Name
class(type_properties_manager), intent(in) :: self
type(type_material_pointers), intent(in) :: ptrs
type(type_state), intent(inout) :: states(:)

Return Value real(kind=real64), (size(states))


Calls

proc~~calculate_hcf_impl_array~~CallsGraph proc~calculate_hcf_impl_array type_properties_manager%calculate_hcf_impl_array none~calc_water_content type_properties_manager%calc_water_content proc~calculate_hcf_impl_array->none~calc_water_content proc~calculate_hcf_impl_scalar type_properties_manager%calculate_hcf_impl_scalar proc~calculate_hcf_impl_array->proc~calculate_hcf_impl_scalar proc~calculate_water_content type_properties_manager%calculate_water_content none~calc_water_content->proc~calculate_water_content proc~calculate_water_content_array type_properties_manager%calculate_water_content_array none~calc_water_content->proc~calculate_water_content_array proc~calculate_hcf_impl_scalar->none~calc_water_content calc_kflh calc_kflh proc~calculate_hcf_impl_scalar->calc_kflh calc calc proc~calculate_water_content->calc proc~calculate_water_content_array->proc~calculate_water_content

Called by

proc~~calculate_hcf_impl_array~~CalledByGraph proc~calculate_hcf_impl_array type_properties_manager%calculate_hcf_impl_array proc~calculate_hcf_array type_properties_manager%calculate_hcf_array proc~calculate_hcf_array->proc~calculate_hcf_impl_array

Source Code

    function calculate_hcf_impl_array(self, ptrs, states) result(vals)
        implicit none
        class(type_properties_manager), intent(in) :: self
        type(type_material_pointers), intent(in) :: ptrs
        type(type_state), intent(inout) :: states(:)
        real(real64) :: vals(size(states))

        integer(int32) :: i

        ! 1. 水分量を配列全体に対して一度に計算
        call self%calc_water_content(ptrs, states)

        ! 2. ループ内で各点の氷含有量を計算し、HCFを求める
        do i = 1, size(states)
            states(i)%ice_content = states(i)%porosity - states(i)%water_content
            vals(i) = self%calculate_hcf_impl_scalar(ptrs, states(i))
        end do
    end function calculate_hcf_impl_array