first_patch_in_grid_cell Interface

public interface first_patch_in_grid_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.


Module Procedures

private subroutine first_patch_in_grid_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_patch_in_grid_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_patch_in_grid_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_patch_in_grid_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_patch_in_grid_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_patch_in_grid_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_patch_in_grid_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_patch_in_grid_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_patch_in_grid_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.