Skip to content

Commit d4432ca

Browse files
authored
Merge pull request #15020 from mcgratta/master
FDS Source: Add MPI error codes
2 parents a54343b + cb3b39d commit d4432ca

File tree

1 file changed

+21
-8
lines changed

1 file changed

+21
-8
lines changed

Source/main.f90

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2913,6 +2913,7 @@ SUBROUTINE MESH_EXCHANGE(CODE)
29132913
INTEGER, INTENT(IN) :: CODE
29142914
INTEGER :: NM,NOM,I,II,JJ,KK,LL,LLL,N,RNODE,SNODE,IMIN,IMAX,JMIN,JMAX,KMIN,KMAX,IJK_SIZE,RC,IC,LC
29152915
INTEGER :: NNN,NN1,NN2,IPC,II1,II2,JJ1,JJ2,KK1,KK2,NQT2,NN,IOR,NRA,NRA_MAX,AIC,OBST_INDEX,IP,IW
2916+
CHARACTER(50) :: ERR_STRING
29162917
REAL(EB), POINTER, DIMENSION(:,:) :: PHI_LS_P
29172918
REAL(EB), POINTER, DIMENSION(:,:,:) :: HP,HP2,RHOP,RHOP2,DP,DP2,UP,UP2,VP,VP2,WP,WP2
29182919
REAL(EB), POINTER, DIMENSION(:,:,:,:) :: ZZP,ZZP2
@@ -3385,7 +3386,15 @@ SUBROUTINE MESH_EXCHANGE(CODE)
33853386
! Start the communications. Note that MPI_STARTALL starts the persistent send/receives
33863387

33873388
IF (N_MPI_PROCESSES>1 .AND. N_REQ>0) THEN
3388-
CALL TIMEOUT('MPI exchange of particles',N_REQ,REQ(1:N_REQ))
3389+
SELECT CASE(CODE)
3390+
CASE( 8) ; ERR_STRING = 'MPI exchange of WALL information (CODE=8)'
3391+
CASE( 9) ; ERR_STRING = 'MPI exchange of WALL information (CODE=9)'
3392+
CASE(19) ; ERR_STRING = 'MPI exchange of WALL information (CODE=19)'
3393+
CASE(11) ; ERR_STRING = 'MPI exchange of PARTICLE information (CODE=11)'
3394+
CASE(16) ; ERR_STRING = 'MPI exchange of OBST information (CODE=16)'
3395+
CASE(18) ; ERR_STRING = 'MPI exchange of OBST information (CODE=18)'
3396+
END SELECT
3397+
CALL TIMEOUT(ERR_STRING,N_REQ,REQ(1:N_REQ))
33893398
N_REQ = 0
33903399
ENDIF
33913400

@@ -3400,37 +3409,41 @@ SUBROUTINE MESH_EXCHANGE(CODE)
34003409

34013410
IF (N_MPI_PROCESSES>1 .AND. CODE==7 .AND. N_REQ2>0) THEN
34023411
CALL MPI_STARTALL(N_REQ2,REQ2(1:N_REQ2),IERR)
3403-
CALL TIMEOUT('MPI exchange of particle sizes',N_REQ2,REQ2(1:N_REQ2))
3412+
CALL TIMEOUT('MPI exchange of particle sizes (CODE=7)',N_REQ2,REQ2(1:N_REQ2))
34043413
ENDIF
34053414

34063415
IF (N_MPI_PROCESSES>1 .AND. (CODE==3.OR.CODE==6) .AND. N_REQ3>0) THEN
34073416
CALL MPI_STARTALL(N_REQ3,REQ3(1:N_REQ3),IERR)
3408-
CALL TIMEOUT('MPI exchange of velocity and pressure',N_REQ3,REQ3(1:N_REQ3))
3417+
IF (CODE==3) THEN
3418+
CALL TIMEOUT('MPI exchange of velocity and pressure (CODE=3)',N_REQ3,REQ3(1:N_REQ3))
3419+
ELSE
3420+
CALL TIMEOUT('MPI exchange of velocity and pressure (CODE=6)',N_REQ3,REQ3(1:N_REQ3))
3421+
ENDIF
34093422
ENDIF
34103423

34113424
IF (N_MPI_PROCESSES>1 .AND. CODE==5 .AND. N_REQ7>0) THEN
34123425
CALL MPI_STARTALL(N_REQ7,REQ7(1:N_REQ7),IERR)
3413-
CALL TIMEOUT('MPI exchange of pressure',N_REQ7,REQ7(1:N_REQ7))
3426+
CALL TIMEOUT('MPI exchange of pressure (CODE=5)',N_REQ7,REQ7(1:N_REQ7))
34143427
ENDIF
34153428

34163429
IF (N_MPI_PROCESSES>1 .AND. CODE==6 .AND. N_REQ6>0) THEN
34173430
CALL MPI_STARTALL(N_REQ6,REQ6(1:N_REQ6),IERR)
3418-
CALL TIMEOUT('MPI exchange of back wall info',N_REQ6,REQ6(1:N_REQ6))
3431+
CALL TIMEOUT('MPI exchange of back wall info (CODE=6)',N_REQ6,REQ6(1:N_REQ6))
34193432
ENDIF
34203433

34213434
IF (N_MPI_PROCESSES>1 .AND. CODE==2 .AND. N_REQ5>0) THEN
34223435
CALL MPI_STARTALL(N_REQ5,REQ5(1:N_REQ5),IERR)
3423-
CALL TIMEOUT('MPI exchange of radiation',N_REQ5,REQ5(1:N_REQ5))
3436+
CALL TIMEOUT('MPI exchange of radiation (CODE=2)',N_REQ5,REQ5(1:N_REQ5))
34243437
ENDIF
34253438

34263439
IF (N_MPI_PROCESSES>1 .AND. CODE==14 .AND. N_REQ14>0) THEN
34273440
CALL MPI_STARTALL(N_REQ14,REQ14(1:N_REQ14),IERR)
3428-
CALL TIMEOUT('MPI exchange of level set values',N_REQ14,REQ14(1:N_REQ14))
3441+
CALL TIMEOUT('MPI exchange of level set values (CODE=14)',N_REQ14,REQ14(1:N_REQ14))
34293442
ENDIF
34303443

34313444
IF (N_MPI_PROCESSES>1 .AND. CODE==15 .AND. N_REQ15>0) THEN
34323445
CALL MPI_STARTALL(N_REQ15,REQ15(1:N_REQ15),IERR)
3433-
CALL TIMEOUT('MPI exchange of obstruction mass',N_REQ15,REQ15(1:N_REQ15))
3446+
CALL TIMEOUT('MPI exchange of obstruction mass (CODE=15)',N_REQ15,REQ15(1:N_REQ15))
34343447
ENDIF
34353448

34363449
! For each mesh, NM, controlled by the current MPI process, RNODE, loop over all

0 commit comments

Comments
 (0)