FV3 Bundle
mpp_domains_mod Module Reference

Data Types

type  contact_type
 
type  domain1d
 
type  domain1d_spec
 
type  domain2d
 
type  domain2d_spec
 
type  domain_axis_spec
 
type  domaincommunicator2d
 
type  domainug
 
type  index_type
 
interface  mpp_broadcast_domain
 
interface  mpp_check_field
 
interface  mpp_complete_do_update
 
interface  mpp_complete_group_update
 
interface  mpp_complete_update_domains
 
interface  mpp_copy_domain
 
interface  mpp_create_group_update
 
interface  mpp_deallocate_domain
 
interface  mpp_define_domains
 
interface  mpp_define_layout
 
interface  mpp_define_null_domain
 
interface  mpp_do_check
 
interface  mpp_do_get_boundary
 
interface  mpp_do_get_boundary_ad
 
interface  mpp_do_global_field
 
interface  mpp_do_global_field_a2a
 
interface  mpp_do_global_field_ad
 
interface  mpp_do_group_update
 
interface  mpp_do_redistribute
 
interface  mpp_do_update
 
interface  mpp_do_update_ad
 
interface  mpp_do_update_nest_coarse
 
interface  mpp_do_update_nest_fine
 
interface  mpp_get_boundary
 
interface  mpp_get_boundary_ad
 
interface  mpp_get_compute_domain
 
interface  mpp_get_compute_domains
 
interface  mpp_get_data_domain
 
interface  mpp_get_domain_extents
 
interface  mpp_get_global_domain
 
interface  mpp_get_layout
 
interface  mpp_get_memory_domain
 
interface  mpp_get_neighbor_pe
 
interface  mpp_get_pelist
 
interface  mpp_global_field
 
interface  mpp_global_field_ad
 
interface  mpp_global_field_ug
 
interface  mpp_global_max
 
interface  mpp_global_min
 
interface  mpp_global_sum
 
interface  mpp_global_sum_ad
 
interface  mpp_global_sum_tl
 
type  mpp_group_update_type
 
interface  mpp_modify_domain
 
interface  mpp_nullify_domain_list
 
interface  mpp_pass_sg_to_ug
 
interface  mpp_pass_ug_to_sg
 
interface  mpp_redistribute
 
interface  mpp_reset_group_update_field
 
interface  mpp_set_compute_domain
 
interface  mpp_set_data_domain
 
interface  mpp_set_global_domain
 
interface  mpp_start_do_update
 
interface  mpp_start_group_update
 
interface  mpp_start_update_domains
 
interface  mpp_update_domains
 
interface  mpp_update_domains_ad
 
interface  mpp_update_nest_coarse
 
interface  mpp_update_nest_fine
 
type  nest_domain_type
 
type  nestspec
 
type  nonblock_type
 
interface  operator(.eq.)
 
interface  operator(.ne.)
 
type  overlap_type
 
type  overlapspec
 
type  tile_type
 
type  unstruct_axis_spec
 
type  unstruct_domain_spec
 
type  unstruct_overlap_type
 
type  unstruct_pass_type
 

Variables

integer, parameter name_length = 64
 
integer, parameter maxlist = 100
 
integer, parameter maxoverlap = 200
 
integer, parameter field_s = 0
 
integer, parameter field_x = 1
 
integer, parameter field_y = 2
 
integer, parameter max_request = 100
 
integer pe
 
logical module_is_initialized = .false.
 
logical debug = .FALSE.
 
logical verbose =.FALSE.
 
logical mosaic_defined = .false.
 
integer mpp_domains_stack_size =0
 
integer mpp_domains_stack_hwm =0
 
type(domain1d), save, public null_domain1d
 
type(domain2d), save, public null_domain2d
 
type(domainug), save, public null_domainug
 
integer current_id_update = 0
 
integer num_update = 0
 
integer num_nonblock_group_update = 0
 
integer nonblock_buffer_pos = 0
 
integer nonblock_group_buffer_pos = 0
 
logical start_update = .true.
 
logical complete_update = .false.
 
type(nonblock_type), dimension(:), allocatable nonblock_data
 
