cable_grid_reductions_mod Module

This module provides procedures for performing various grid cell reductions for data along some dimension. This is commonly used for reducing data along the tile/patch dimension to a per grid cell value.



Interfaces

public interface grid_cell_average

Interface for computing the area weighted average over the patch/tile dimension for various data types and array ranks.

  • private subroutine grid_cell_average_real32_1d(input_array, output_array, patch, landpt)

    Computes the area weighted average over the patch/tile dimension for a 1D 32-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: input_array(:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real32), intent(out) :: output_array(:)

    The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each active patch/tile dimension.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine grid_cell_average_real32_2d(input_array, output_array, patch, landpt)

    Computes the area weighted average over the patch/tile dimension for a 2D 32-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: input_array(:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real32), intent(out) :: output_array(:,:)

    The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each active patch/tile dimension.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine grid_cell_average_real32_3d(input_array, output_array, patch, landpt)

    Computes the area weighted average over the patch/tile dimension for a 3D 32-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: input_array(:,:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real32), intent(out) :: output_array(:,:,:)

    The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each active patch/tile dimension.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine grid_cell_average_real64_1d(input_array, output_array, patch, landpt)

    Computes the area weighted average over the patch/tile dimension for a 1D 64-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: input_array(:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real64), intent(out) :: output_array(:)

    The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each active patch/tile dimension.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine grid_cell_average_real64_2d(input_array, output_array, patch, landpt)

    Computes the area weighted average over the patch/tile dimension for a 2D 64-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: input_array(:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real64), intent(out) :: output_array(:,:)

    The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each active patch/tile dimension.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine grid_cell_average_real64_3d(input_array, output_array, patch, landpt)

    Computes the area weighted average over the patch/tile dimension for a 3D 64-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: input_array(:,:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real64), intent(out) :: output_array(:,:,:)

    The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each active patch/tile dimension.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

public interface first_tile_on_cell

