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