MOM6
MOM_domains.F90 File Reference

Go to the source code of this file.

Data Types

interface  mom_domains::pass_var
 Do a halo update on an array. More...
 
interface  mom_domains::pass_vector
 Do a halo update on a pair of arrays representing the two components of a vector. More...
 
interface  mom_domains::pass_var_start
 Initiate a non-blocking halo update on an array. More...
 
interface  mom_domains::pass_var_complete
 Complete a non-blocking halo update on an array. More...
 
interface  mom_domains::pass_vector_start
 Initiate a halo update on a pair of arrays representing the two components of a vector. More...
 
interface  mom_domains::pass_vector_complete
 Complete a halo update on a pair of arrays representing the two components of a vector. More...
 
interface  mom_domains::create_group_pass
 Set up a group of halo updates. More...
 
interface  mom_domains::fill_symmetric_edges
 Do a set of halo updates that fill in the values at the duplicated edges of a staggered symmetric memory domain. More...
 
interface  mom_domains::clone_mom_domain
 Copy one MOM_domain_type into another. More...
 
type  mom_domains::mom_domain_type
 The MOM_domain_type contains information about the domain decompositoin. More...
 

Modules

module  mom_domains
 Describes the decomposed MOM domain and has routines for communications across PEs.
 

Functions/Subroutines

subroutine mom_domains::pass_var_3d (array, MOM_dom, sideflag, complete, position, halo, clock)
 pass_var_3d does a halo update for a three-dimensional array. More...
 
subroutine mom_domains::pass_var_2d (array, MOM_dom, sideflag, complete, position, halo, inner_halo, clock)
 pass_var_2d does a halo update for a two-dimensional array. More...
 
integer function mom_domains::pass_var_start_2d (array, MOM_dom, sideflag, position, complete, halo, clock)
 pass_var_start_2d starts a halo update for a two-dimensional array. More...
 
integer function mom_domains::pass_var_start_3d (array, MOM_dom, sideflag, position, complete, halo, clock)
 pass_var_start_3d starts a halo update for a three-dimensional array. More...
 
subroutine mom_domains::pass_var_complete_2d (id_update, array, MOM_dom, sideflag, position, halo, clock)
 pass_var_complete_2d completes a halo update for a two-dimensional array. More...
 
subroutine mom_domains::pass_var_complete_3d (id_update, array, MOM_dom, sideflag, position, halo, clock)
 pass_var_complete_3d completes a halo update for a three-dimensional array. More...
 
subroutine mom_domains::pass_vector_2d (u_cmpt, v_cmpt, MOM_dom, direction, stagger, complete, halo, clock)
 pass_vector_2d does a halo update for a pair of two-dimensional arrays representing the compontents of a two-dimensional horizontal vector. More...
 
subroutine mom_domains::fill_vector_symmetric_edges_2d (u_cmpt, v_cmpt, MOM_dom, stagger, scalar, clock)
 fill_vector_symmetric_edges_2d does an usual set of halo updates that only fill in the values at the edge of a pair of symmetric memory two-dimensional arrays representing the compontents of a two-dimensional horizontal vector. If symmetric memory is not being used, this subroutine does nothing except to possibly turn optional cpu clocks on or off. More...
 
subroutine mom_domains::pass_vector_3d (u_cmpt, v_cmpt, MOM_dom, direction, stagger, complete, halo, clock)
 pass_vector_3d does a halo update for a pair of three-dimensional arrays representing the compontents of a three-dimensional horizontal vector. More...
 
integer function mom_domains::pass_vector_start_2d (u_cmpt, v_cmpt, MOM_dom, direction, stagger, complete, halo, clock)
 pass_vector_start_2d starts a halo update for a pair of two-dimensional arrays representing the compontents of a two-dimensional horizontal vector. More...
 
integer function mom_domains::pass_vector_start_3d (u_cmpt, v_cmpt, MOM_dom, direction, stagger, complete, halo, clock)
 pass_vector_start_3d starts a halo update for a pair of three-dimensional arrays representing the compontents of a three-dimensional horizontal vector. More...
 
