Skip to content

Commit c13e64f

Browse files
authored
Merge pull request #14682 from mcgratta/master
FDS Source: Reduce RAM for SETUP_ONLY
2 parents e92c9ed + 6f80459 commit c13e64f

File tree

2 files changed

+48
-31
lines changed

2 files changed

+48
-31
lines changed

Source/dump.f90

Lines changed: 46 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2185,28 +2185,34 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
21852185
WRITE(MYSTR,'(A)') 'OFFSET'; CALL ADDSTR
21862186
WRITE(MYSTR,'(3F13.5)') 0.,0.,0.; CALL ADDSTR
21872187

2188-
! Mesh grid dimensions and neighbor information.
2189-
! Determine if the six mesh faces abut a single mesh (MESH_NEIGHBOR>0), nothing (MESH_NEIGHBOR=0),
2190-
! or a combination of nothing and/or multiple meshes (MESH_NEIGHBOR=-1). Write six values to GRID line.
2191-
2192-
DO I=1,6
2193-
SELECT CASE(I)
2194-
CASE(1) ; IW1=1 ; IW2=IW1+M%JBAR*M%KBAR-1
2195-
CASE(2) ; IW1= M%JBAR*M%KBAR+1 ; IW2=IW1+M%JBAR*M%KBAR-1
2196-
CASE(3) ; IW1=2*M%JBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
2197-
CASE(4) ; IW1=2*M%JBAR*M%KBAR+ M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
2198-
CASE(5) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
2199-
CASE(6) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+ M%IBAR*M%JBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
2200-
END SELECT
2201-
MESH_NEIGHBOR(I) = M%EXTERNAL_WALL(IW1)%NOM
2202-
DO IW=IW1,IW2
2203-
IF (M%EXTERNAL_WALL(IW)%NOM/=MESH_NEIGHBOR(I)) THEN
2204-
MESH_NEIGHBOR(I) = -1
2205-
EXIT
2206-
ENDIF
2188+
MESH_NEIGHBOR = 0
2189+
2190+
IF (.NOT.SETUP_ONLY) THEN
2191+
2192+
! Mesh grid dimensions and neighbor information.
2193+
! Determine if the six mesh faces abut a single mesh (MESH_NEIGHBOR>0), nothing (MESH_NEIGHBOR=0),
2194+
! or a combination of nothing and/or multiple meshes (MESH_NEIGHBOR=-1). Write six values to GRID line.
2195+
2196+
DO I=1,6
2197+
SELECT CASE(I)
2198+
CASE(1) ; IW1=1 ; IW2=IW1+M%JBAR*M%KBAR-1
2199+
CASE(2) ; IW1= M%JBAR*M%KBAR+1 ; IW2=IW1+M%JBAR*M%KBAR-1
2200+
CASE(3) ; IW1=2*M%JBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
2201+
CASE(4) ; IW1=2*M%JBAR*M%KBAR+ M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
2202+
CASE(5) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
2203+
CASE(6) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+ M%IBAR*M%JBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
2204+
END SELECT
2205+
MESH_NEIGHBOR(I) = M%EXTERNAL_WALL(IW1)%NOM
2206+
DO IW=IW1,IW2
2207+
IF (M%EXTERNAL_WALL(IW)%NOM/=MESH_NEIGHBOR(I)) THEN
2208+
MESH_NEIGHBOR(I) = -1
2209+
EXIT
2210+
ENDIF
2211+
ENDDO
22072212
ENDDO
2208-
ENDDO
22092213

