integer :: ierr for rank in $ranks do case "$rank" in 1) dim=':' ; esac case "$rank" in 2) dim=':,:' ; esac case "$rank" in 3) dim=':,:,:' ; esac case "$rank" in 4) dim=':,:,:,:' ; esac case "$rank" in 5) dim=':,:,:,:,:' ; esac case "$rank" in 6) dim=':,:,:,:,:,:' ; esac case "$rank" in 7) dim=':,:,:,:,:,:,:' ; esac for kind in $ikinds do proc="${procedure}${rank}DI${kind}" echo "subroutine ${proc}( )" echo " use mpi_kinds" echo " integer, intent(out) :: ierr" echo "end subroutine ${proc}" echo done echo done echo call , , ierr , & , integer(kind=MPI_INTEGER${kind}_KIND) , dimension(${dim}) integer integer integer character (len=STR_LEN) UNSUPPORTED UNSUPPORTED , dimension( ARRAY_LEN D , ) integer(kind=MPI_ADDRESS_KIND) integer(kind=MPI_OFFSET_KIND) integer(MPI_STATUS_SIZE) external external external external external external external external external external external external external external external external external external integer UNSUPPORTED UNSUPPORTED = VOID_VAL = INT_VAL = INT_VAL = CHAR_VAL = UNSUPPORTED_VAL = FLOAT_VAL = REF_VAL = MPI_AINT_VAL = INT64_VAL = STATUS_VAL = USER_INT_VAL = UNSUPPORTED_VAL = UNSUPPORTED_VAL D ! ! Fortran program to test F90 interface to C function ! program main use mpi implicit none include 'F90TestValues.h' if (ierr /= 0) print *, "ERROR running " end program