Evaluate a list of points, and return first component of inval for each that is within me and first component of outval for all other points.
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_polygon_material_type), | intent(in) | :: | me |
Description of the polygon to evaluate |
||
real(kind=rk), | intent(in) | :: | coord(n,3) |
Coordinates for which the function should be evaluated. |
||
integer, | intent(in) | :: | n |
Number of points to get a value for. |
Resulting value at each point.
function tem_eval_polygon_material_scal_3d(me, coord, n) result(res)
! ----------------------------------------------------------------------
!> Description of the polygon to evaluate
type(tem_polygon_material_type), intent(in) :: me
!> Number of points to get a value for.
integer, intent(in) :: n
!> Coordinates for which the function should be evaluated.
real(kind=rk), intent(in) :: coord(n,3)
!> Resulting value at each point.
real(kind=rk) :: res(n)
! ----------------------------------------------------------------------
real(kind=rk) :: loc(me%nComponents)
integer :: iPoint, iPoly
! ----------------------------------------------------------------------
do iPoly = 1, me%nPoly
do iPoint=1,n
if (coord(iPoint,3) >= me%zmin .and. coord(iPoint,3) <= me%zmax ) then
loc = tem_polygon_material_value( &
& me = me%poly_list(ipoly), &
& nComponents = me%nComponents, &
& inVal = me%inVal, &
& outVal = me%outVal, &
& point = coord(iPoint,:2) )
else
loc = me%outval
end if
res(iPoint) = loc(1)
end do
end do
end function tem_eval_polygon_material_scal_3d