MOM6
mom_domains::pass_var_start Interface Reference

Detailed Description

Definition at line 73 of file MOM_domains.F90.

Private functions

integer function pass_var_start_3d (array, MOM_dom, sideflag, position, complete, halo)
 
integer function pass_var_start_2d (array, MOM_dom, sideflag, position, complete, halo)
 

Functions and subroutines

◆ pass_var_start_2d()

integer function mom_domains::pass_var_start::pass_var_start_2d ( real, dimension(:,:), intent(inout)  array,
type(mom_domain_type), intent(inout)  MOM_dom,
integer, intent(in), optional  sideflag,
integer, intent(in), optional  position,
logical, intent(in), optional  complete,
integer, intent(in), optional  halo 
)
private
Parameters
[in,out]arrayThe array which is having its halos points exchanged.
[in,out]mom_domThe MOM_domain_type containing the mpp_domain needed to determine where data should be sent.
[in]sideflagAn optional integer indicating which directions the data should be sent. It is TO_ALL or the sum of any of TO_EAST, TO_WEST, TO_NORTH, and TO_SOUTH. For example, TO_EAST sends the data to the processor to the east, so the halos on the western side are filled. TO_ALL is the default if sideflag is omitted.
[in]positionAn optional argument indicating the position. This is usally CORNER, but is CENTER by default.
[in]completeAn optional argument indicating whether the halo updates should be completed before progress resumes. Omitting complete is the same as setting complete to .true.
[in]haloThe size of the halo to update - the full halo by default.
Returns
The integer index for this update.

Definition at line 251 of file MOM_domains.F90.

251  real, dimension(:,:), intent(inout) :: array !< The array which is having its halos points
252  !! exchanged.
253  type(mom_domain_type), intent(inout) :: mom_dom !< The MOM_domain_type containing the mpp_domain
254  !! needed to determine where data should be
255  !! sent.
256  integer, optional, intent(in) :: sideflag !< An optional integer indicating which
257  !! directions the data should be sent. It is TO_ALL or the sum of any of TO_EAST, TO_WEST,
258  !! TO_NORTH, and TO_SOUTH. For example, TO_EAST sends the data to the processor to the east,
259  !! so the halos on the western side are filled. TO_ALL is the default if sideflag is omitted.
260  integer, optional, intent(in) :: position !< An optional argument indicating the position.
261  !! This is usally CORNER, but is CENTER
262  !! by default.
263  logical, optional, intent(in) :: complete !< An optional argument indicating whether the
264  !! halo updates should be completed before
265  !! progress resumes. Omitting complete is the
266  !! same as setting complete to .true.
267  integer, optional, intent(in) :: halo !< The size of the halo to update - the full
268  !! halo by default.
269  integer :: pass_var_start_2d !<The integer index for this update.
270 ! Arguments: array - The array which is having its halos points exchanged.
271 ! (in) MOM_dom - The MOM_domain_type containing the mpp_domain needed to
272 ! determine where data should be sent.
273 ! (in) sideflag - An optional integer indicating which directions the
274 ! data should be sent. It is TO_ALL or the sum of any of
275 ! TO_EAST, TO_WEST, TO_NORTH, and TO_SOUTH. For example,
276 ! TO_EAST sends the data to the processor to the east, so
277 ! the halos on the western side are filled. TO_ALL is
278 ! the default if sideflag is omitted.
279 ! (in) position - An optional argument indicating the position. This is
280 ! may be CORNER, but is CENTER by default.
281 ! (in) complete - An optional argument indicating whether the halo updates
282 ! should be initiated immediately or wait for second
283 ! pass_..._start call. Omitting complete is the same as
284 ! setting complete to .true.
285 ! (in,opt) halo - The size of the halo to update - the full halo by default.
286 ! (return value) - The integer index for this update.
287  integer :: dirflag
288 
289  dirflag = to_all ! 60
290  if (present(sideflag)) then ; if (sideflag > 0) dirflag = sideflag ; endif
291 
292  if (present(halo) .and. mom_dom%thin_halo_updates) then
293  pass_var_start_2d = mpp_start_update_domains(array, mom_dom%mpp_domain, &
294  flags=dirflag, position=position, &
295  whalo=halo, ehalo=halo, shalo=halo, nhalo=halo)
296  else
297  pass_var_start_2d = mpp_start_update_domains(array, mom_dom%mpp_domain, &
298  flags=dirflag, position=position)
299  endif

