namespace mom_hor_index

Overview

Defines the horizontal index type (hor_index_type) used for providing index ranges. More…

namespace mom_hor_index {

// interfaces

interface assignment(=);

// global functions

subroutine, public hor_index_init(
    Domain Domain,
    HI HI,
    param_file param_file,
    local_indexing local_indexing,
    index_offset index_offset
    );

} // namespace mom_hor_index

Detailed Documentation

Defines the horizontal index type (hor_index_type) used for providing index ranges.

The hor_index_type provides the decalarations and loop ranges for almost all data with horizontal extent.

Declarations and loop ranges should always be coded with the symmetric memory model in mind. The non-symmetric memory mode will then also work, albeit with a different (less efficient) communication pattern.

Using the hor_index_type HI:

  • declaration of h-point data is of the form h(HI%isd:HI%ied,HI%jsd:HI%jed)

  • declaration of q-point data is of the form q(HI%IsdB:HI%IedB,HI%JsdB:HI%JedB)

  • declaration of u-point data is of the form u(HI%IsdB:HI%IedB,HI%jsd:HI%jed)

  • declaration of v-point data is of the form v(HI%isd:HI%ied,HI%JsdB:HI%JedB).

For more detail explanation of horizontal indexing see Horizontal indexing and memory.

Global Functions

subroutine, public hor_index_init(
    Domain Domain,
    HI HI,
    param_file param_file,
    local_indexing local_indexing,
    index_offset index_offset
    )

Sets various index values in a hor_index_type.

Parameters:

domain

The MOM domain from which to extract information.

hi

A horizontal index type to populate with data

param_file

Parameter file handle

local_indexing

If true, all tracer data domains start at 1

index_offset

A fixed additional offset to all indices