Skip to content

Commit e0664cd

Browse files
committed
FDS Source: Remove redundant CONNECTED_ZONES_LOC
1 parent 3f3c735 commit e0664cd

File tree

5 files changed

+21
-55
lines changed

5 files changed

+21
-55
lines changed

Source/cons.f90

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -633,8 +633,7 @@ MODULE GLOBAL_CONSTANTS
633633
! Number of initial value, pressure zone, and multiplier derived types
634634

635635
INTEGER :: N_INIT,N_ZONE,N_MULT,N_MOVE
636-
LOGICAL, ALLOCATABLE, DIMENSION(:,:) :: CONNECTED_ZONES
637-
INTEGER, ALLOCATABLE, DIMENSION(:,:) :: CONNECTED_ZONES_LOC
636+
INTEGER, ALLOCATABLE, DIMENSION(:,:) :: CONNECTED_ZONES
638637
REAL(EB) :: MINIMUM_ZONE_VOLUME=0._EB
639638
REAL(EB) :: PRESSURE_RELAX_TIME=1._EB
640639

Source/divg.f90

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1114,15 +1114,15 @@ SUBROUTINE MERGE_PRESSURE_ZONES
11141114
IPZ = PRESSURE_ZONE(BC%IIG,BC%JJG,BC%KKG)
11151115
IOPZ = PRESSURE_ZONE(BC%II,BC%JJ,BC%KK)
11161116
IF (IW>N_EXTERNAL_WALL_CELLS .AND. IPZ/=IOPZ) THEN
1117-
CONNECTED_ZONES(IOPZ,IPZ) = .TRUE.
1118-
CONNECTED_ZONES(IPZ,IOPZ) = .TRUE.
1117+
CONNECTED_ZONES(IOPZ,IPZ) = 1
1118+
CONNECTED_ZONES(IPZ,IOPZ) = 1
11191119
ENDIF
11201120
IF (WC%BOUNDARY_TYPE==OPEN_BOUNDARY) THEN
1121-
CONNECTED_ZONES(0,IPZ) = .TRUE.
1122-
CONNECTED_ZONES(IPZ,0) = .TRUE.
1121+
CONNECTED_ZONES(0,IPZ) = 1
1122+
CONNECTED_ZONES(IPZ,0) = 1
11231123
ELSEIF (WC%BOUNDARY_TYPE==INTERPOLATED_BOUNDARY) THEN
1124-
CONNECTED_ZONES(IOPZ,IPZ) = .TRUE.
1125-
CONNECTED_ZONES(IPZ,IOPZ) = .TRUE.
1124+
CONNECTED_ZONES(IOPZ,IPZ) = 1
1125+
CONNECTED_ZONES(IPZ,IOPZ) = 1
11261126
ENDIF
11271127
ENDDO
11281128

@@ -1294,7 +1294,7 @@ SUBROUTINE DIVERGENCE_PART_2(DT,NM)
12941294
SUM_PSUM = PSUM(IPZ)
12951295
DO IOPZ=N_ZONE,0,-1
12961296
IF (IOPZ==IPZ) CYCLE
1297-
IF (CONNECTED_ZONES(IPZ,IOPZ)) THEN
1297+
IF (CONNECTED_ZONES(IPZ,IOPZ)>0) THEN
12981298
IF (IOPZ==0) THEN
12991299
OPEN_ZONE = .TRUE.
13001300
ELSE

Source/hvac.f90

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1873,7 +1873,7 @@ SUBROUTINE DPSTARCALC
18731873
PSUM_TOT(IPZ) = PSUM(IPZ)
18741874
DO IOPZ = 1,N_ZONE
18751875
IF (IPZ==IOPZ) CYCLE
1876-
IF (CONNECTED_ZONES(IPZ,IOPZ)) PSUM_TOT(IPZ) = PSUM_TOT(IPZ) + PSUM(IOPZ)
1876+
IF (CONNECTED_ZONES(IPZ,IOPZ)>0) PSUM_TOT(IPZ) = PSUM_TOT(IPZ) + PSUM(IOPZ)
18771877
ENDDO
18781878
ENDDO
18791879

