MOM6
mom_domains::pass_var_complete Interface Reference

Detailed Description

Definition at line 77 of file MOM_domains.F90.

Private functions

subroutine pass_var_complete_3d (id_update, array, MOM_dom, sideflag, position, halo)
 
subroutine pass_var_complete_2d (id_update, array, MOM_dom, sideflag, position, halo)
 

Functions and subroutines

◆ pass_var_complete_2d()

subroutine mom_domains::pass_var_complete::pass_var_complete_2d ( integer, intent(in)  id_update,
real, dimension(:,:), intent(inout)  array,
type(mom_domain_type), intent(inout)  MOM_dom,
integer, intent(in), optional  sideflag,
integer, intent(in), optional  position,
integer, intent(in), optional  halo 
)
private
Parameters
[in]id_updateThe integer id of this update which has been returned from a previous call to pass_var_start.
[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]haloThe size of the halo to update - the full halo by default.

Definition at line 356 of file MOM_domains.F90.

356  integer, intent(in) :: id_update !< The integer id of this update which has
357  !! been returned from a previous call to
358  !! pass_var_start.
359  real, dimension(:,:), intent(inout) :: array !< The array which is having its halos points
360  !! exchanged.
361  type(mom_domain_type), intent(inout) :: mom_dom !< The MOM_domain_type containing the mpp_domain
362  !! needed to determine where data should be
363  !! sent.
364  integer, optional, intent(in) :: sideflag !< An optional integer indicating which
365  !! directions the data should be sent. It is TO_ALL or the sum of any of TO_EAST, TO_WEST,
366  !! TO_NORTH, and TO_SOUTH. For example, TO_EAST sends the data to the processor to the east,
367  !! so the halos on the western side are filled. TO_ALL is the default if sideflag is omitted.
368  integer, optional, intent(in) :: position !< An optional argument indicating the position.
369  !! This is usally CORNER, but is CENTER
370  !! by default.
371  integer, optional, intent(in) :: halo !< The size of the halo to update - the full
372  !! halo by default.
373 ! Arguments: id_update - The integer id of this update which has been returned
374 ! from a previous call to pass_var_start.
375 ! (inout) array - The array which is having its halos points exchanged.
376 ! (in) MOM_dom - The MOM_domain_type containing the mpp_domain needed to
377 ! determine where data should be sent.
378 ! (in) sideflag - An optional integer indicating which directions the
379 ! data should be sent. It is TO_ALL or the sum of any of
380 ! TO_EAST, TO_WEST, TO_NORTH, and TO_SOUTH. For example,
381 ! TO_EAST sends the data to the processor to the east, so
382 ! the halos on the western side are filled. TO_ALL is
383 ! the default if sideflag is omitted.
384 ! (in) position - An optional argument indicating the position. This is
385 ! may be CORNER, but is CENTER by default.
386 ! (in,opt) halo - The size of the halo to update - the full halo by default.
387  integer :: dirflag
388 
389  dirflag = to_all ! 60
390  if (present(sideflag)) then ; if (sideflag > 0) dirflag = sideflag ; endif
391 
392  if (present(halo) .and. mom_dom%thin_halo_updates) then
393  call mpp_complete_update_domains(id_update, array, mom_dom%mpp_domain, &
394  flags=dirflag, position=position, &
395  whalo=halo, ehalo=halo, shalo=halo, nhalo=halo)
396  else
397  call mpp_complete_update_domains(id_update, array, mom_dom%mpp_domain, &
398  flags=dirflag, position=position)
399  endif
400 

◆ pass_var_complete_3d()

subroutine mom_domains::pass_var_complete::pass_var_complete_3d ( integer, intent(in)  id_update,
real, dimension(:,:,:), intent(inout)  array,
type(mom_domain_type), intent(inout)  MOM_dom,
integer, intent(in), optional  sideflag,
integer, intent(in), optional  position,
integer, intent(in), optional  halo 
)
private
Parameters
[in]id_updateThe integer id of this update which has been returned from a previous call to pass_var_start.
[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]haloThe size of the halo to update - the full halo by default.

Definition at line 405 of file MOM_domains.F90.

405  integer, intent(in) :: id_update !< The integer id of this update which has
406  !! been returned from a previous call to
407  !! pass_var_start.
408  real, dimension(:,:,:), intent(inout) :: array !< The array which is having its halos points
409  !! exchanged.
410  type(mom_domain_type), intent(inout) :: mom_dom !< The MOM_domain_type containing the mpp_domain
411  !! needed to determine where data should be
412  !! sent.
413  integer, optional, intent(in) :: sideflag !< An optional integer indicating which
414  !! directions the data should be sent. It is TO_ALL or the sum of any of TO_EAST, TO_WEST,
415  !! TO_NORTH, and TO_SOUTH. For example, TO_EAST sends the data to the processor to the east,
416  !! so the halos on the western side are filled. TO_ALL is the default if sideflag is omitted.
417  integer, optional, intent(in) :: position !< An optional argument indicating the position.
418  !! This is usally CORNER, but is CENTER
419  !! by default.
420  integer, optional, intent(in) :: halo !< The size of the halo to update - the full
421  !! halo by default.
422 ! Arguments: id_update - The integer id of this update which has been returned
423 ! from a previous call to pass_var_start.
424 ! (inout) array - The array which is having its halos points exchanged.
425 ! (in) MOM_dom - The MOM_domain_type containing the mpp_domain needed to
426 ! determine where data should be sent.
427 ! (in) sideflag - An optional integer indicating which directions the
428 ! data should be sent. It is TO_ALL or the sum of any of
429 ! TO_EAST, TO_WEST, TO_NORTH, and TO_SOUTH. For example,
430 ! TO_EAST sends the data to the processor to the east, so
431 ! the halos on the western side are filled. TO_ALL is
432 ! the default if sideflag is omitted.
433 ! (in) position - An optional argument indicating the position. This is
434 ! may be CORNER, but is CENTER by default.
435 ! (in,opt) halo - The size of the halo to update - the full halo by default.
436  integer :: dirflag
437 
438  dirflag = to_all ! 60
439  if (present(sideflag)) then ; if (sideflag > 0) dirflag = sideflag ; endif
440 
441  if (present(halo) .and. mom_dom%thin_halo_updates) then
442  call mpp_complete_update_domains(id_update, array, mom_dom%mpp_domain, &
443  flags=dirflag, position=position, &
444  whalo=halo, ehalo=halo, shalo=halo, nhalo=halo)
445  else
446  call mpp_complete_update_domains(id_update, array, mom_dom%mpp_domain, &
447  flags=dirflag, position=position)
448  endif
449 

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