! -*- f90 -*-
! WARNING: This is a generated file!  Edits will be lost!
!
! Copyright (c) 2014 Cisco Systems, Inc.  All rights reserved.
! $COPYRIGHT$
!
! This file was generated by gen-mpi-sizeof.pl for all the MPI_SIZEOF
! interface possibilities for intrinsic types.  Once TS 29113 is
! supported in all compilers, we can simply have *one* procedure for
! each type and use dimension(..) to indicate scalars+all array ranks.
! But until more compilers support this, we simply generate a
! procedure for scalars and all possible ranks in an attempt to
! support lots of Fortran compilers.

      SUBROUTINE PMPI_Sizeof_complex32_scalar(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      COMPLEX(REAL32)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex32_scalar

      SUBROUTINE PMPI_Sizeof_complex32_r1(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      COMPLEX(REAL32), DIMENSION(*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex32_r1

      SUBROUTINE PMPI_Sizeof_complex32_r2(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      COMPLEX(REAL32), DIMENSION(1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex32_r2

      SUBROUTINE PMPI_Sizeof_complex32_r3(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      COMPLEX(REAL32), DIMENSION(1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex32_r3

      SUBROUTINE PMPI_Sizeof_complex32_r4(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      COMPLEX(REAL32), DIMENSION(1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex32_r4

      SUBROUTINE PMPI_Sizeof_complex32_r5(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      COMPLEX(REAL32), DIMENSION(1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex32_r5

      SUBROUTINE PMPI_Sizeof_complex32_r6(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      COMPLEX(REAL32), DIMENSION(1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex32_r6

      SUBROUTINE PMPI_Sizeof_complex32_r7(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      COMPLEX(REAL32), DIMENSION(1,1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex32_r7

      SUBROUTINE PMPI_Sizeof_complex64_scalar(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      COMPLEX(REAL64)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex64_scalar

      SUBROUTINE PMPI_Sizeof_complex64_r1(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      COMPLEX(REAL64), DIMENSION(*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex64_r1

      SUBROUTINE PMPI_Sizeof_complex64_r2(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      COMPLEX(REAL64), DIMENSION(1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex64_r2

      SUBROUTINE PMPI_Sizeof_complex64_r3(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      COMPLEX(REAL64), DIMENSION(1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex64_r3

      SUBROUTINE PMPI_Sizeof_complex64_r4(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      COMPLEX(REAL64), DIMENSION(1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex64_r4

      SUBROUTINE PMPI_Sizeof_complex64_r5(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      COMPLEX(REAL64), DIMENSION(1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex64_r5

      SUBROUTINE PMPI_Sizeof_complex64_r6(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      COMPLEX(REAL64), DIMENSION(1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex64_r6

      SUBROUTINE PMPI_Sizeof_complex64_r7(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      COMPLEX(REAL64), DIMENSION(1,1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_complex64_r7

      SUBROUTINE PMPI_Sizeof_int16_scalar(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT16
      INTEGER(INT16)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int16_scalar

      SUBROUTINE PMPI_Sizeof_int16_r1(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT16
      INTEGER(INT16), DIMENSION(*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int16_r1

      SUBROUTINE PMPI_Sizeof_int16_r2(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT16
      INTEGER(INT16), DIMENSION(1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int16_r2

      SUBROUTINE PMPI_Sizeof_int16_r3(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT16
      INTEGER(INT16), DIMENSION(1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int16_r3

      SUBROUTINE PMPI_Sizeof_int16_r4(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT16
      INTEGER(INT16), DIMENSION(1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int16_r4

      SUBROUTINE PMPI_Sizeof_int16_r5(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT16
      INTEGER(INT16), DIMENSION(1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int16_r5

      SUBROUTINE PMPI_Sizeof_int16_r6(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT16
      INTEGER(INT16), DIMENSION(1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int16_r6

      SUBROUTINE PMPI_Sizeof_int16_r7(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT16
      INTEGER(INT16), DIMENSION(1,1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int16_r7

      SUBROUTINE PMPI_Sizeof_int32_scalar(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT32
      INTEGER(INT32)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int32_scalar

      SUBROUTINE PMPI_Sizeof_int32_r1(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT32
      INTEGER(INT32), DIMENSION(*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int32_r1

      SUBROUTINE PMPI_Sizeof_int32_r2(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT32
      INTEGER(INT32), DIMENSION(1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int32_r2

      SUBROUTINE PMPI_Sizeof_int32_r3(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT32
      INTEGER(INT32), DIMENSION(1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int32_r3

      SUBROUTINE PMPI_Sizeof_int32_r4(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT32
      INTEGER(INT32), DIMENSION(1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int32_r4

      SUBROUTINE PMPI_Sizeof_int32_r5(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT32
      INTEGER(INT32), DIMENSION(1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int32_r5

      SUBROUTINE PMPI_Sizeof_int32_r6(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT32
      INTEGER(INT32), DIMENSION(1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int32_r6

      SUBROUTINE PMPI_Sizeof_int32_r7(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT32
      INTEGER(INT32), DIMENSION(1,1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int32_r7

      SUBROUTINE PMPI_Sizeof_int64_scalar(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT64
      INTEGER(INT64)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int64_scalar

      SUBROUTINE PMPI_Sizeof_int64_r1(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT64
      INTEGER(INT64), DIMENSION(*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int64_r1

      SUBROUTINE PMPI_Sizeof_int64_r2(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT64
      INTEGER(INT64), DIMENSION(1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int64_r2

      SUBROUTINE PMPI_Sizeof_int64_r3(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT64
      INTEGER(INT64), DIMENSION(1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int64_r3

      SUBROUTINE PMPI_Sizeof_int64_r4(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT64
      INTEGER(INT64), DIMENSION(1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int64_r4

      SUBROUTINE PMPI_Sizeof_int64_r5(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT64
      INTEGER(INT64), DIMENSION(1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int64_r5

      SUBROUTINE PMPI_Sizeof_int64_r6(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT64
      INTEGER(INT64), DIMENSION(1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int64_r6

      SUBROUTINE PMPI_Sizeof_int64_r7(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT64
      INTEGER(INT64), DIMENSION(1,1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int64_r7

      SUBROUTINE PMPI_Sizeof_int8_scalar(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT8
      INTEGER(INT8)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int8_scalar

      SUBROUTINE PMPI_Sizeof_int8_r1(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT8
      INTEGER(INT8), DIMENSION(*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int8_r1

      SUBROUTINE PMPI_Sizeof_int8_r2(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT8
      INTEGER(INT8), DIMENSION(1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int8_r2

      SUBROUTINE PMPI_Sizeof_int8_r3(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT8
      INTEGER(INT8), DIMENSION(1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int8_r3

      SUBROUTINE PMPI_Sizeof_int8_r4(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT8
      INTEGER(INT8), DIMENSION(1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int8_r4

      SUBROUTINE PMPI_Sizeof_int8_r5(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT8
      INTEGER(INT8), DIMENSION(1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int8_r5

      SUBROUTINE PMPI_Sizeof_int8_r6(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT8
      INTEGER(INT8), DIMENSION(1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int8_r6

      SUBROUTINE PMPI_Sizeof_int8_r7(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: INT8
      INTEGER(INT8), DIMENSION(1,1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_int8_r7

      SUBROUTINE PMPI_Sizeof_real32_scalar(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      REAL(REAL32)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real32_scalar

      SUBROUTINE PMPI_Sizeof_real32_r1(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      REAL(REAL32), DIMENSION(*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real32_r1

      SUBROUTINE PMPI_Sizeof_real32_r2(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      REAL(REAL32), DIMENSION(1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real32_r2

      SUBROUTINE PMPI_Sizeof_real32_r3(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      REAL(REAL32), DIMENSION(1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real32_r3

      SUBROUTINE PMPI_Sizeof_real32_r4(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      REAL(REAL32), DIMENSION(1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real32_r4

      SUBROUTINE PMPI_Sizeof_real32_r5(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      REAL(REAL32), DIMENSION(1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real32_r5

      SUBROUTINE PMPI_Sizeof_real32_r6(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      REAL(REAL32), DIMENSION(1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real32_r6

      SUBROUTINE PMPI_Sizeof_real32_r7(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL32
      REAL(REAL32), DIMENSION(1,1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real32_r7

      SUBROUTINE PMPI_Sizeof_real64_scalar(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      REAL(REAL64)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real64_scalar

      SUBROUTINE PMPI_Sizeof_real64_r1(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      REAL(REAL64), DIMENSION(*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real64_r1

      SUBROUTINE PMPI_Sizeof_real64_r2(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      REAL(REAL64), DIMENSION(1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real64_r2

      SUBROUTINE PMPI_Sizeof_real64_r3(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      REAL(REAL64), DIMENSION(1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real64_r3

      SUBROUTINE PMPI_Sizeof_real64_r4(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      REAL(REAL64), DIMENSION(1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real64_r4

      SUBROUTINE PMPI_Sizeof_real64_r5(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      REAL(REAL64), DIMENSION(1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real64_r5

      SUBROUTINE PMPI_Sizeof_real64_r6(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      REAL(REAL64), DIMENSION(1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real64_r6

      SUBROUTINE PMPI_Sizeof_real64_r7(x, size, ierror)
        USE, INTRINSIC :: iso_fortran_env, ONLY: REAL64
      REAL(REAL64), DIMENSION(1,1,1,1,1,1,*)::x
        INTEGER, INTENT(OUT) :: size
        INTEGER, OPTIONAL, INTENT(OUT) :: ierror

        size = storage_size(x) / 8
        IF (present(ierror)) ierror = 0
      END SUBROUTINE PMPI_Sizeof_real64_r7

