@@ -72,7 +72,7 @@ PROGRAM FDS
7272CHARACTER (MPI_MAX_PROCESSOR_NAME) :: PNAME
7373LOGICAL , ALLOCATABLE , DIMENSION (:) :: LOGICAL_BUFFER_EXTERNAL
7474REAL (EB), ALLOCATABLE , DIMENSION (:) :: REAL_BUFFER_DUCT,REAL_BUFFER_EXTERNAL
75- REAL (EB), ALLOCATABLE , DIMENSION (:,:) :: REAL_BUFFER_10,REAL_BUFFER_20,REAL_BUFFER_VENT
75+ REAL (EB), ALLOCATABLE , DIMENSION (:,:) :: REAL_BUFFER_10,REAL_BUFFER_20
7676
7777! Initialize OpenMP
7878
@@ -1053,7 +1053,6 @@ SUBROUTINE MPI_INITIALIZATION_CHORES(TASK_NUMBER)
10531053 ALLOCATE (REAL_BUFFER_DUCT((2 + N_TRACKED_SPECIES)* N_DUCTNODES+ N_DUCTS))
10541054 ALLOCATE (REAL_BUFFER_10(10 ,NMESHES))
10551055 ALLOCATE (REAL_BUFFER_20(20 ,NMESHES))
1056- ALLOCATE (REAL_BUFFER_VENT(N_VENT_TOTAL,NMESHES))
10571056
10581057 IF (READ_EXTERNAL) THEN
10591058 ALLOCATE (REAL_BUFFER_EXTERNAL(N_RAMP))
@@ -1064,13 +1063,11 @@ SUBROUTINE MPI_INITIALIZATION_CHORES(TASK_NUMBER)
10641063 ALLOCATE (COUNTS_10(0 :N_MPI_PROCESSES-1 ))
10651064 ALLOCATE (COUNTS_20(0 :N_MPI_PROCESSES-1 ))
10661065 ALLOCATE (COUNTS_TP(0 :N_MPI_PROCESSES-1 ))
1067- ALLOCATE (COUNTS_VENT(0 :N_MPI_PROCESSES-1 ))
10681066
10691067 ALLOCATE (DISPLS(0 :N_MPI_PROCESSES-1 ))
10701068 ALLOCATE (DISPLS_10(0 :N_MPI_PROCESSES-1 ))
10711069 ALLOCATE (DISPLS_20(0 :N_MPI_PROCESSES-1 ))
10721070 ALLOCATE (DISPLS_TP(0 :N_MPI_PROCESSES-1 ))
1073- ALLOCATE (DISPLS_VENT(0 :N_MPI_PROCESSES-1 ))
10741071 ALLOCATE (I_OFFSET(NMESHES))
10751072
10761073 COUNTS = 0
@@ -1095,8 +1092,6 @@ SUBROUTINE MPI_INITIALIZATION_CHORES(TASK_NUMBER)
10951092 DISPLS(N) = COUNTS(N-1 ) + DISPLS(N-1 )
10961093 DISPLS_TP(N) = COUNTS_TP(N-1 ) + DISPLS_TP(N-1 )
10971094 ENDDO
1098- COUNTS_VENT = COUNTS* N_VENT_TOTAL
1099- DISPLS_VENT = DISPLS* N_VENT_TOTAL
11001095 COUNTS_10 = COUNTS* 10
11011096 DISPLS_10 = DISPLS* 10
11021097 COUNTS_20 = COUNTS* 20
@@ -4275,22 +4270,17 @@ SUBROUTINE CHECK_FREEZE_VELOCITY_STATUS
42754270END SUBROUTINE CHECK_FREEZE_VELOCITY_STATUS
42764271
42774272
4278- ! > \brief Exchange FDS VENT areas so each process knows the total FDS area
4273+ ! > \brief Sum up local grid-snapped or " FDS" VENT areas so that each process knows the total vent area spanning multiple meshes
42794274
42804275SUBROUTINE EXCHANGE_VENT_AREA
4281- INTEGER :: NM,NV
4276+ INTEGER :: NM,NV
42824277
4283- IF (N_MPI_PROCESSES> 1 ) THEN
4284- REAL_BUFFER_VENT = VENT_TOTAL_AREA
4285- CALL MPI_ALLGATHERV(MPI_IN_PLACE,0 ,MPI_DATATYPE_NULL,REAL_BUFFER_VENT,&
4286- COUNTS_VENT,DISPLS_VENT,MPI_DOUBLE_PRECISION,MPI_COMM_WORLD,IERR)
4287- VENT_TOTAL_AREA = REAL_BUFFER_VENT
4288- ENDIF
4278+ CALL MPI_ALLREDUCE(MPI_IN_PLACE,VENT_TOTAL_AREA,N_VENT_TOTAL,MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,IERR)
42894279
4290- DO NM= 1 ,NMESHES
4291- IF (PROCESS( NM)/= MY_RANK) CYCLE
4292- DO NV= 1 ,MESHES(NM) % N_VENT
4293- MESHES(NM) % VENTS(NV)% TOTAL_FDS_AREA= SUM ( VENT_TOTAL_AREA(MESHES(NM) % VENTS(NV)% TOTAL_INDEX,:) )
4280+ DO NM= LOWER_MESH_INDEX,UPPER_MESH_INDEX
4281+ M = > MESHES( NM)
4282+ DO NV= 1 ,M % N_VENT
4283+ M % VENTS(NV)% TOTAL_FDS_AREA = VENT_TOTAL_AREA(M % VENTS(NV)% TOTAL_INDEX)
42944284 ENDDO
42954285ENDDO
42964286
0 commit comments