MOM6
mom_domains::pass_var Interface Reference

Detailed Description

Definition at line 65 of file MOM_domains.F90.

Private functions

subroutine pass_var_3d (array, MOM_dom, sideflag, complete, position, halo)
 
subroutine pass_var_2d (array, MOM_dom, sideflag, complete, position, halo)
 

Functions and subroutines

◆ pass_var_2d()

subroutine mom_domains::pass_var::pass_var_2d ( real, dimension(:,:), intent(inout)  array,
type(mom_domain_type), intent(inout)  MOM_dom,
integer, intent(in), optional  sideflag,
logical, intent(in), optional  complete,
integer, intent(in), optional  position,
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]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]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 198 of file MOM_domains.F90.

198  real, dimension(:,:), intent(inout) :: array !< The array which is having its halos points
199  !! exchanged.
200  type(mom_domain_type), intent(inout) :: mom_dom !< The MOM_domain_type containing the mpp_domain
201  !! needed to determine where data should be sent.
202  integer, optional, intent(in) :: sideflag !< An optional integer indicating which
203  !! directions the data should be sent. It is TO_ALL or the sum of any of TO_EAST, TO_WEST,
204  !! TO_NORTH, and TO_SOUTH. For example, TO_EAST sends the data to the processor to the east,
205  !! so the halos on the western side are filled. TO_ALL is the default if sideflag is omitted.
206  logical, optional, intent(in) :: complete !< An optional argument indicating whether the
207  !! halo updates should be completed before
208  !! progress resumes. Omitting complete is the
209  !! same as setting complete to .true.
210  integer, optional, intent(in) :: position !< An optional argument indicating the position.
211  !! This is usally CORNER, but is CENTER
212  !! by default.
213  integer, optional, intent(in) :: halo !< The size of the halo to update - the full halo
214  !! by default.
215 ! Arguments: array - The array which is having its halos points exchanged.
216 ! (in) MOM_dom - The MOM_domain_type containing the mpp_domain needed to
217 ! determine where data should be sent.
218 ! (in) sideflag - An optional integer indicating which directions the
219 ! data should be sent. It is TO_ALL or the sum of any of
220 ! TO_EAST, TO_WEST, TO_NORTH, and TO_SOUTH. For example,
221 ! TO_EAST sends the data to the processor to the east, so
222 ! the halos on the western side are filled. TO_ALL is
223 ! the default if sideflag is omitted.
224 ! (in,opt) complete - An optional argument indicating whether the halo updates
225 ! should be completed before progress resumes. Omitting
226 ! complete is the same as setting complete to .true.
227 ! (in,opt) position - An optional argument indicating the position. This is
228 ! usally CORNER, but is CENTER by default.
229 ! (in,opt) halo - The size of the halo to update - the full halo by default.
230 
231  integer :: dirflag
232  logical :: block_til_complete
233 
234  dirflag = to_all ! 60
235  if (present(sideflag)) then ; if (sideflag > 0) dirflag = sideflag ; endif
236  block_til_complete = .true.
237  if (present(complete)) block_til_complete = complete
238 
239  if (present(halo) .and. mom_dom%thin_halo_updates) then
240  call mpp_update_domains(array, mom_dom%mpp_domain, flags=dirflag, &
241  complete=block_til_complete, position=position, &
242  whalo=halo, ehalo=halo, shalo=halo, nhalo=halo)
243  else
244  call mpp_update_domains(array, mom_dom%mpp_domain, flags=dirflag, &
245  complete=block_til_complete, position=position)
246  endif
247 

◆ pass_var_3d()

subroutine mom_domains::pass_var::pass_var_3d ( real, dimension(:,:,:), intent(inout)  array,
type(mom_domain_type), intent(inout)  MOM_dom,
integer, intent(in), optional  sideflag,
logical, intent(in), optional  complete,
integer, intent(in), optional  position,
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, sothe halos on the western side are filled. TO_ALL is the default if sideflag is omitted.
[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]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 144 of file MOM_domains.F90.

144  real, dimension(:,:,:), intent(inout) :: array !< The array which is having its halos points
145  !! exchanged.
146  type(mom_domain_type), intent(inout) :: mom_dom !< The MOM_domain_type containing the mpp_domain
147  !! needed to determine where data should be
148  !! sent.
149  integer, optional, intent(in) :: sideflag !< An optional integer indicating which
150  !! directions the data should be sent. It is TO_ALL or the sum of any of TO_EAST, TO_WEST,
151  !! TO_NORTH, and TO_SOUTH. For example, TO_EAST sends the data to the processor to the east,
152  !! sothe halos on the western side are filled. TO_ALL is the default if sideflag is omitted.
153  logical, optional, intent(in) :: complete !< An optional argument indicating whether the
154  !! halo updates should be completed before
155  !! progress resumes. Omitting complete is the
156  !! same as setting complete to .true.
157  integer, optional, intent(in) :: position !< An optional argument indicating the position.
158  !! This is usally CORNER, but is CENTER by
159  !! default.
160  integer, optional, intent(in) :: halo !< The size of the halo to update - the full
161  !! halo by default.
162 ! Arguments: array - The array which is having its halos points exchanged.
163 ! (in) MOM_dom - The MOM_domain_type containing the mpp_domain needed to
164 ! determine where data should be sent.
165 ! (in) sideflag - An optional integer indicating which directions the
166 ! data should be sent. It is TO_ALL or the sum of any of
167 ! TO_EAST, TO_WEST, TO_NORTH, and TO_SOUTH. For example,
168 ! TO_EAST sends the data to the processor to the east, so
169 ! the halos on the western side are filled. TO_ALL is
170 ! the default if sideflag is omitted.
171 ! (in,opt) complete - An optional argument indicating whether the halo updates
172 ! should be completed before progress resumes. Omitting
173 ! complete is the same as setting complete to .true.
174 ! (in,opt) position - An optional argument indicating the position. This is
175 ! usally CORNER, but is CENTER by default.
176 ! (in,opt) halo - The size of the halo to update - the full halo by default.
177  integer :: dirflag
178  logical :: block_til_complete
179 
180  dirflag = to_all ! 60
181  if (present(sideflag)) then ; if (sideflag > 0) dirflag = sideflag ; endif
182  block_til_complete = .true.
183  if (present(complete)) block_til_complete = complete
184 
185  if (present(halo) .and. mom_dom%thin_halo_updates) then
186  call mpp_update_domains(array, mom_dom%mpp_domain, flags=dirflag, &
187  complete=block_til_complete, position=position, &
188  whalo=halo, ehalo=halo, shalo=halo, nhalo=halo)
189  else
190  call mpp_update_domains(array, mom_dom%mpp_domain, flags=dirflag, &
191  complete=block_til_complete, position=position)
192  endif
193 

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