diff --git a/Source/dump.f90 b/Source/dump.f90 index 91f81bd693e..babe53f7b5e 100644 --- a/Source/dump.f90 +++ b/Source/dump.f90 @@ -1776,7 +1776,7 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE USE TRAN, ONLY: TRAN_TYPE,TRANS USE MISC_FUNCTIONS, ONLY : ACCUMULATE_STRING INTEGER :: N,NN,I,J,K,NM,NX,NY,NZ,NIN,NXL,NYL,NZL,COLOR_INDEX,IZERO,STATE_INDEX,SURF_INDEX,& - TYPE_INDEX,HI1,HI2,VI1,VI2,FACE_INDEX,VRGB(3),N_CVENT + TYPE_INDEX,HI1,HI2,VI1,VI2,VRGB(3),N_CVENT INTEGER, ALLOCATABLE, DIMENSION(:,:,:) :: VENT_INDICES REAL(EB) :: X1,Y1,Z1,X2,Y2,Z2,XX,YY,ZZ,PERT1(4),PERT2(4),XMIN,YMIN,ZMIN,XA,YA,ZA TYPE SEGMENT_TYPE @@ -2566,123 +2566,7 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE IF (VT%RADIUS>0._EB) N_CVENT=N_CVENT+1 ENDDO - ! Create EXTERIOR_PATCHes with which Smokeview colors, textures, or contours exterior mesh boundaries. - - ALLOCATE(M%EXTERIOR_PATCH(10*(6+N_VENT_TOTAL))) ; M%N_EXTERIOR_PATCH = 0 - ALLOCATE(VENT_INDICES(MAX(M%IBAR,M%JBAR),MAX(M%JBAR,M%KBAR),6)) ; VENT_INDICES = 0 - - VENT_LOOP: DO N=1,M%N_VENT - - VT=>M%VENTS(N) - - IF (VT%RADIUS>0._EB) CYCLE VENT_LOOP - - FACE_INDEX = 0 - IF (VT%I1==0 .AND. VT%I2==0 ) FACE_INDEX = 1 - IF (VT%I1==M%IBAR .AND. VT%I2==M%IBAR) FACE_INDEX = 2 - IF (VT%J1==0 .AND. VT%J2==0 ) FACE_INDEX = 3 - IF (VT%J1==M%JBAR .AND. VT%J2==M%JBAR) FACE_INDEX = 4 - IF (VT%K1==0 .AND. VT%K2==0 ) FACE_INDEX = 5 - IF (VT%K1==M%KBAR .AND. VT%K2==M%KBAR) FACE_INDEX = 6 - - SELECT CASE(FACE_INDEX) ! Get vent cell indices - CASE(0) - CYCLE VENT_LOOP - CASE(1:2) - HI1 = MAX(1,VT%J1+1) - HI2 = MIN(M%JBAR,VT%J2) - VI1 = MAX(1,VT%K1+1) - VI2 = MIN(M%KBAR,VT%K2) - CASE(3:4) - HI1 = MAX(1,VT%I1+1) - HI2 = MIN(M%IBAR,VT%I2) - VI1 = MAX(1,VT%K1+1) - VI2 = MIN(M%KBAR,VT%K2) - CASE(5:6) - HI1 = MAX(1,VT%I1+1) - HI2 = MIN(M%IBAR,VT%I2) - VI1 = MAX(1,VT%J1+1) - VI2 = MIN(M%JBAR,VT%J2) - END SELECT - - IF (VT%BOUNDARY_TYPE==MIRROR_BOUNDARY .OR. & - VT%BOUNDARY_TYPE==OPEN_BOUNDARY .OR. & - VT%BOUNDARY_TYPE==PERIODIC_BOUNDARY .OR. & - VT%TYPE_INDICATOR==2) THEN ! Render this vent invisible in Smokeview - WHERE (VENT_INDICES(HI1:HI2,VI1:VI2,FACE_INDEX)==0) VENT_INDICES(HI1:HI2,VI1:VI2,FACE_INDEX) = -1 - ELSE ! Tag user-specified vents - WHERE (VENT_INDICES(HI1:HI2,VI1:VI2,FACE_INDEX)==0) VENT_INDICES(HI1:HI2,VI1:VI2,FACE_INDEX) = N - IF (.NOT.VT%DRAW) THEN ! a dummy vent will be created and drawn rather than the actual vent. - VT%COLOR_INDICATOR = 8 - VT%TYPE_INDICATOR = -2 - VT%TRANSPARENCY = 0._EB - ENDIF - ENDIF - - ! Render GEOM vents using SURF properties (that is, do not draw GEOM vents in Smokeview) - - IF (VT%GEOM) VT%TYPE_INDICATOR = -2 - - ENDDO VENT_LOOP - - ! Look for interpolated mesh boundaries and ensure that Smokeview leaves these blank (VENT_INDICES=-1). - - DO K=1,M%KBAR - DO J=1,M%JBAR - YY = 0.5_EB*(M%Y(J)+M%Y(J-1)) - ZZ = 0.5_EB*(M%Z(K)+M%Z(K-1)) - 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 - 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 - ENDDO - ENDDO - - DO K=1,M%KBAR - DO I=1,M%IBAR - XX = 0.5_EB*(M%X(I)+M%X(I-1)) - ZZ = 0.5_EB*(M%Z(K)+M%Z(K-1)) - 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 - 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 - ENDDO - ENDDO - - DO J=1,M%JBAR - DO I=1,M%IBAR - XX = 0.5_EB*(M%X(I)+M%X(I-1)) - YY = 0.5_EB*(M%Y(J)+M%Y(J-1)) - 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 - 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 - ENDDO - ENDDO - - ! Create EXTERIOR_PATCHes to fill in areas around actual specified vents - - CALL DUMMY_VENTS(1,M%JBAR,M%KBAR) - CALL DUMMY_VENTS(2,M%JBAR,M%KBAR) - CALL DUMMY_VENTS(3,M%IBAR,M%KBAR) - CALL DUMMY_VENTS(4,M%IBAR,M%KBAR) - CALL DUMMY_VENTS(5,M%IBAR,M%JBAR) - CALL DUMMY_VENTS(6,M%IBAR,M%JBAR) - - DEALLOCATE(VENT_INDICES) - + ! Write out information about vents to Smokeview file CALL EOL