This function compute space time function that give bach a table of results for given list of treeIDs
pass subtree with treeIDs lists instead of treeIds and tree
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(tem_spacetime_fun_type) | :: | me |
Spacetime function to evaluate |
|||
integer(kind=long_k), | intent(in) | :: | treeIDs(n) |
TreeIDs where to evaluate the function |
||
type(tem_time_type), | intent(in) | :: | time |
timer object incl. the current time information |
||
type(treelmesh_type), | intent(in) | :: | tree |
Global treelmesh to look for positions in |
||
integer, | intent(in) | :: | n |
Number of tables to return |
||
integer, | intent(in) | :: | ncomp |
Number of values in a Table |
return value of the function
function tem_spacetime_vector_for_treeIDs( me, treeIDs, time, &
& tree, n, ncomp) result(res)
! -------------------------------------------------------------------- !
!> Spacetime function to evaluate
type(tem_spacetime_fun_type) :: me
!> Global treelmesh to look for positions in
type(treelmesh_type), intent(in) ::tree
!> Number of tables to return
integer, intent(in) :: n
!> Number of values in a Table
integer, intent(in) :: ncomp
!> TreeIDs where to evaluate the function
integer(kind=long_k), intent(in) :: treeIDs(n)
!> timer object incl. the current time information
type(tem_time_type), intent(in) :: time
!> return value of the function
real(kind=rk) :: res(n,ncomp)
! -------------------------------------------------------------------- !
! counter
integer :: i
! -------------------------------------------------------------------- !
select case(trim(adjustl(me%fun_kind)))
case('none')
res = 0.0_rk
case('const')
do i = 1, nComp
res(:,i) = me%const(i)
end do
case('lua_fun')
res = tem_spacetime_lua_for( fun_ref = me%lua_fun_ref, &
& treeIDs = treeIDs, &
& time = time, &
& tree = tree, &
& n = n, &
& nComp = nComp, &
& conf = me%conf )
case('combined')
res = tem_spatial_for( me = me%spatial, &
& treeIDs = treeIDs, &
& tree = tree, &
& n = n, &
& ncomp = nComp ) &
& * tem_temporal_for( temporal = me%temporal, &
& time = time )
case default
call tem_abort('ERROR: Unknown spatial function in' &
& // 'tem_spacetime_vector_for_treeIDs.' )
end select
end function tem_spacetime_vector_for_treeIDs