Skip to content
Merged
Show file tree
Hide file tree
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
74 changes: 46 additions & 28 deletions Source/dump.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2185,28 +2185,34 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
WRITE(MYSTR,'(A)') 'OFFSET'; CALL ADDSTR
WRITE(MYSTR,'(3F13.5)') 0.,0.,0.; CALL ADDSTR

! Mesh grid dimensions and neighbor information.
! Determine if the six mesh faces abut a single mesh (MESH_NEIGHBOR>0), nothing (MESH_NEIGHBOR=0),
! or a combination of nothing and/or multiple meshes (MESH_NEIGHBOR=-1). Write six values to GRID line.

DO I=1,6
SELECT CASE(I)
CASE(1) ; IW1=1 ; IW2=IW1+M%JBAR*M%KBAR-1
CASE(2) ; IW1= M%JBAR*M%KBAR+1 ; IW2=IW1+M%JBAR*M%KBAR-1
CASE(3) ; IW1=2*M%JBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
CASE(4) ; IW1=2*M%JBAR*M%KBAR+ M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
CASE(5) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
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
END SELECT
MESH_NEIGHBOR(I) = M%EXTERNAL_WALL(IW1)%NOM
DO IW=IW1,IW2
IF (M%EXTERNAL_WALL(IW)%NOM/=MESH_NEIGHBOR(I)) THEN
MESH_NEIGHBOR(I) = -1
EXIT
ENDIF
MESH_NEIGHBOR = 0

IF (.NOT.SETUP_ONLY) THEN

! Mesh grid dimensions and neighbor information.
! Determine if the six mesh faces abut a single mesh (MESH_NEIGHBOR>0), nothing (MESH_NEIGHBOR=0),
! or a combination of nothing and/or multiple meshes (MESH_NEIGHBOR=-1). Write six values to GRID line.

DO I=1,6
SELECT CASE(I)
CASE(1) ; IW1=1 ; IW2=IW1+M%JBAR*M%KBAR-1
CASE(2) ; IW1= M%JBAR*M%KBAR+1 ; IW2=IW1+M%JBAR*M%KBAR-1
CASE(3) ; IW1=2*M%JBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
CASE(4) ; IW1=2*M%JBAR*M%KBAR+ M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
CASE(5) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
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
END SELECT
MESH_NEIGHBOR(I) = M%EXTERNAL_WALL(IW1)%NOM
DO IW=IW1,IW2
IF (M%EXTERNAL_WALL(IW)%NOM/=MESH_NEIGHBOR(I)) THEN
MESH_NEIGHBOR(I) = -1
EXIT
ENDIF
ENDDO
ENDDO
ENDDO

ENDIF

CALL EOL
WRITE(MYSTR,'(A,3X,A)') 'GRID',TRIM(MESH_NAME(NM)); CALL ADDSTR
WRITE(MYSTR,'(9I6)') M%IBAR,M%JBAR,M%KBAR,MESH_NEIGHBOR(1:6) ; CALL ADDSTR
Expand Down Expand Up @@ -2358,11 +2364,15 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
XX = M%X(0) - 0.001_EB*M%DX(0)
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
IF (NOM>0 .AND. VENT_INDICES(J,K,1)<1) VENT_INDICES(J,K,1)=-1
IF (M%WALL(M%CELL(M%CELL_INDEX(1,J,K))%WALL_INDEX(-1))%OBST_INDEX>0) VENT_INDICES(J,K,1)=-1
IF (.NOT.SETUP_ONLY) THEN
IF (M%WALL(M%CELL(M%CELL_INDEX(1,J,K))%WALL_INDEX(-1))%OBST_INDEX>0) VENT_INDICES(J,K,1)=-1
ENDIF
XX = M%X(M%IBAR) + 0.001_EB*M%DX(M%IBAR)
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
IF (NOM>0 .AND. VENT_INDICES(J,K,2)<1) VENT_INDICES(J,K,2)=-1
IF (M%WALL(M%CELL(M%CELL_INDEX(M%IBAR,J,K))%WALL_INDEX(1))%OBST_INDEX>0) VENT_INDICES(J,K,2)=-1
IF (.NOT.SETUP_ONLY) THEN
IF (M%WALL(M%CELL(M%CELL_INDEX(M%IBAR,J,K))%WALL_INDEX(1))%OBST_INDEX>0) VENT_INDICES(J,K,2)=-1
ENDIF
ENDDO
ENDDO

Expand All @@ -2373,11 +2383,15 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
YY = M%Y(0) - 0.001_EB*M%DY(0)
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
IF (NOM>0 .AND. VENT_INDICES(I,K,3)<1) VENT_INDICES(I,K,3)=-1
IF (M%WALL(M%CELL(M%CELL_INDEX(I,1,K))%WALL_INDEX(-2))%OBST_INDEX>0) VENT_INDICES(I,K,3)=-1
IF (.NOT.SETUP_ONLY) THEN
IF (M%WALL(M%CELL(M%CELL_INDEX(I,1,K))%WALL_INDEX(-2))%OBST_INDEX>0) VENT_INDICES(I,K,3)=-1
ENDIF
YY = M%Y(M%JBAR) + 0.001_EB*M%DY(M%JBAR)
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
IF (NOM>0 .AND. VENT_INDICES(I,K,4)<1) VENT_INDICES(I,K,4)=-1
IF (M%WALL(M%CELL(M%CELL_INDEX(I,M%JBAR,K))%WALL_INDEX(2))%OBST_INDEX>0) VENT_INDICES(I,K,4)=-1
IF (.NOT.SETUP_ONLY) THEN
IF (M%WALL(M%CELL(M%CELL_INDEX(I,M%JBAR,K))%WALL_INDEX(2))%OBST_INDEX>0) VENT_INDICES(I,K,4)=-1
ENDIF
ENDDO
ENDDO

