| Type | Intent | Optional | 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 |
subroutine add_igrid_to_srl(self, ipe, igrid, i1, i2, i3) class(nbprocs_info_t) :: self integer, intent(in) :: ipe, igrid, i1, i2, i3 ! .. local .. integer :: inbpe, i ! translate to neighbor processor index for srl inbpe = self%ipe_to_inbpe_srl(ipe) ! enlarge counter self%srl_nb(inbpe)%info%nigrids = self%srl_nb(inbpe)%info%nigrids + 1 ! need to initialize or enlarge storage if ( .not. associated(self%srl_nb(inbpe)%info%igrid) ) then call init_srl_info(self%srl_nb(inbpe)%info, self%srl_nb(inbpe)%info%nigrids) else if ( self%srl_nb(inbpe)%info%nigrids > size(self%srl_nb(inbpe)%info%igrid) ) then call init_srl_info(self%srl_nb(inbpe)%info, self%srl_nb(inbpe)%info%nigrids) end if call self%iencode(i1,i2,i3,i) ! add the data at the counter self%srl_nb(inbpe)%info%igrid( self%srl_nb(inbpe)%info%nigrids ) = igrid self%srl_nb(inbpe)%info%iencode( self%srl_nb(inbpe)%info%nigrids ) = i end subroutine add_igrid_to_srl