integer, parameter max_nonblock_update = 100
 
integer group_update_buffer_pos = 0
 
logical complete_group_update_on = .false.
 
integer, parameter max_addrs =512
 
integer(long_kind), dimension(max_addrs), save addrs_sorted =-9999
 
integer, dimension(-1:max_addrs), save addrs_idx =-9999
 
integer, dimension(max_addrs), save a_salvage =-9999
 
integer, save a_sort_len =0
 
integer, save n_addrs =0
 
integer(long_kind), parameter addr2_base =Z'0000000000010000'
 
integer, parameter max_addrs2 =128
 
integer(long_kind), dimension(max_addrs2), save addrs2_sorted =-9999
 
integer, dimension(-1:max_addrs2), save addrs2_idx =-9999
 
integer, dimension(max_addrs2), save a2_salvage =-9999
 
integer, save a2_sort_len =0
 
integer, save n_addrs2 =0
 
integer, parameter max_dom_ids =128
 
integer(long_kind), dimension(max_dom_ids), save ids_sorted =-9999
 
integer, dimension(-1:max_dom_ids), save ids_idx =-9999
 
integer, save i_sort_len =0
 
integer, save n_ids =0
 
integer, parameter max_fields =1024
 
integer(long_kind), dimension(max_fields), save dckey_sorted =-9999
 
type(domaincommunicator2d), dimension(:), allocatable, target, save d_comm
 
integer, dimension(-1:max_fields), save d_comm_idx =-9999
 
integer, dimension(max_fields), save dc_salvage =-9999
 
integer, save dc_sort_len =0
 
integer, save n_comm =0
 
integer(long_kind), parameter gt_base =Z'0000000000000100'
 
integer(long_kind), parameter ke_base =Z'0001000000000000'
 
integer(long_kind) domain_cnt =0
 
logical domain_clocks_on =.FALSE.
 
integer send_clock =0
 
integer recv_clock =0
 
integer unpk_clock =0
 
integer wait_clock =0
 
integer pack_clock =0
 
integer send_pack_clock_nonblock =0
 
integer recv_clock_nonblock =0
 
integer unpk_clock_nonblock =0
 
integer wait_clock_nonblock =0
 
integer nest_send_clock =0
 
integer nest_recv_clock =0
 
integer nest_unpk_clock =0
 
integer nest_wait_clock =0
 
integer nest_pack_clock =0
 
integer group_recv_clock =0
 
integer group_send_clock =0
 
integer group_pack_clock =0
 
integer group_unpk_clock =0
 
integer group_wait_clock =0
 
integer nonblock_group_recv_clock =0
 
integer nonblock_group_send_clock =0
 
integer nonblock_group_pack_clock =0
 
integer nonblock_group_unpk_clock =0
 
integer nonblock_group_wait_clock =0
 
character(len=32) debug_update_domain = "none"
 
logical debug_message_passing = .false.
 
integer nthread_control_loop = 8
 
logical efp_sum_overflow_check = .false.
 
logical use_alltoallw = .false.
 
integer, parameter no_check = -1
 
integer debug_update_level = NO_CHECK
 

Variable Documentation

◆ a2_salvage

integer, dimension(max_addrs2), save mpp_domains_mod::a2_salvage =-9999
private

Definition at line 642 of file mpp_domains.F90.

◆ a2_sort_len

integer, save mpp_domains_mod::a2_sort_len =0
private

Definition at line 643 of file mpp_domains.F90.

◆ a_salvage

integer, dimension(max_addrs), save mpp_domains_mod::a_salvage =-9999
private

Definition at line 634 of file mpp_domains.F90.

◆ a_sort_len

integer, save mpp_domains_mod::a_sort_len =0
private

Definition at line 635 of file mpp_domains.F90.

◆ addr2_base

integer(long_kind), parameter mpp_domains_mod::addr2_base =Z'0000000000010000'
private

Definition at line 638 of file mpp_domains.F90.

◆ addrs2_idx

integer, dimension(-1:max_addrs2), save mpp_domains_mod::addrs2_idx =-9999
private

Definition at line 641 of file mpp_domains.F90.