Expand All @@ -2388,11 +2402,15 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
ZZ = M%Z(0) - 0.001_EB*M%DZ(0)
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
IF (NOM>0 .AND. VENT_INDICES(I,J,5)<1) VENT_INDICES(I,J,5)=-1
IF (M%WALL(M%CELL(M%CELL_INDEX(I,J,1))%WALL_INDEX(-3))%OBST_INDEX>0) VENT_INDICES(I,J,5)=-1
IF (.NOT.SETUP_ONLY) THEN
IF (M%WALL(M%CELL(M%CELL_INDEX(I,J,1))%WALL_INDEX(-3))%OBST_INDEX>0) VENT_INDICES(I,J,5)=-1
ENDIF
ZZ = M%Z(M%KBAR) + 0.001_EB*M%DZ(M%KBAR)
CALL SEARCH_OTHER_MESHES(XX,YY,ZZ,NOM,IIO,JJO,KKO)
IF (NOM>0 .AND. VENT_INDICES(I,J,6)<1) VENT_INDICES(I,J,6)=-1
IF (M%WALL(M%CELL(M%CELL_INDEX(I,J,M%KBAR))%WALL_INDEX(3))%OBST_INDEX>0) VENT_INDICES(I,J,6)=-1
IF (.NOT.SETUP_ONLY) THEN
IF (M%WALL(M%CELL(M%CELL_INDEX(I,J,M%KBAR))%WALL_INDEX(3))%OBST_INDEX>0) VENT_INDICES(I,J,6)=-1
ENDIF
ENDDO
ENDDO

Expand Down Expand Up @@ -2731,7 +2749,7 @@ SUBROUTINE INITIALIZE_DIAGNOSTIC_FILE(DT)
WRITE(LU_OUTPUT,'(A,I8)') ' Cells in the X Direction ',M%IBAR
WRITE(LU_OUTPUT,'(A,I8)') ' Cells in the Y Direction ',M%JBAR
WRITE(LU_OUTPUT,'(A,I8)') ' Cells in the Z Direction ',M%KBAR
WRITE(LU_OUTPUT,'(A,I8)') ' Number of Grid Cells ',M%IBAR*M%JBAR*M%KBAR
WRITE(LU_OUTPUT,'(A,I12)') ' Number of Grid Cells ',M%IBAR*M%JBAR*M%KBAR
WRITE(LU_OUTPUT,'(//A,I5/)')' Physical Dimensions, Mesh ',NM
WRITE(LU_OUTPUT,'(A,F10.3)') ' Length (m) ',M%XF-M%XS
WRITE(LU_OUTPUT,'(A,F10.3)') ' Width (m) ',M%YF-M%YS
Expand All @@ -2746,7 +2764,7 @@ SUBROUTINE INITIALIZE_DIAGNOSTIC_FILE(DT)
ENDIF

WRITE(LU_OUTPUT,'(/A/)') ' Miscellaneous Parameters'
WRITE(LU_OUTPUT,'(A,I9)' ) ' Total Number of Grid Cells ',CELL_COUNT
WRITE(LU_OUTPUT,'(A,I12)') ' Total Number of Grid Cells' ,CELL_COUNT
WRITE(LU_OUTPUT,'(A,F9.3)') ' Maximum Cell Aspect Ratio ',MAXVAL(MAX_CELL_ASPECT_RATIO)
WRITE(LU_OUTPUT,'(A,F9.3)') ' Initial Time Step (s) ',DT
WRITE(LU_OUTPUT,'(A,I9)') ' CFL Velocity Norm ',CFL_VELOCITY_NORM
Expand Down
5 changes: 2 additions & 3 deletions Source/main.f90
Original file line number Diff line number Diff line change
Expand Up @@ -176,13 +176,12 @@ PROGRAM FDS
IF (DT_EXTERNAL_HEARTBEAT > 0._EB) LU_EXTERNAL_HEARTBEAT = GET_FILE_NUMBER()
ENDIF

! Set up the background atmosphere and initialize the WALL cells
! Set up the background atmosphere and initialize the boundary (WALL) arrays

DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
CALL INITIALIZE_ATMOSPHERE(NM)
CALL INITIALIZE_WALL_ARRAY(NM)
IF (.NOT.SETUP_ONLY) CALL INITIALIZE_WALL_ARRAY(NM)
ENDDO

IF (MY_RANK==0 .AND. VERBOSE) CALL VERBOSE_PRINTOUT('Completed INITIALIZE_WALL_ARRAY')

! Write the Smokeview (.smv) file using parallel MPI writes
Expand Down
Loading