! mpi subroutine wrappers #ifndef CPP_MPI SUBROUTINE lmdz_mpi_wrapper_abort STOP 'CPP_MPI key undefined, must not enter in MPI wrappers ==> aborting' END SUBROUTINE lmdz_mpi_wrapper_abort SUBROUTINE MPI_ABORT(COMM, ERRORCODE, IERROR) IMPLICIT NONE INTEGER :: COMM, ERRORCODE, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_ABORT SUBROUTINE MPI_ALLGATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, COMM, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: SENDBUF , RECVBUF INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, COMM INTEGER IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_ALLGATHER SUBROUTINE MPI_COMM_SIZE(COMM, SIZE, IERROR) IMPLICIT NONE INTEGER COMM, SIZE, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_COMM_SIZE SUBROUTINE MPI_COMM_RANK(COMM, RANK, IERROR) IMPLICIT NONE INTEGER COMM, RANK, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_COMM_RANK SUBROUTINE MPI_BARRIER(COMM, IERROR) IMPLICIT NONE INTEGER COMM, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_BARRIER SUBROUTINE MPI_ISEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: BUF INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_ISEND SUBROUTINE MPI_ISSEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: BUF INTEGER COUNT, DATATYPE, DEST, TAG, COMM, REQUEST, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_ISSEND SUBROUTINE MPI_IRECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: BUF INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM, REQUEST, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_IRECV SUBROUTINE MPI_WAITALL(COUNT, ARRAY_OF_REQUESTS, ARRAY_OF_STATUSES, IERROR) USE lmdz_mpi, ONLY : MPI_STATUS_SIZE IMPLICIT NONE INTEGER COUNT, ARRAY_OF_REQUESTS(*) INTEGER ARRAY_OF_STATUSES(MPI_STATUS_SIZE,*), IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_WAITALL SUBROUTINE MPI_GATHERV(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNTS, DISPLS, RECVTYPE, ROOT, COMM, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: SENDBUF, RECVBUF INTEGER SENDCOUNT, SENDTYPE, RECVCOUNTS(*), DISPLS(*) INTEGER RECVTYPE, ROOT, COMM, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_GATHERV SUBROUTINE MPI_BCAST(BUFFER, COUNT, DATATYPE, ROOT, COMM, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: BUFFER INTEGER COUNT, DATATYPE, ROOT, COMM, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_BCAST SUBROUTINE MPI_ALLREDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, COMM, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: SENDBUF, RECVBUF INTEGER COUNT, DATATYPE, OP, COMM, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_ALLREDUCE SUBROUTINE MPI_INIT_THREAD(REQUIRED, PROVIDED, IERROR) IMPLICIT NONE INTEGER REQUIRED, PROVIDED, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_INIT_THREAD SUBROUTINE MPI_ALLOC_MEM(SIZE, INFO, BASEPTR, IERROR) USE lmdz_mpi, ONLY : MPI_ADDRESS_KIND IMPLICIT NONE INTEGER INFO, IERROR INTEGER(KIND=MPI_ADDRESS_KIND) SIZE, BASEPTR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_ALLOC_MEM SUBROUTINE MPI_SCATTERV(SENDBUF, SENDCOUNTS, DISPLS, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: SENDBUF, RECVBUF INTEGER SENDCOUNTS(*), DISPLS(*), SENDTYPE INTEGER RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_SCATTERV SUBROUTINE MPI_REDUCE(SENDBUF, RECVBUF, COUNT, DATATYPE, OP, ROOT, COMM, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: SENDBUF, RECVBUF INTEGER COUNT, DATATYPE, OP, ROOT, COMM, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_REDUCE SUBROUTINE MPI_RECV(BUF, COUNT, DATATYPE, SOURCE, TAG, COMM, STATUS, IERROR) USE ISO_C_BINDING USE lmdz_mpi, ONLY : MPI_STATUS_SIZE IMPLICIT NONE TYPE(C_PTR),VALUE :: BUF INTEGER COUNT, DATATYPE, SOURCE, TAG, COMM INTEGER STATUS(MPI_STATUS_SIZE), IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_RECV SUBROUTINE MPI_SEND(BUF, COUNT, DATATYPE, DEST, TAG, COMM, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: BUF INTEGER COUNT, DATATYPE, DEST, TAG, COMM, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_SEND SUBROUTINE MPI_COMM_SPLIT(COMM, COLOR, KEY, NEWCOMM, IERROR) IMPLICIT NONE INTEGER COMM, COLOR, KEY, NEWCOMM, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_COMM_SPLIT SUBROUTINE MPI_GATHER(SENDBUF, SENDCOUNT, SENDTYPE, RECVBUF, RECVCOUNT, RECVTYPE, ROOT, COMM, IERROR) USE ISO_C_BINDING IMPLICIT NONE TYPE(C_PTR),VALUE :: SENDBUF, RECVBUF INTEGER SENDCOUNT, SENDTYPE, RECVCOUNT, RECVTYPE, ROOT INTEGER COMM, IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_GATHER SUBROUTINE MPI_FINALIZE(IERROR) IMPLICIT NONE INTEGER IERROR CALL lmdz_mpi_wrapper_abort END SUBROUTINE MPI_Finalize #endif