This function compute space time function that give bach a table of results for given list of treeIDs
Todo
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