| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| class(nbprocs_info_t) | :: | self | ||||
| integer, | intent(in) | :: | ipe | |||
| integer, | intent(in) | :: | igrid | |||
| integer, | intent(in) | :: | inc1 | |||
| integer, | intent(in) | :: | inc2 | |||
| integer, | intent(in) | :: | inc3 |
subroutine add_igrid_to_f(self, ipe, igrid, inc1, inc2, inc3) class(nbprocs_info_t) :: self integer, intent(in) :: ipe, igrid, inc1, inc2, inc3 ! .. local .. integer :: inbpe, i ! translate to neighbor processor index for f inbpe = self%ipe_to_inbpe_f(ipe) ! enlarge counter self%fine_nb(inbpe)%info%nigrids = self%fine_nb(inbpe)%info%nigrids + 1 ! need to initialize or enlarge storage if ( .not. associated(self%fine_nb(inbpe)%info%igrid) ) then call init_cf_info(self%fine_nb(inbpe)%info, self%fine_nb(inbpe)%info%nigrids) else if ( self%fine_nb(inbpe)%info%nigrids > size(self%fine_nb(inbpe)%info%igrid) ) then call init_cf_info(self%fine_nb(inbpe)%info, self%fine_nb(inbpe)%info%nigrids) end if ! add the data at the counter self%fine_nb(inbpe)%info%igrid( self%fine_nb(inbpe)%info%nigrids ) = igrid self%fine_nb(inbpe)%info%inc1( self%fine_nb(inbpe)%info%nigrids ) = inc1 self%fine_nb(inbpe)%info%inc2( self%fine_nb(inbpe)%info%nigrids ) = inc2 self%fine_nb(inbpe)%info%inc3( self%fine_nb(inbpe)%info%nigrids ) = inc3 end subroutine add_igrid_to_f