@@ -1888,7 +1888,7 @@ SUBROUTINE DPSTARCALC
18881888
DO IOPZ = 1, N_ZONE
18891889
IF (IPZ==IOPZ) CYCLE
18901890
IF (P_ZONE(IOPZ)%N_DUCTNODES==0) CYCLE
1891-
IF (CONNECTED_ZONES(IPZ,IOPZ)) THEN
1891+
IF (CONNECTED_ZONES(IPZ,IOPZ)>0) THEN
18921892
IF (P_ZONE(IOPZ)%N_DUCTNODES==0) CYCLE
18931893
DPSTAR(IOPZ) = DPSTAR(IOPZ) - DN%DIR(1) * DU%AREA * DU%VEL(OLD) * DT_HV/PSUM_TOT(IPZ)
18941894
IF (DU%FIXED) DPSTAR(IOPZ) = DPSTAR(IOPZ) + DN%DIR(1) * DU%AREA * DU%VEL(NEW) * DT_HV/PSUM_TOT(IPZ)
@@ -3049,7 +3049,7 @@ SUBROUTINE COLLAPSE_HVAC_BC(T)
30493049
WRITE(MESSAGE,'(A,A)') 'ERROR(552): Ductnode must lie with a single pressure zone. Node: ',TRIM(DUCTNODE(NN)%ID)
30503050
CALL SHUTDOWN(MESSAGE); RETURN
30513051
ENDIF
3052-
IF (CONNECTED_ZONES(0,DN%ZONE_INDEX)) DN%ZONE_INDEX = 0
3052+
IF (CONNECTED_ZONES(0,DN%ZONE_INDEX)>0) DN%ZONE_INDEX = 0
30533053
ENDIF
30543054

