add_to_srl Subroutine

private subroutine add_to_srl(self, ipe, igrid, i1, i2, i3)

Type Bound

nbprocs_info_t

Arguments

Type IntentOptional Attributes Name
class(nbprocs_info_t) :: self
integer, intent(in) :: ipe
integer, intent(in) :: igrid
integer, intent(in) :: i1
integer, intent(in) :: i2
integer, intent(in) :: i3

Calls

proc~~add_to_srl~~CallsGraph proc~add_to_srl nbprocs_info_t%add_to_srl proc~add_igrid_to_srl nbprocs_info_t%add_igrid_to_srl proc~add_to_srl->proc~add_igrid_to_srl proc~iencode nbprocs_info_t%iencode proc~add_igrid_to_srl->proc~iencode proc~init_srl_info init_srl_info proc~add_igrid_to_srl->proc~init_srl_info

Called by

proc~~add_to_srl~~CalledByGraph proc~add_to_srl nbprocs_info_t%add_to_srl proc~build_connectivity build_connectivity proc~build_connectivity->proc~add_to_srl proc~amr_coarsen_refine amr_coarsen_refine proc~amr_coarsen_refine->proc~build_connectivity proc~initlevelone initlevelone proc~initlevelone->proc~build_connectivity proc~read_forest read_forest proc~read_forest->proc~build_connectivity proc~main main proc~main->proc~initlevelone proc~read_snapshot read_snapshot proc~main->proc~read_snapshot proc~resettree_convert resettree_convert proc~main->proc~resettree_convert proc~settree settree proc~main->proc~settree proc~timeintegration timeintegration proc~main->proc~timeintegration proc~read_snapshot->proc~read_forest proc~read_snapshot_old read_snapshot_old proc~read_snapshot->proc~read_snapshot_old proc~read_snapshot_old->proc~read_forest proc~resettree resettree proc~resettree->proc~amr_coarsen_refine proc~resettree_convert->proc~amr_coarsen_refine proc~settree->proc~amr_coarsen_refine proc~timeintegration->proc~resettree program~agile agile program~agile->proc~main

Source Code

   subroutine add_to_srl(self, ipe, igrid, i1, i2, i3)
     class(nbprocs_info_t) :: self
     integer, intent(in)   :: ipe, igrid, i1, i2, i3
     integer, dimension(:), pointer :: temp_list
     type(srl_nb_t), dimension(:), pointer :: srl_nb_temp

     ! add the procesor id if not already present:
     if (self%ipe_to_inbpe_srl(ipe) == -1) then

        ! enlarge counter
        self%nbprocs_srl = self%nbprocs_srl + 1

        if (self%nbprocs_srl > size(self%nbprocs_srl_list)) then
           allocate(temp_list(self%nbprocs_srl))
           temp_list(:size(self%nbprocs_srl_list)) = self%nbprocs_srl_list
           deallocate(self%nbprocs_srl_list)
           self%nbprocs_srl_list => temp_list

           allocate(srl_nb_temp(self%nbprocs_srl))
           srl_nb_temp(:size(self%srl_nb)) = self%srl_nb
           deallocate(self%srl_nb)
           self%srl_nb => srl_nb_temp
        end if

        ! add the process
        self%nbprocs_srl_list(self%nbprocs_srl) = ipe
        ! add to inverse list
        self%ipe_to_inbpe_srl(ipe) = self%nbprocs_srl

     end if

     call self%add_igrid_to_srl(ipe, igrid, i1, i2, i3)

   end subroutine add_to_srl