(parallel) Blocking collective file write using explicit offsets (serial) Unformatted stream write
MPI-I/O mapping mpi_file_write_at_all
STREAM-I/O mapping WRITE
Type | Intent | Optional | Attributes | Name | ||
---|---|---|---|---|---|---|
type(mp_file_type), | intent(in) | :: | fh | |||
integer(kind=file_offset), | intent(in) | :: | offset | |||
complex(kind=real_4), | intent(in) | :: | msg(:) | |||
integer, | intent(in), | optional | :: | msglen |
SUBROUTINE mp_file_write_at_all_cv(fh, offset, msg, msglen) !! (parallel) Blocking collective file write using explicit offsets !! (serial) Unformatted stream write !! !! MPI-I/O mapping mpi_file_write_at_all !! !! STREAM-I/O mapping WRITE COMPLEX(kind=real_4), INTENT(IN) :: msg(:) TYPE(mp_file_type), INTENT(IN) :: fh INTEGER, INTENT(IN), OPTIONAL :: msglen INTEGER :: msg_len INTEGER(kind=file_offset), INTENT(IN) :: offset msg_len = SIZE(msg) IF (PRESENT(msglen)) msg_len = msglen #if defined(__parallel) BLOCK CHARACTER(LEN=*), PARAMETER :: routineN = 'mp_file_write_at_all_cv' INTEGER :: ierr ierr = 0 CALL MPI_FILE_WRITE_AT_ALL(fh%handle, offset, msg, msg_len, MPI_COMPLEX, MPI_STATUS_IGNORE, ierr) IF (ierr .NE. 0) & DBCSR_ABORT("mpi_file_write_at_all_cv @ "//routineN) END BLOCK #else WRITE (UNIT=fh%handle, POS=offset + 1) msg(1:msg_len) #endif END SUBROUTINE mp_file_write_at_all_cv