30553055
INTERNAL_NODE_IF: IF (((DN%VENT .OR. DN%LEAKAGE) .AND. .NOT. DN%AMBIENT) .OR. &

Source/main.f90

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1361,13 +1361,7 @@ SUBROUTINE MPI_INITIALIZATION_CHORES(TASK_NUMBER)
13611361

13621362
! Allocate a few arrays needed to exchange divergence and pressure info among meshes
13631363

1364-
ALLOCATE(CONNECTED_ZONES(0:N_ZONE,0:N_ZONE),STAT=IZERO)
1365-
CALL ChkMemErr('INIT','CONNECTED_ZONES',IZERO)
1366-
CONNECTED_ZONES = .FALSE.
1367-
1368-
ALLOCATE(CONNECTED_ZONES_LOC(0:N_ZONE,0:N_ZONE),STAT=IZERO)
1369-
CALL ChkMemErr('INIT','CONNECTED_ZONES_LOC',IZERO)
1370-
CONNECTED_ZONES_LOC = 0
1364+
ALLOCATE(CONNECTED_ZONES(0:N_ZONE,0:N_ZONE),STAT=IZERO) ; CALL ChkMemErr('INIT','CONNECTED_ZONES',IZERO) ; CONNECTED_ZONES=0
13711365

13721366
ALLOCATE(DSUM(N_ZONE),STAT=IZERO) ; CALL ChkMemErr('MAIN','DSUM',IZERO) ; DSUM = 0._EB
13731367
ALLOCATE(PSUM(N_ZONE),STAT=IZERO) ; CALL ChkMemErr('MAIN','PSUM',IZERO) ; PSUM = 0._EB
@@ -1792,9 +1786,9 @@ SUBROUTINE INITIALIZE_DIVERGENCE_INTEGRALS
17921786
DSUM = 0._EB
17931787

17941788
IF (OBST_CREATED_OR_REMOVED) THEN
1795-
CONNECTED_ZONES = .FALSE.
1789+
CONNECTED_ZONES = 0
17961790
DO IPZ=0,N_ZONE
1797-
CONNECTED_ZONES(IPZ,IPZ) = .TRUE.
1791+
CONNECTED_ZONES(IPZ,IPZ) = 1
17981792
ENDDO
17991793
ENDIF
18001794

@@ -1817,15 +1811,16 @@ SUBROUTINE EXCHANGE_DIVERGENCE_INFO
18171811
CALL MPI_ALLREDUCE(MPI_IN_PLACE,DSUM,N_ZONE,MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,IERR)
18181812
CALL MPI_ALLREDUCE(MPI_IN_PLACE,PSUM,N_ZONE,MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,IERR)
18191813
CALL MPI_ALLREDUCE(MPI_IN_PLACE,USUM,N_ZONE,MPI_DOUBLE_PRECISION,MPI_SUM,MPI_COMM_WORLD,IERR)
1820-
CALL MPI_ALLREDUCE(MPI_IN_PLACE,CONNECTED_ZONES,(N_ZONE+1)**2,MPI_LOGICAL,MPI_LOR,MPI_COMM_WORLD,IERR)
18211814
ENDIF
18221815

18231816
! Connect zones to others which are not directly connected
18241817

18251818
IF (OBST_CREATED_OR_REMOVED) THEN
1819+
IF (N_MPI_PROCESSES>1) CALL MPI_ALLREDUCE(MPI_IN_PLACE,CONNECTED_ZONES,(N_ZONE+1)**2,MPI_INTEGER,MPI_SUM,MPI_COMM_WORLD,IERR)
18261820
DO IPZ=1,N_ZONE
18271821
CONNECTED_ZONES = MATMUL(CONNECTED_ZONES,CONNECTED_ZONES)
18281822
ENDDO
1823+
CONNECTED_ZONES = MIN(1,CONNECTED_ZONES)
18291824
ENDIF
18301825

18311826
T_USED(11)=T_USED(11) + CURRENT_TIME() - TNOW

Source/pres.f90

Lines changed: 5 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1180,26 +1180,11 @@ SUBROUTINE ULMAT_SOLVER_SETUP(NM)
11801180
CALL ChkMemErr('INIT','ZONE_MESH',IZERO)
11811181
ENDIF
11821182

1183-
! Identify connected ZONEs
1183+
! Select the parent zone as the first in the row
11841184

1185-
! translate logical array to local and fill diagonal
1186-
CONNECTED_ZONES_LOC = 0
1187-
DO IOPZ=0,N_ZONE
1188-
DO IPZ=0,N_ZONE
1189-
IF (IPZ==IOPZ .OR. CONNECTED_ZONES(IPZ,IOPZ)) CONNECTED_ZONES_LOC(IPZ,IOPZ) = 1
1190-
ENDDO
1191-
ENDDO
1192-
1193-
! establish sets of connected zones
1194-
DO IPZ=1,N_ZONE
1195-
CONNECTED_ZONES_LOC = MATMUL(CONNECTED_ZONES_LOC,CONNECTED_ZONES_LOC)
1196-
ENDDO
1197-
CONNECTED_ZONES_LOC = MIN(1,CONNECTED_ZONES_LOC)
1198-
1199-
! select the parent zone as the first in the row
12001185
DO IPZ=0,N_ZONE
12011186
ZM=>MESHES(NM)%ZONE_MESH(IPZ)
1202-
ZM%CONNECTED_ZONE_PARENT = MINLOC(CONNECTED_ZONES_LOC(IPZ,:), DIM=1, MASK = CONNECTED_ZONES_LOC(IPZ,:)/=0) - 1
1187+
ZM%CONNECTED_ZONE_PARENT = MINLOC(CONNECTED_ZONES(IPZ,:), DIM=1, MASK=CONNECTED_ZONES(IPZ,:)/=0) - 1
12031188
ENDDO
12041189

12051190
! Test if FFT solver can be used for this MESH
@@ -1212,7 +1197,7 @@ SUBROUTINE ULMAT_SOLVER_SETUP(NM)
12121197
IF (ZM%CONNECTED_ZONE_PARENT/=IPZ) CYCLE ZONE_MESH_LOOP
12131198

12141199
! Test for multiple zones in MESH
1215-
NZIM=SUM(CONNECTED_ZONES_LOC(IPZ,:))
1200+
NZIM=SUM(CONNECTED_ZONES(IPZ,:))
12161201
IF (NZIM>1) ZM%USE_FFT=.FALSE.
12171202
IPZIM=IPZ
12181203

@@ -4827,24 +4812,11 @@ SUBROUTINE GET_MATRIX_INDEXES_H
48274812
DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
48284813
! Initialize unknown numbers for H:
48294814
MESHES(NM)%CCVAR(:,:,:,UNKH) = IS_UNDEFINED
4830-
! Identify connected ZONEs
4831-
! translate logical array to local and fill diagonal
4832-
CONNECTED_ZONES_LOC = 0
4833-
DO IOPZ=0,N_ZONE
4834-
DO IPZ=0,N_ZONE
4835-
IF (IPZ==IOPZ .OR. CONNECTED_ZONES(IPZ,IOPZ)) CONNECTED_ZONES_LOC(IPZ,IOPZ) = 1
4836-
ENDDO
4837-
ENDDO
4838-
! establish sets of connected zones
4839-
DO IPZ=1,N_ZONE
4840-
CONNECTED_ZONES_LOC = MATMUL(CONNECTED_ZONES_LOC,CONNECTED_ZONES_LOC)
4841-
ENDDO
4842-
CONNECTED_ZONES_LOC = MIN(1,CONNECTED_ZONES_LOC)
4843-
! select the parent zone as the first in the row
4815+
! Select the parent zone as the first in the row
48444816
DO IPZ=0,N_ZONE
48454817
ZSL => ZONE_SOLVE(IPZ)
48464818
IF(.NOT.PRES_ON_WHOLE_DOMAIN) &
4847-
ZSL%CONNECTED_ZONE_PARENT = MINLOC(CONNECTED_ZONES_LOC(IPZ,:), DIM=1, MASK = CONNECTED_ZONES_LOC(IPZ,:)/=0) - 1
4819+
ZSL%CONNECTED_ZONE_PARENT = MINLOC(CONNECTED_ZONES(IPZ,:), DIM=1, MASK=CONNECTED_ZONES(IPZ,:)/=0) - 1
48484820
ENDDO
48494821
ENDDO
48504822

0 commit comments

Comments
 (0)