Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 27 additions & 1 deletion model/src/w3uostmd.F90
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ MODULE W3UOSTMD
USE W3GDATMD, ONLY: GRID, SGRD, GRIDS, SGRDS
USE W3ODATMD, ONLY: NDSO, NDSE, IAPROC, NAPOUT
USE W3SERVMD, ONLY: EXTCDE
#ifdef W3_MPI
USE W3ADATMD, ONLY: MPI_COMM_WAVE
#endif
#ifdef W3_S
USE W3SERVMD, ONLY: STRACE
#endif
Expand Down Expand Up @@ -430,14 +433,28 @@ SUBROUTINE LOAD_ALPHABETA_FROMFILE(FILEUNIT, FILENAME, NX, NY, NK, NTH,&
LOGICAL :: HEADER, FILESTART, READINGCELLSIZE, READINGALPHA
INTEGER :: IX, IY, SPGRDS_SIZE, IK
REAL, ALLOCATABLE :: TRANS(:)
#ifdef W3_MPI
INCLUDE "mpif.h"
INTEGER :: IERR_MPI
#endif
#ifdef W3_S
INTEGER, SAVE :: IENT = 0
#endif

#ifdef W3_S
CALL STRACE (IENT, 'LOAD_ALPHABETA_FROMFILE')
#endif


! ------------------------------------------------------------------
! parse the ASCII obstruction file.
! With MPI: only NAPOUT reads the file; result is broadcast to all
! other ranks to avoid saturating the filesystem with N simultaneous
! text-format reads.
! ------------------------------------------------------------------
#ifdef W3_MPI
IF (IAPROC .EQ. NAPOUT) THEN
#endif

! INITIALIZING LOGICALS REPRESENTING THE DIFFERENT PHASES OF THE LOAD
FILESTART = .TRUE.
HEADER = .TRUE.;
Expand Down Expand Up @@ -502,6 +519,15 @@ SUBROUTINE LOAD_ALPHABETA_FROMFILE(FILEUNIT, FILENAME, NX, NY, NK, NTH,&
CLOSE(FILEUNIT)

DEALLOCATE(TRANS)

#ifdef W3_MPI
ENDIF ! IAPROC .EQ. NAPOUT
! Distribute the arrays read by NAPOUT to every other rank.
CALL MPI_BCAST(ALPHAMTX, NX*NY*NK*NTH, MPI_BYTE, NAPOUT-1, MPI_COMM_WAVE, IERR_MPI)
CALL MPI_BCAST(BETAMTX, NX*NY*NK*NTH, MPI_BYTE, NAPOUT-1, MPI_COMM_WAVE, IERR_MPI)
CALL MPI_BCAST(CELLSIZE, NX*NY*NTH, MPI_REAL, NAPOUT-1, MPI_COMM_WAVE, IERR_MPI)
CALL MPI_BCAST(ISOBSTRUCTED, NX*NY, MPI_LOGICAL, NAPOUT-1, MPI_COMM_WAVE, IERR_MPI)
#endif

END SUBROUTINE LOAD_ALPHABETA_FROMFILE

Expand Down
Loading