◆ addrs2_sorted

integer(long_kind), dimension(max_addrs2), save mpp_domains_mod::addrs2_sorted =-9999
private

Definition at line 640 of file mpp_domains.F90.

◆ addrs_idx

integer, dimension(-1:max_addrs), save mpp_domains_mod::addrs_idx =-9999
private

Definition at line 633 of file mpp_domains.F90.

◆ addrs_sorted

integer(long_kind), dimension(max_addrs), save mpp_domains_mod::addrs_sorted =-9999
private

Definition at line 632 of file mpp_domains.F90.

◆ complete_group_update_on

logical mpp_domains_mod::complete_group_update_on = .false.
private

Definition at line 628 of file mpp_domains.F90.

◆ complete_update

logical mpp_domains_mod::complete_update = .false.
private

Definition at line 623 of file mpp_domains.F90.

◆ current_id_update

integer mpp_domains_mod::current_id_update = 0
private

Definition at line 617 of file mpp_domains.F90.

◆ d_comm

type(domaincommunicator2d), dimension(:), allocatable, target, save mpp_domains_mod::d_comm
private

Definition at line 656 of file mpp_domains.F90.

◆ d_comm_idx

integer, dimension(-1:max_fields), save mpp_domains_mod::d_comm_idx =-9999
private

Definition at line 657 of file mpp_domains.F90.

◆ dc_salvage

integer, dimension(max_fields), save mpp_domains_mod::dc_salvage =-9999
private

Definition at line 658 of file mpp_domains.F90.

◆ dc_sort_len

integer, save mpp_domains_mod::dc_sort_len =0
private

Definition at line 659 of file mpp_domains.F90.

◆ dckey_sorted

integer(long_kind), dimension(max_fields), save mpp_domains_mod::dckey_sorted =-9999
private

Definition at line 653 of file mpp_domains.F90.

◆ debug

logical mpp_domains_mod::debug = .FALSE.
private

Definition at line 609 of file mpp_domains.F90.

◆ debug_message_passing

logical mpp_domains_mod::debug_message_passing = .false.
private

Definition at line 702 of file mpp_domains.F90.

◆ debug_update_domain

character(len=32) mpp_domains_mod::debug_update_domain = "none"
private

Definition at line 701 of file mpp_domains.F90.

◆ debug_update_level

integer mpp_domains_mod::debug_update_level = NO_CHECK
private

Definition at line 712 of file mpp_domains.F90.

◆ domain_clocks_on

logical mpp_domains_mod::domain_clocks_on =.FALSE.
private

Definition at line 671 of file mpp_domains.F90.

◆ domain_cnt

integer(long_kind) mpp_domains_mod::domain_cnt =0
private

Definition at line 668 of file mpp_domains.F90.

◆ efp_sum_overflow_check

logical mpp_domains_mod::efp_sum_overflow_check = .false.
private

Definition at line 704 of file mpp_domains.F90.

◆ field_s

integer, parameter mpp_domains_mod::field_s = 0
private

Definition at line 254 of file mpp_domains.F90.

◆ field_x

integer, parameter mpp_domains_mod::field_x = 1
private

Definition at line 255 of file mpp_domains.F90.

◆ field_y

integer, parameter mpp_domains_mod::field_y = 2
private

Definition at line 256 of file mpp_domains.F90.

◆ group_pack_clock

integer mpp_domains_mod::group_pack_clock =0
private

Definition at line 678 of file mpp_domains.F90.

◆ group_recv_clock

integer mpp_domains_mod::group_recv_clock =0
private

Definition at line 678 of file mpp_domains.F90.

◆ group_send_clock

integer mpp_domains_mod::group_send_clock =0
private

Definition at line 678 of file mpp_domains.F90.

◆ group_unpk_clock

integer mpp_domains_mod::group_unpk_clock =0
private

Definition at line 678 of file mpp_domains.F90.

◆ group_update_buffer_pos

integer mpp_domains_mod::group_update_buffer_pos = 0
private

Definition at line 627 of file mpp_domains.F90.

◆ group_wait_clock

integer mpp_domains_mod::group_wait_clock =0
private

