| 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 | |||
| integer, | intent(in) | :: | inc1 | |||
| integer, | intent(in) | :: | inc2 | |||
| integer, | intent(in) | :: | inc3 |
subroutine add_igrid_to_c(self, ipe, igrid, i1, i2, i3, inc1, inc2, inc3) class(nbprocs_info_t) :: self integer, intent(in) :: ipe, igrid, i1, i2, i3, inc1, inc2, inc3 ! .. local .. integer :: inbpe, i ! translate to neighbor processor index for c inbpe = self%ipe_to_inbpe_c(ipe) ! enlarge counter self%course_nb(inbpe)%info%nigrids = self%course_nb(inbpe)%info%nigrids + 1 ! need to initialize or enlarge storage if ( .not. associated(self%course_nb(inbpe)%info%igrid) ) then call init_cf_info(self%course_nb(inbpe)%info, self%course_nb(inbpe)%info%nigrids) else if ( self%course_nb(inbpe)%info%nigrids > size(self%course_nb(inbpe)%info%igrid) ) then call init_cf_info(self%course_nb(inbpe)%info, self%course_nb(inbpe)%info%nigrids) end if ! add the data at the counter self%course_nb(inbpe)%info%igrid( self%course_nb(inbpe)%info%nigrids ) = igrid self%course_nb(inbpe)%info%i1( self%course_nb(inbpe)%info%nigrids ) = i1 self%course_nb(inbpe)%info%i2( self%course_nb(inbpe)%info%nigrids ) = i2 self%course_nb(inbpe)%info%i3( self%course_nb(inbpe)%info%nigrids ) = i3 self%course_nb(inbpe)%info%inc1( self%course_nb(inbpe)%info%nigrids ) = inc1 self%course_nb(inbpe)%info%inc2( self%course_nb(inbpe)%info%nigrids ) = inc2 self%course_nb(inbpe)%info%inc3( self%course_nb(inbpe)%info%nigrids ) = inc3 end subroutine add_igrid_to_c