subroutine mom_domains::pass_vector_complete_2d (id_update, u_cmpt, v_cmpt, MOM_dom, direction, stagger, halo, clock)
 pass_vector_complete_2d completes a halo update for a pair of two-dimensional arrays representing the compontents of a two-dimensional horizontal vector. More...
 
subroutine mom_domains::pass_vector_complete_3d (id_update, u_cmpt, v_cmpt, MOM_dom, direction, stagger, halo, clock)
 pass_vector_complete_3d completes a halo update for a pair of three-dimensional arrays representing the compontents of a three-dimensional horizontal vector. More...
 
subroutine mom_domains::create_var_group_pass_2d (group, array, MOM_dom, sideflag, position, halo, clock)
 create_var_group_pass_2d sets up a group of two-dimensional array halo updates. More...
 
subroutine mom_domains::create_var_group_pass_3d (group, array, MOM_dom, sideflag, position, halo, clock)
 create_var_group_pass_3d sets up a group of three-dimensional array halo updates. More...
 
subroutine mom_domains::create_vector_group_pass_2d (group, u_cmpt, v_cmpt, MOM_dom, direction, stagger, halo, clock)
 create_vector_group_pass_2d sets up a group of two-dimensional vector halo updates. More...
 
subroutine mom_domains::create_vector_group_pass_3d (group, u_cmpt, v_cmpt, MOM_dom, direction, stagger, halo, clock)
 create_vector_group_pass_3d sets up a group of three-dimensional vector halo updates. More...
 
subroutine, public mom_domains::do_group_pass (group, MOM_dom, clock)
 do_group_pass carries out a group halo update. More...
 
subroutine, public mom_domains::start_group_pass (group, MOM_dom, clock)
 start_group_pass starts out a group halo update. More...
 
subroutine, public mom_domains::complete_group_pass (group, MOM_dom, clock)
 complete_group_pass completes a group halo update. More...
 
subroutine, public mom_domains::mom_domains_init (MOM_dom, param_file, symmetric, static_memory, NIHALO, NJHALO, NIGLOBAL, NJGLOBAL, NIPROC, NJPROC, min_halo, domain_name, include_name, param_suffix)
 MOM_domains_init initalizes a MOM_domain_type variable, based on the information read in from a param_file_type, and optionally returns data describing various' properties of the domain type. More...
 
subroutine mom_domains::clone_md_to_md (MD_in, MOM_dom, min_halo, halo_size, symmetric, domain_name)
 clone_MD_to_MD copies one MOM_domain_type into another, while allowing some properties of the new type to differ from the original one. More...
 
subroutine mom_domains::clone_md_to_d2d (MD_in, mpp_domain, min_halo, halo_size, symmetric, domain_name)
 clone_MD_to_d2D uses information from a MOM_domain_type to create a new domain2d type, while allowing some properties of the new type to differ from the original one. More...
 
subroutine, public mom_domains::get_domain_extent (Domain, isc, iec, jsc, jec, isd, ied, jsd, jed, isg, ieg, jsg, jeg, idg_offset, jdg_offset, symmetric, local_indexing, index_offset)
 Returns various data that has been stored in a MOM_domain_type. More...
 
subroutine, public mom_domains::get_domain_extent_dsamp2 (Domain, isc_d2, iec_d2, jsc_d2, jec_d2, isd_d2, ied_d2, jsd_d2, jed_d2, isg_d2, ieg_d2, jsg_d2, jeg_d2)
 
subroutine, public mom_domains::get_simple_array_i_ind (domain, size, is, ie, symmetric)
 Return the (potentially symmetric) computational domain i-bounds for an array passed without index specifications (i.e. indices start at 1) based on an array size. More...
 
subroutine, public mom_domains::get_simple_array_j_ind (domain, size, js, je, symmetric)
 Return the (potentially symmetric) computational domain j-bounds for an array passed without index specifications (i.e. indices start at 1) based on an array size. More...
 
subroutine, public mom_domains::get_global_shape (domain, niglobal, njglobal)
 Returns the global shape of h-point arrays. More...
 

Variables

integer, parameter, public mom_domains::to_all = To_East + To_West + To_North + To_South
 A flag for passing in all directions. More...