Definition at line 678 of file mpp_domains.F90.

◆ gt_base

integer(long_kind), parameter mpp_domains_mod::gt_base =Z'0000000000000100'
private

Definition at line 663 of file mpp_domains.F90.

◆ i_sort_len

integer, save mpp_domains_mod::i_sort_len =0
private

Definition at line 649 of file mpp_domains.F90.

◆ ids_idx

integer, dimension(-1:max_dom_ids), save mpp_domains_mod::ids_idx =-9999
private

Definition at line 648 of file mpp_domains.F90.

◆ ids_sorted

integer(long_kind), dimension(max_dom_ids), save mpp_domains_mod::ids_sorted =-9999
private

Definition at line 647 of file mpp_domains.F90.

◆ ke_base

integer(long_kind), parameter mpp_domains_mod::ke_base =Z'0001000000000000'
private

Definition at line 666 of file mpp_domains.F90.

◆ max_addrs

integer, parameter mpp_domains_mod::max_addrs =512
private

Definition at line 631 of file mpp_domains.F90.

◆ max_addrs2

integer, parameter mpp_domains_mod::max_addrs2 =128
private

Definition at line 639 of file mpp_domains.F90.

◆ max_dom_ids

integer, parameter mpp_domains_mod::max_dom_ids =128
private

Definition at line 646 of file mpp_domains.F90.

◆ max_fields

integer, parameter mpp_domains_mod::max_fields =1024
private

Definition at line 652 of file mpp_domains.F90.

◆ max_nonblock_update

integer, parameter mpp_domains_mod::max_nonblock_update = 100
private

Definition at line 625 of file mpp_domains.F90.

◆ max_request

integer, parameter mpp_domains_mod::max_request = 100
private

Definition at line 519 of file mpp_domains.F90.

◆ maxlist

integer, parameter mpp_domains_mod::maxlist = 100
private

Definition at line 252 of file mpp_domains.F90.

◆ maxoverlap

integer, parameter mpp_domains_mod::maxoverlap = 200
private

Definition at line 253 of file mpp_domains.F90.

◆ module_is_initialized

logical mpp_domains_mod::module_is_initialized = .false.
private

Definition at line 608 of file mpp_domains.F90.

◆ mosaic_defined

logical mpp_domains_mod::mosaic_defined = .false.
private

Definition at line 611 of file mpp_domains.F90.

◆ mpp_domains_stack_hwm

integer mpp_domains_mod::mpp_domains_stack_hwm =0
private

Definition at line 613 of file mpp_domains.F90.

◆ mpp_domains_stack_size

integer mpp_domains_mod::mpp_domains_stack_size =0
private

Definition at line 612 of file mpp_domains.F90.

◆ n_addrs

integer, save mpp_domains_mod::n_addrs =0
private

Definition at line 636 of file mpp_domains.F90.

◆ n_addrs2

integer, save mpp_domains_mod::n_addrs2 =0
private

Definition at line 644 of file mpp_domains.F90.

◆ n_comm

integer, save mpp_domains_mod::n_comm =0
private

Definition at line 660 of file mpp_domains.F90.

◆ n_ids

integer, save mpp_domains_mod::n_ids =0
private

Definition at line 650 of file mpp_domains.F90.

◆ name_length

integer, parameter mpp_domains_mod::name_length = 64
private

Definition at line 251 of file mpp_domains.F90.

◆ nest_pack_clock

integer mpp_domains_mod::nest_pack_clock =0
private

Definition at line 677 of file mpp_domains.F90.

◆ nest_recv_clock

integer mpp_domains_mod::nest_recv_clock =0
private

Definition at line 676 of file mpp_domains.F90.

◆ nest_send_clock

integer mpp_domains_mod::nest_send_clock =0
private

Definition at line 676 of file mpp_domains.F90.

◆ nest_unpk_clock

integer mpp_domains_mod::nest_unpk_clock =0
private

Definition at line 676 of file mpp_domains.F90.

◆ nest_wait_clock

integer mpp_domains_mod::nest_wait_clock =0
private

Definition at line 677 of file mpp_domains.F90.

◆ no_check