2214+
ENDIF
2215+
22102216
CALL EOL
22112217
WRITE(MYSTR,'(A,3X,A)') 'GRID',TRIM(MESH_NAME(NM)); CALL ADDSTR
22122218
WRITE(MYSTR,'(9I6)') M%IBAR,M%JBAR,M%KBAR,MESH_NEIGHBOR(1:6) ; CALL ADDSTR
@@ -2358,11 +2364,15 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
23582364
XX = M%X(0) - 0.001_EB*M%DX(0)
23592365
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
23602366
IF (NOM>0 .AND. VENT_INDICES(J,K,1)<1) VENT_INDICES(J,K,1)=-1
2361-
IF (M%WALL(M%CELL(M%CELL_INDEX(1,J,K))%WALL_INDEX(-1))%OBST_INDEX>0) VENT_INDICES(J,K,1)=-1
2367+
IF (.NOT.SETUP_ONLY) THEN
2368+
IF (M%WALL(M%CELL(M%CELL_INDEX(1,J,K))%WALL_INDEX(-1))%OBST_INDEX>0) VENT_INDICES(J,K,1)=-1
2369+
ENDIF
23622370
XX = M%X(M%IBAR) + 0.001_EB*M%DX(M%IBAR)
23632371
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
23642372
IF (NOM>0 .AND. VENT_INDICES(J,K,2)<1) VENT_INDICES(J,K,2)=-1
2365-
IF (M%WALL(M%CELL(M%CELL_INDEX(M%IBAR,J,K))%WALL_INDEX(1))%OBST_INDEX>0) VENT_INDICES(J,K,2)=-1
2373+
IF (.NOT.SETUP_ONLY) THEN
2374+
IF (M%WALL(M%CELL(M%CELL_INDEX(M%IBAR,J,K))%WALL_INDEX(1))%OBST_INDEX>0) VENT_INDICES(J,K,2)=-1
2375+
ENDIF
23662376
ENDDO
23672377
ENDDO
23682378

@@ -2373,11 +2383,15 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
23732383
YY = M%Y(0) - 0.001_EB*M%DY(0)
23742384
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
23752385
IF (NOM>0 .AND. VENT_INDICES(I,K,3)<1) VENT_INDICES(I,K,3)=-1
2376-
IF (M%WALL(M%CELL(M%CELL_INDEX(I,1,K))%WALL_INDEX(-2))%OBST_INDEX>0) VENT_INDICES(I,K,3)=-1
2386+
IF (.NOT.SETUP_ONLY) THEN
2387+
IF (M%WALL(M%CELL(M%CELL_INDEX(I,1,K))%WALL_INDEX(-2))%OBST_INDEX>0) VENT_INDICES(I,K,3)=-1
2388+
ENDIF
23772389
YY = M%Y(M%JBAR) + 0.001_EB*M%DY(M%JBAR)
23782390
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
23792391
IF (NOM>0 .AND. VENT_INDICES(I,K,4)<1) VENT_INDICES(I,K,4)=-1
2380-
IF (M%WALL(M%CELL(M%CELL_INDEX(I,M%JBAR,K))%WALL_INDEX(2))%OBST_INDEX>0) VENT_INDICES(I,K,4)=-1
2392+
IF (.NOT.SETUP_ONLY) THEN
2393+
IF (M%WALL(M%CELL(M%CELL_INDEX(I,M%JBAR,K))%WALL_INDEX(2))%OBST_INDEX>0) VENT_INDICES(I,K,4)=-1
2394+
ENDIF
23812395
ENDDO
23822396
ENDDO
23832397

@@ -2388,11 +2402,15 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
23882402
ZZ = M%Z(0) - 0.001_EB*M%DZ(0)
23892403
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
23902404
IF (NOM>0 .AND. VENT_INDICES(I,J,5)<1) VENT_INDICES(I,J,5)=-1
2391-
IF (M%WALL(M%CELL(M%CELL_INDEX(I,J,1))%WALL_INDEX(-3))%OBST_INDEX>0) VENT_INDICES(I,J,5)=-1
2405+
IF (.NOT.SETUP_ONLY) THEN
2406+
IF (M%WALL(M%CELL(M%CELL_INDEX(I,J,1))%WALL_INDEX(-3))%OBST_INDEX>0) VENT_INDICES(I,J,5)=-1
2407+
ENDIF
23922408
ZZ = M%Z(M%KBAR) + 0.001_EB*M%DZ(M%KBAR)
23932409
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
23942410
IF (NOM>0 .AND. VENT_INDICES(I,J,6)<1) VENT_INDICES(I,J,6)=-1
2395-
IF (M%WALL(M%CELL(M%CELL_INDEX(I,J,M%KBAR))%WALL_INDEX(3))%OBST_INDEX>0) VENT_INDICES(I,J,6)=-1
2411+
IF (.NOT.SETUP_ONLY) THEN
2412+
IF (M%WALL(M%CELL(M%CELL_INDEX(I,J,M%KBAR))%WALL_INDEX(3))%OBST_INDEX>0) VENT_INDICES(I,J,6)=-1
2413+
ENDIF
23962414
ENDDO
23972415
ENDDO
23982416