◆ pass_var_start_3d()

integer function mom_domains::pass_var_start::pass_var_start_3d ( real, dimension(:,:,:), intent(inout)  array,
type(mom_domain_type), intent(inout)  MOM_dom,
integer, intent(in), optional  sideflag,
integer, intent(in), optional  position,
logical, intent(in), optional  complete,
integer, intent(in), optional  halo 
)
private
Parameters
[in,out]arrayThe array which is having its halos points exchanged.
[in,out]mom_domThe MOM_domain_type containing the mpp_domain needed to determine where data should be sent.
[in]sideflagAn optional integer indicating which directions the data should be sent. It is TO_ALL or the sum of any of TO_EAST, TO_WEST, TO_NORTH, and TO_SOUTH. For example, TO_EAST sends the data to the processor to the east, so the halos on the western side are filled. TO_ALL is the default if sideflag is omitted.
[in]positionAn optional argument indicating the position. This is usally CORNER, but is CENTER by default.
[in]completeAn optional argument indicating whether the halo updates should be completed before progress resumes. Omitting complete is the same as setting complete to .true.
[in]haloThe size of the halo to update - the full halo by default.
Returns
The integer index for this update.

Definition at line 303 of file MOM_domains.F90.

303  real, dimension(:,:,:), intent(inout) :: array !< The array which is having its halos points
304  !! exchanged.
305  type(mom_domain_type), intent(inout) :: mom_dom !< The MOM_domain_type containing the mpp_domain
306  !! needed to determine where data should be
307  !! sent.
308  integer, optional, intent(in) :: sideflag !< An optional integer indicating which
309  !! directions the data should be sent. It is TO_ALL or the sum of any of TO_EAST, TO_WEST,
310  !! TO_NORTH, and TO_SOUTH. For example, TO_EAST sends the data to the processor to the east,
311  !! so the halos on the western side are filled. TO_ALL is the default if sideflag is omitted.
312  integer, optional, intent(in) :: position !< An optional argument indicating the position.
313  !! This is usally CORNER, but is CENTER
314  !! by default.
315  logical, optional, intent(in) :: complete !< An optional argument indicating whether the
316  !! halo updates should be completed before
317  !! progress resumes. Omitting complete is the
318  !! same as setting complete to .true.
319  integer, optional, intent(in) :: halo !< The size of the halo to update - the full
320  !! halo by default.
321  integer :: pass_var_start_3d !< The integer index for this update.
322 ! Arguments: array - The array which is having its halos points exchanged.
323 ! (in) MOM_dom - The MOM_domain_type containing the mpp_domain needed to
324 ! determine where data should be sent.
325 ! (in) sideflag - An optional integer indicating which directions the
326 ! data should be sent. It is TO_ALL or the sum of any of
327 ! TO_EAST, TO_WEST, TO_NORTH, and TO_SOUTH. For example,
328 ! TO_EAST sends the data to the processor to the east, so
329 ! the halos on the western side are filled. TO_ALL is
330 ! the default if sideflag is omitted.
331 ! (in) position - An optional argument indicating the position. This is
332 ! may be CORNER, but is CENTER by default.
333 ! (in) complete - An optional argument indicating whether the halo updates
334 ! should be initiated immediately or wait for second
335 ! pass_..._start call. Omitting complete is the same as
336 ! setting complete to .true.
337 ! (in,opt) halo - The size of the halo to update - the full halo by default.
338 ! (return value) - The integer index for this update.
339  integer :: dirflag
340 
341  dirflag = to_all ! 60
342  if (present(sideflag)) then ; if (sideflag > 0) dirflag = sideflag ; endif
343 
344  if (present(halo) .and. mom_dom%thin_halo_updates) then
345  pass_var_start_3d = mpp_start_update_domains(array, mom_dom%mpp_domain, &
346  flags=dirflag, position=position, &
347  whalo=halo, ehalo=halo, shalo=halo, nhalo=halo)
348  else
349  pass_var_start_3d = mpp_start_update_domains(array, mom_dom%mpp_domain, &
350  flags=dirflag, position=position)
351  endif

The documentation for this interface was generated from the following file: