init_cf_info Subroutine

public subroutine init_cf_info(self, nigrids)

Type Bound

nbinfo_cf_t

Arguments

Type IntentOptional Attributes Name
class(nbinfo_cf_t) :: self
integer, intent(in) :: nigrids

Called by

proc~~init_cf_info~~CalledByGraph proc~init_cf_info nbinfo_cf_t%init_cf_info proc~add_igrid_to_c nbprocs_info_t%add_igrid_to_c proc~add_igrid_to_c->proc~init_cf_info proc~add_igrid_to_f nbprocs_info_t%add_igrid_to_f proc~add_igrid_to_f->proc~init_cf_info proc~init_cf_nb cf_nb_t%init_cf_nb proc~init_cf_nb->proc~init_cf_info proc~add_to_c nbprocs_info_t%add_to_c proc~add_to_c->proc~add_igrid_to_c proc~add_to_f nbprocs_info_t%add_to_f proc~add_to_f->proc~add_igrid_to_f proc~build_connectivity build_connectivity proc~build_connectivity->proc~add_to_c proc~build_connectivity->proc~add_to_f 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 init_cf_info(self, nigrids)
      class(nbinfo_cf_t)   :: self
      integer, intent(in)  :: nigrids
      integer, pointer, dimension(:) :: igrid, inc1, inc2, inc3, ibuf_start, isize, i1, i2, i3

      if (associated(self%igrid)) then
        allocate(igrid(nigrids), inc1(nigrids), inc2(nigrids), &
                 inc3(nigrids),  ibuf_start(nigrids), isize(nigrids), &
                 i1(nigrids), i2(nigrids), i3(nigrids))

        igrid(:size(self%igrid)) = self%igrid
        inc1(:size(self%inc1)) = self%inc1
        inc2(:size(self%inc2)) = self%inc2
        inc3(:size(self%inc3)) = self%inc3
        ibuf_start(:size(self%ibuf_start)) = self%ibuf_start
        isize(:size(self%isize)) = self%isize
        i1(:size(self%i1)) = self%i1
        i2(:size(self%i2)) = self%i2
        i3(:size(self%i3)) = self%i3

        deallocate(self%igrid, self%inc1, self%inc2, self%inc3, self%ibuf_start, self%isize, self%i1, self%i2, self%i3)
        allocate(self%igrid(nigrids), self%inc1(nigrids), self%inc2(nigrids), &
                 self%inc3(nigrids), self%ibuf_start(nigrids), self%isize(nigrids), &
                 self%i1(nigrids), self%i2(nigrids), self%i3(nigrids))

        self%igrid = igrid
        self%inc1 = inc1
        self%inc2 = inc2
        self%inc3 = inc3
        self%ibuf_start = ibuf_start
        self%isize = isize
        self%i1 = i1
        self%i2 = i2
        self%i3 = i3

        deallocate(igrid, inc1, inc2, &
                 inc3,  ibuf_start, isize, &
                 i1, i2, i3)
      else
        allocate(self%igrid(nigrids), self%inc1(nigrids), self%inc2(nigrids), &
                 self%inc3(nigrids), self%ibuf_start(nigrids), self%isize(nigrids), &
                 self%i1(nigrids), self%i2(nigrids), self%i3(nigrids))

      end if
   end subroutine init_cf_info