Interface for extracting the value from the first patch/tile in each grid cell for various data types and array ranks. This is useful for arrays where averaging along the patch/tile dimension does not make sense, or where the array contains the same value everywhere along the patch/tile dimension.

  • private subroutine first_tile_on_cell_int32_1d(input_array, output_array, landpt)

    Extracts the first patch value for each grid cell from a 1D integer array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: input_array(:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    integer(kind=int32), intent(out) :: output_array(:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine first_tile_on_cell_int32_2d(input_array, output_array, landpt)

    Extracts the first patch value for each grid cell from a 2D integer array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: input_array(:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    integer(kind=int32), intent(out) :: output_array(:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine first_tile_on_cell_int32_3d(input_array, output_array, landpt)

    Extracts the first patch value for each grid cell from a 3D integer array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: input_array(:,:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    integer(kind=int32), intent(out) :: output_array(:,:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine first_tile_on_cell_real32_1d(input_array, output_array, landpt)

    Extracts the first patch value for each grid cell from a 1D 32-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: input_array(:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real32), intent(out) :: output_array(:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine first_tile_on_cell_real32_2d(input_array, output_array, landpt)

    Extracts the first patch value for each grid cell from a 2D 32-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: input_array(:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real32), intent(out) :: output_array(:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine first_tile_on_cell_real32_3d(input_array, output_array, landpt)

    Extracts the first patch value for each grid cell from a 3D 32-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: input_array(:,:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real32), intent(out) :: output_array(:,:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine first_tile_on_cell_real64_1d(input_array, output_array, landpt)

    Extracts the first patch value for each grid cell from a 1D 64-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: input_array(:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real64), intent(out) :: output_array(:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine first_tile_on_cell_real64_2d(input_array, output_array, landpt)

    Extracts the first patch value for each grid cell from a 2D 64-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: input_array(:,:)
    real(kind=real64), intent(out) :: output_array(:,:)
    type(land_type), intent(in) :: landpt(:)
  • private subroutine first_tile_on_cell_real64_3d(input_array, output_array, landpt)

    Extracts the first patch value for each grid cell from a 3D 64-bit real array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: input_array(:,:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real64), intent(out) :: output_array(:,:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

public interface dominant_tile

Interface for extracting the value from the tile with the largest area fraction in each grid cell for various data types and array ranks. If several tiles share the largest fraction, the first of them is used.

  • private subroutine dominant_tile_int32_1d(input_array, output_array, patch, landpt)

    Extracts the value of the largest-area tile in each grid cell from a 1D int32 array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: input_array(:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    integer(kind=int32), intent(out) :: output_array(:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each patch/tile.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine dominant_tile_int32_2d(input_array, output_array, patch, landpt)

    Extracts the value of the largest-area tile in each grid cell from a 2D int32 array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: input_array(:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    integer(kind=int32), intent(out) :: output_array(:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each patch/tile.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine dominant_tile_int32_3d(input_array, output_array, patch, landpt)

    Extracts the value of the largest-area tile in each grid cell from a 3D int32 array.

    Arguments

    Type IntentOptional Attributes Name
    integer(kind=int32), intent(in) :: input_array(:,:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    integer(kind=int32), intent(out) :: output_array(:,:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each patch/tile.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine dominant_tile_real32_1d(input_array, output_array, patch, landpt)

    Extracts the value of the largest-area tile in each grid cell from a 1D real32 array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: input_array(:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real32), intent(out) :: output_array(:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each patch/tile.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine dominant_tile_real32_2d(input_array, output_array, patch, landpt)

    Extracts the value of the largest-area tile in each grid cell from a 2D real32 array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: input_array(:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real32), intent(out) :: output_array(:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each patch/tile.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine dominant_tile_real32_3d(input_array, output_array, patch, landpt)

    Extracts the value of the largest-area tile in each grid cell from a 3D real32 array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real32), intent(in) :: input_array(:,:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real32), intent(out) :: output_array(:,:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each patch/tile.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine dominant_tile_real64_1d(input_array, output_array, patch, landpt)

    Extracts the value of the largest-area tile in each grid cell from a 1D real64 array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: input_array(:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real64), intent(out) :: output_array(:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each patch/tile.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine dominant_tile_real64_2d(input_array, output_array, patch, landpt)

    Extracts the value of the largest-area tile in each grid cell from a 2D real64 array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: input_array(:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real64), intent(out) :: output_array(:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each patch/tile.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

  • private subroutine dominant_tile_real64_3d(input_array, output_array, patch, landpt)

    Extracts the value of the largest-area tile in each grid cell from a 3D real64 array.

    Arguments

    Type IntentOptional Attributes Name
    real(kind=real64), intent(in) :: input_array(:,:,:)

    The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

    real(kind=real64), intent(out) :: output_array(:,:,:)

    The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

    type(patch_type), intent(in) :: patch(:)

    The patch_type instance describing the area fraction of each patch/tile.

    type(land_type), intent(in) :: landpt(:)

    The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.


Functions

private pure function dominant_tile_index(land_entry, patch) result(dominant_index)

Index of the tile with the largest area fraction in the grid cell described by land_entry. Ties go to the first such tile.

Arguments

Type IntentOptional Attributes Name
type(land_type), intent(in) :: land_entry
type(patch_type), intent(in) :: patch(:)

Return Value integer


Subroutines

private subroutine grid_cell_average_real32_1d(input_array, output_array, patch, landpt)

Computes the area weighted average over the patch/tile dimension for a 1D 32-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: input_array(:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real32), intent(out) :: output_array(:)

The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each active patch/tile dimension.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine grid_cell_average_real32_2d(input_array, output_array, patch, landpt)

Computes the area weighted average over the patch/tile dimension for a 2D 32-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: input_array(:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real32), intent(out) :: output_array(:,:)

The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each active patch/tile dimension.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine grid_cell_average_real32_3d(input_array, output_array, patch, landpt)

Computes the area weighted average over the patch/tile dimension for a 3D 32-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: input_array(:,:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real32), intent(out) :: output_array(:,:,:)

The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each active patch/tile dimension.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine grid_cell_average_real64_1d(input_array, output_array, patch, landpt)

Computes the area weighted average over the patch/tile dimension for a 1D 64-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: input_array(:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real64), intent(out) :: output_array(:)

The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each active patch/tile dimension.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine grid_cell_average_real64_2d(input_array, output_array, patch, landpt)

Computes the area weighted average over the patch/tile dimension for a 2D 64-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: input_array(:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real64), intent(out) :: output_array(:,:)

The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each active patch/tile dimension.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine grid_cell_average_real64_3d(input_array, output_array, patch, landpt)

Computes the area weighted average over the patch/tile dimension for a 3D 64-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: input_array(:,:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real64), intent(out) :: output_array(:,:,:)

The output array containing the grid cell averaged values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each active patch/tile dimension.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine first_tile_on_cell_int32_1d(input_array, output_array, landpt)

Extracts the first patch value for each grid cell from a 1D integer array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: input_array(:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

integer(kind=int32), intent(out) :: output_array(:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine first_tile_on_cell_int32_2d(input_array, output_array, landpt)

Extracts the first patch value for each grid cell from a 2D integer array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: input_array(:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

integer(kind=int32), intent(out) :: output_array(:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine first_tile_on_cell_int32_3d(input_array, output_array, landpt)

Extracts the first patch value for each grid cell from a 3D integer array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: input_array(:,:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

integer(kind=int32), intent(out) :: output_array(:,:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine first_tile_on_cell_real32_1d(input_array, output_array, landpt)

Extracts the first patch value for each grid cell from a 1D 32-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: input_array(:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real32), intent(out) :: output_array(:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine first_tile_on_cell_real32_2d(input_array, output_array, landpt)

Extracts the first patch value for each grid cell from a 2D 32-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: input_array(:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real32), intent(out) :: output_array(:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine first_tile_on_cell_real32_3d(input_array, output_array, landpt)

Extracts the first patch value for each grid cell from a 3D 32-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: input_array(:,:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real32), intent(out) :: output_array(:,:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine first_tile_on_cell_real64_1d(input_array, output_array, landpt)

Extracts the first patch value for each grid cell from a 1D 64-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: input_array(:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real64), intent(out) :: output_array(:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine first_tile_on_cell_real64_2d(input_array, output_array, landpt)

Extracts the first patch value for each grid cell from a 2D 64-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: input_array(:,:)
real(kind=real64), intent(out) :: output_array(:,:)
type(land_type), intent(in) :: landpt(:)

private subroutine first_tile_on_cell_real64_3d(input_array, output_array, landpt)

Extracts the first patch value for each grid cell from a 3D 64-bit real array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: input_array(:,:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real64), intent(out) :: output_array(:,:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine dominant_tile_int32_1d(input_array, output_array, patch, landpt)

Extracts the value of the largest-area tile in each grid cell from a 1D int32 array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: input_array(:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

integer(kind=int32), intent(out) :: output_array(:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each patch/tile.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine dominant_tile_int32_2d(input_array, output_array, patch, landpt)

Extracts the value of the largest-area tile in each grid cell from a 2D int32 array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: input_array(:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

integer(kind=int32), intent(out) :: output_array(:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each patch/tile.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine dominant_tile_int32_3d(input_array, output_array, patch, landpt)

Extracts the value of the largest-area tile in each grid cell from a 3D int32 array.

Arguments

Type IntentOptional Attributes Name
integer(kind=int32), intent(in) :: input_array(:,:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

integer(kind=int32), intent(out) :: output_array(:,:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each patch/tile.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine dominant_tile_real32_1d(input_array, output_array, patch, landpt)

Extracts the value of the largest-area tile in each grid cell from a 1D real32 array.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: input_array(:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real32), intent(out) :: output_array(:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each patch/tile.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine dominant_tile_real32_2d(input_array, output_array, patch, landpt)

Extracts the value of the largest-area tile in each grid cell from a 2D real32 array.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: input_array(:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real32), intent(out) :: output_array(:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each patch/tile.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine dominant_tile_real32_3d(input_array, output_array, patch, landpt)

Extracts the value of the largest-area tile in each grid cell from a 3D real32 array.

Arguments

Type IntentOptional Attributes Name
real(kind=real32), intent(in) :: input_array(:,:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real32), intent(out) :: output_array(:,:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each patch/tile.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine dominant_tile_real64_1d(input_array, output_array, patch, landpt)

Extracts the value of the largest-area tile in each grid cell from a 1D real64 array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: input_array(:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real64), intent(out) :: output_array(:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each patch/tile.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine dominant_tile_real64_2d(input_array, output_array, patch, landpt)

Extracts the value of the largest-area tile in each grid cell from a 2D real64 array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: input_array(:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real64), intent(out) :: output_array(:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each patch/tile.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.

private subroutine dominant_tile_real64_3d(input_array, output_array, patch, landpt)

Extracts the value of the largest-area tile in each grid cell from a 3D real64 array.

Arguments

Type IntentOptional Attributes Name
real(kind=real64), intent(in) :: input_array(:,:,:)

The input array to be reduced. The first (i.e. fastest varying) dimension of this array must be the patch/tile dimension being reduced.

real(kind=real64), intent(out) :: output_array(:,:,:)

The output array containing the reduced per grid cell values. The first (i.e. fastest varying) dimension of this array must be equal to the number of grid cells.

type(patch_type), intent(in) :: patch(:)

The patch_type instance describing the area fraction of each patch/tile.

type(land_type), intent(in) :: landpt(:)

The land_type instance describing the starting and ending patch/tile indexes in the input array for each grid cell.