integer, parameter mpp_domains_mod::no_check = -1
private

Definition at line 711 of file mpp_domains.F90.

◆ nonblock_buffer_pos

integer mpp_domains_mod::nonblock_buffer_pos = 0
private

Definition at line 620 of file mpp_domains.F90.

◆ nonblock_data

type(nonblock_type), dimension(:), allocatable mpp_domains_mod::nonblock_data
private

Definition at line 624 of file mpp_domains.F90.

◆ nonblock_group_buffer_pos

integer mpp_domains_mod::nonblock_group_buffer_pos = 0
private

Definition at line 621 of file mpp_domains.F90.

◆ nonblock_group_pack_clock

integer mpp_domains_mod::nonblock_group_pack_clock =0
private

Definition at line 679 of file mpp_domains.F90.

◆ nonblock_group_recv_clock

integer mpp_domains_mod::nonblock_group_recv_clock =0
private

Definition at line 679 of file mpp_domains.F90.

◆ nonblock_group_send_clock

integer mpp_domains_mod::nonblock_group_send_clock =0
private

Definition at line 679 of file mpp_domains.F90.

◆ nonblock_group_unpk_clock

integer mpp_domains_mod::nonblock_group_unpk_clock =0
private

Definition at line 680 of file mpp_domains.F90.

◆ nonblock_group_wait_clock

integer mpp_domains_mod::nonblock_group_wait_clock =0
private

Definition at line 680 of file mpp_domains.F90.

◆ nthread_control_loop

integer mpp_domains_mod::nthread_control_loop = 8
private

Definition at line 703 of file mpp_domains.F90.

◆ null_domain1d

type(domain1d), save, public mpp_domains_mod::null_domain1d

Definition at line 614 of file mpp_domains.F90.

◆ null_domain2d

type(domain2d), save, public mpp_domains_mod::null_domain2d

Definition at line 615 of file mpp_domains.F90.

◆ null_domainug

type(domainug), save, public mpp_domains_mod::null_domainug

Definition at line 616 of file mpp_domains.F90.

◆ num_nonblock_group_update

integer mpp_domains_mod::num_nonblock_group_update = 0
private

Definition at line 619 of file mpp_domains.F90.

◆ num_update

integer mpp_domains_mod::num_update = 0
private

Definition at line 618 of file mpp_domains.F90.

◆ pack_clock

integer mpp_domains_mod::pack_clock =0
private

Definition at line 673 of file mpp_domains.F90.

◆ pe

integer mpp_domains_mod::pe
private

Definition at line 607 of file mpp_domains.F90.

◆ recv_clock

integer mpp_domains_mod::recv_clock =0
private

Definition at line 672 of file mpp_domains.F90.

◆ recv_clock_nonblock

integer mpp_domains_mod::recv_clock_nonblock =0
private

Definition at line 674 of file mpp_domains.F90.

◆ send_clock

integer mpp_domains_mod::send_clock =0
private

Definition at line 672 of file mpp_domains.F90.

◆ send_pack_clock_nonblock

integer mpp_domains_mod::send_pack_clock_nonblock =0
private

Definition at line 674 of file mpp_domains.F90.

◆ start_update

logical mpp_domains_mod::start_update = .true.
private

Definition at line 622 of file mpp_domains.F90.

◆ unpk_clock

integer mpp_domains_mod::unpk_clock =0
private

Definition at line 672 of file mpp_domains.F90.

◆ unpk_clock_nonblock

integer mpp_domains_mod::unpk_clock_nonblock =0
private

Definition at line 674 of file mpp_domains.F90.

◆ use_alltoallw

logical mpp_domains_mod::use_alltoallw = .false.
private

Definition at line 705 of file mpp_domains.F90.

◆ verbose

logical mpp_domains_mod::verbose =.FALSE.
private

Definition at line 610 of file mpp_domains.F90.

◆ wait_clock

integer mpp_domains_mod::wait_clock =0
private

Definition at line 673 of file mpp_domains.F90.

◆ wait_clock_nonblock

integer mpp_domains_mod::wait_clock_nonblock =0
private

Definition at line 675 of file mpp_domains.F90.