Definition at line 69 of file MOM_domains.F90.
|
subroutine | pass_vector_3d (u_cmpt, v_cmpt, MOM_dom, direction, stagger, complete, halo) |
|
subroutine | pass_vector_2d (u_cmpt, v_cmpt, MOM_dom, direction, stagger, complete, halo) |
|
◆ pass_vector_2d()
subroutine mom_domains::pass_vector::pass_vector_2d |
( |
real, dimension(:,:), intent(inout) |
u_cmpt, |
|
|
real, dimension(:,:), intent(inout) |
v_cmpt, |
|
|
type(mom_domain_type), intent(inout) |
MOM_dom, |
|
|
integer, intent(in), optional |
direction, |
|
|
integer, intent(in), optional |
stagger, |
|
|
logical, intent(in), optional |
complete, |
|
|
integer, intent(in), optional |
halo |
|
) |
| |
|
private |
- Parameters
-
[in,out] | u_cmpt | The nominal zonal (u) component of the vector pair which is having its halos points exchanged. |
[in,out] | v_cmpt | The nominal meridional (v) component of the vector pair which is having its halos points exchanged. |
[in,out] | mom_dom | The MOM_domain_type containing the mpp_domain needed to determine where data should be sent. |
[in] | direction | An 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, possibly plus SCALAR_PAIR if these are paired non-directional scalars discretized at the typical vector component locations. 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 omitted. |
[in] | stagger | An optional flag, which may be one of A_GRID, BGRID_NE, or CGRID_NE, indicating where the two components of the vector are discretized. Omitting stagger is the same as setting it to CGRID_NE. |
[in] | complete | An optional argument indicating whether the halo updates should be completed before progress resumes. Omitting complete is the same as setting complete to .true. |
[in] | halo | The size of the halo to update - the full halo by default. |
Definition at line 454 of file MOM_domains.F90.
454 real,
dimension(:,:),
intent(inout) :: u_cmpt
457 real,
dimension(:,:),
intent(inout) :: v_cmpt
460 type(mom_domain_type),
intent(inout) :: mom_dom
463 integer,
optional,
intent(in) :: direction
469 integer,
optional,
intent(in) :: stagger
472 logical,
optional,
intent(in) :: complete
475 integer,
optional,
intent(in) :: halo
500 integer :: stagger_local
502 logical :: block_til_complete
504 stagger_local = cgrid_ne
505 if (
present(stagger)) stagger_local = stagger
508 if (
present(direction))
then ;
if (direction > 0) dirflag = direction ;
endif 509 block_til_complete = .true.
510 if (
present(complete)) block_til_complete = complete
512 if (
present(halo) .and. mom_dom%thin_halo_updates)
then 513 call mpp_update_domains(u_cmpt, v_cmpt, mom_dom%mpp_domain, flags=dirflag, &
514 gridtype=stagger_local, complete = block_til_complete, &
515 whalo=halo, ehalo=halo, shalo=halo, nhalo=halo)
517 call mpp_update_domains(u_cmpt, v_cmpt, mom_dom%mpp_domain, flags=dirflag, &
518 gridtype=stagger_local, complete = block_til_complete)
◆ pass_vector_3d()
subroutine mom_domains::pass_vector::pass_vector_3d |
( |
real, dimension(:,:,:), intent(inout) |
u_cmpt, |
|
|
real, dimension(:,:,:), intent(inout) |
v_cmpt, |
|
|
type(mom_domain_type), intent(inout) |
MOM_dom, |
|
|
integer, intent(in), optional |
direction, |
|
|
integer, intent(in), optional |
stagger, |
|
|
logical, intent(in), optional |
complete, |
|
|
integer, intent(in), optional |
halo |
|
) |
| |
|
private |
- Parameters
-
[in,out] | u_cmpt | The nominal zonal (u) component of the vector pair which is having its halos points exchanged. |
[in,out] | v_cmpt | The nominal meridional (v) component of the vector pair which is having its halos points exchanged. |
[in,out] | mom_dom | The MOM_domain_type containing the mpp_domain needed to determine where data should be sent. |
[in] | direction | An 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, possibly plus SCALAR_PAIR if these are paired non-directional scalars discretized at the typical vector component locations. 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 omitted. |
[in] | stagger | An optional flag, which may be one of A_GRID, BGRID_NE, or CGRID_NE, indicating where the two components of the vector are discretized. Omitting stagger is the same as setting it to CGRID_NE. |
[in] | complete | An optional argument indicating whether the halo updates should be completed before progress resumes. Omitting complete is the same as setting complete to .true. |
[in] | halo | The size of the halo to update - the full halo by default. |
Definition at line 610 of file MOM_domains.F90.
610 real,
dimension(:,:,:),
intent(inout) :: u_cmpt
613 real,
dimension(:,:,:),
intent(inout) :: v_cmpt
616 type(mom_domain_type),
intent(inout) :: mom_dom
619 integer,
optional,
intent(in) :: direction
625 integer,
optional,
intent(in) :: stagger
628 logical,
optional,
intent(in) :: complete
631 integer,
optional,
intent(in) :: halo
656 integer :: stagger_local
658 logical :: block_til_complete
660 stagger_local = cgrid_ne
661 if (
present(stagger)) stagger_local = stagger
664 if (
present(direction))
then ;
if (direction > 0) dirflag = direction ;
endif 665 block_til_complete = .true.
666 if (
present(complete)) block_til_complete = complete
668 if (
present(halo) .and. mom_dom%thin_halo_updates)
then 669 call mpp_update_domains(u_cmpt, v_cmpt, mom_dom%mpp_domain, flags=dirflag, &
670 gridtype=stagger_local, complete = block_til_complete, &
671 whalo=halo, ehalo=halo, shalo=halo, nhalo=halo)
673 call mpp_update_domains(u_cmpt, v_cmpt, mom_dom%mpp_domain, flags=dirflag, &
674 gridtype=stagger_local, complete = block_til_complete)
The documentation for this interface was generated from the following file:
- /home/adcroft/GitHub/workspace/Gaea-stats-MOM6-examples/MOM6-examples/src/MOM6/src/framework/MOM_domains.F90