@@ -2731,7 +2749,7 @@ SUBROUTINE INITIALIZE_DIAGNOSTIC_FILE(DT)
27312749
WRITE(LU_OUTPUT,'(A,I8)') ' Cells in the X Direction ',M%IBAR
27322750
WRITE(LU_OUTPUT,'(A,I8)') ' Cells in the Y Direction ',M%JBAR
27332751
WRITE(LU_OUTPUT,'(A,I8)') ' Cells in the Z Direction ',M%KBAR
2734-
WRITE(LU_OUTPUT,'(A,I8)') ' Number of Grid Cells ',M%IBAR*M%JBAR*M%KBAR
2752+
WRITE(LU_OUTPUT,'(A,I12)') ' Number of Grid Cells ',M%IBAR*M%JBAR*M%KBAR
27352753
WRITE(LU_OUTPUT,'(//A,I5/)')' Physical Dimensions, Mesh ',NM
27362754
WRITE(LU_OUTPUT,'(A,F10.3)') ' Length (m) ',M%XF-M%XS
27372755
WRITE(LU_OUTPUT,'(A,F10.3)') ' Width (m) ',M%YF-M%YS
@@ -2746,7 +2764,7 @@ SUBROUTINE INITIALIZE_DIAGNOSTIC_FILE(DT)
27462764
ENDIF
27472765

27482766
WRITE(LU_OUTPUT,'(/A/)') ' Miscellaneous Parameters'
2749-
WRITE(LU_OUTPUT,'(A,I9)' ) ' Total Number of Grid Cells ',CELL_COUNT
2767+
WRITE(LU_OUTPUT,'(A,I12)') ' Total Number of Grid Cells' ,CELL_COUNT
27502768
WRITE(LU_OUTPUT,'(A,F9.3)') ' Maximum Cell Aspect Ratio ',MAXVAL(MAX_CELL_ASPECT_RATIO)
27512769
WRITE(LU_OUTPUT,'(A,F9.3)') ' Initial Time Step (s) ',DT
27522770
WRITE(LU_OUTPUT,'(A,I9)') ' CFL Velocity Norm ',CFL_VELOCITY_NORM

Source/main.f90

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -176,13 +176,12 @@ PROGRAM FDS
176176
IF (DT_EXTERNAL_HEARTBEAT > 0._EB) LU_EXTERNAL_HEARTBEAT = GET_FILE_NUMBER()
177177
ENDIF
178178

179-
! Set up the background atmosphere and initialize the WALL cells
179+
! Set up the background atmosphere and initialize the boundary (WALL) arrays
180180

181181
DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
182182
CALL INITIALIZE_ATMOSPHERE(NM)
183-
CALL INITIALIZE_WALL_ARRAY(NM)
183+
IF (.NOT.SETUP_ONLY) CALL INITIALIZE_WALL_ARRAY(NM)
184184
ENDDO
185-
186185
IF (MY_RANK==0 .AND. VERBOSE) CALL VERBOSE_PRINTOUT('Completed INITIALIZE_WALL_ARRAY')
187186

188187
! Write the Smokeview (.smv) file using parallel MPI writes

0 commit comments

Comments
 (0)