@@ -1510,7 +1510,8 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
15101510USE HVAC_ROUTINES, ONLY: N_DUCT_QUANTITY,N_NODE_QUANTITY, DUCT_QUANTITY_ARRAY,NODE_QUANTITY_ARRAY
15111511USE TRAN, ONLY: TRAN_TYPE,TRANS
15121512USE MISC_FUNCTIONS, ONLY : ACCUMULATE_STRING
1513- INTEGER :: N,NN,I,J,K,NM,NX,NY,NZ,NIN,NXL,NYL,NZL,COLOR_INDEX,IZERO,STATE_INDEX,TYPE_INDEX,HI1,HI2,VI1,VI2,FACE_INDEX,N_CVENT
1513+ INTEGER :: N,NN,I,J,K,NM,NX,NY,NZ,NIN,NXL,NYL,NZL,COLOR_INDEX,IZERO,STATE_INDEX,SURF_INDEX,&
1514+ TYPE_INDEX,HI1,HI2,VI1,VI2,FACE_INDEX,VRGB(3 ),N_CVENT
15141515INTEGER , ALLOCATABLE , DIMENSION (:,:,:) :: VENT_INDICES
15151516REAL (EB) :: X1,Y1,Z1,X2,Y2,Z2,XX,YY,ZZ,PERT1(4 ),PERT2(4 ),XMIN,YMIN,ZMIN,XA,YA,ZA
15161517TYPE SEGMENT_TYPE
@@ -2287,8 +2288,11 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
22872288 VT% BOUNDARY_TYPE== PERIODIC_BOUNDARY .OR. &
22882289 VT% TYPE_INDICATOR== 2 ) THEN ! Render this vent invisible in Smokeview
22892290 WHERE (VENT_INDICES(HI1:HI2,VI1:VI2,FACE_INDEX)==0 ) VENT_INDICES(HI1:HI2,VI1:VI2,FACE_INDEX) = - 1
2290- ELSE ! Vent on a solid wall
2291+ ELSE ! Make solid color vents invisible (they will be replaced by dummy vents)
22912292 WHERE (VENT_INDICES(HI1:HI2,VI1:VI2,FACE_INDEX)==0 ) VENT_INDICES(HI1:HI2,VI1:VI2,FACE_INDEX) = N
2293+ VT% COLOR_INDICATOR = 8
2294+ VT% TYPE_INDICATOR = - 2
2295+ VT% TRANSPARENCY = 0._EB
22922296 ENDIF
22932297
22942298 ENDDO VENT_LOOP
@@ -2359,9 +2363,11 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
23592363 ENDDO
23602364
23612365 DO N= 1 ,M% N_EXTERIOR_PATCH
2366+ SURF_INDEX = DEFAULT_SURF_INDEX
23622367 EP = > M% EXTERIOR_PATCH(N)
2368+ IF (EP% VENT_INDEX> 0 ) SURF_INDEX = M% VENTS(EP% VENT_INDEX)% SURF_INDEX
23632369 WRITE (MYSTR,' (6F14.5,I6,I4)' ) M% X(EP% I1),M% X(EP% I2),M% Y(EP% J1),M% Y(EP% J2), &
2364- M% Z(EP% K1),M% Z(EP% K2),M% N_VENT+ N,DEFAULT_SURF_INDEX ; CALL ADDSTR
2370+ M% Z(EP% K1),M% Z(EP% K2),M% N_VENT+ N,SURF_INDEX ; CALL ADDSTR
23652371 ENDDO
23662372
23672373 DO N= 1 ,M% N_VENT
@@ -2387,8 +2393,15 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
23872393 DO N= 1 ,M% N_EXTERIOR_PATCH
23882394 COLOR_INDEX = 99
23892395 TYPE_INDEX = 0
2396+ VRGB = - 1
23902397 EP = > M% EXTERIOR_PATCH(N)
2391- WRITE (MYSTR,' (8I5)' ) EP% I1,EP% I2,EP% J1,EP% J2,EP% K1,EP% K2,COLOR_INDEX,TYPE_INDEX; CALL ADDSTR
2398+ IF (EP% VENT_INDEX> 0 ) VRGB = M% VENTS(EP% VENT_INDEX)% RGB
2399+ IF (VRGB(1 )<0 ) THEN
2400+ WRITE (MYSTR,' (8I5)' ) EP% I1,EP% I2,EP% J1,EP% J2,EP% K1,EP% K2,COLOR_INDEX,TYPE_INDEX; CALL ADDSTR
2401+ ELSE
2402+ WRITE (MYSTR,' (8I5,4F13.5)' ) EP% I1,EP% I2,EP% J1,EP% J2,EP% K1,EP% K2,COLOR_INDEX,TYPE_INDEX, &
2403+ REAL (VRGB,FB)/ 255._FB ,1._EB ; CALL ADDSTR
2404+ ENDIF
23922405 ENDDO
23932406
23942407 ! Write out information about circular vents to Smokeview file
@@ -2461,25 +2474,26 @@ END SUBROUTINE EOL
24612474SUBROUTINE DUMMY_VENTS (FI ,N1 ,N2 )
24622475
24632476INTEGER , INTENT (IN ) :: N1,N2,FI
2464- INTEGER :: I,J,II,JJ,ISTP,JSTP
2477+ INTEGER :: I,J,II,JJ,ISTP,JSTP,VENT_INDEX
24652478
24662479JLOOP: DO J= 1 ,N2
24672480 ILOOP: DO I= 1 ,N1
24682481
2469- IF (VENT_INDICES(I,J,FI)/= 0 ) CYCLE ILOOP
2482+ IF (VENT_INDICES(I,J,FI)==- 1 ) CYCLE ILOOP
2483+ VENT_INDEX = VENT_INDICES(I,J,FI)
24702484
24712485 ISTP = N1
24722486 JSTP = N2
24732487 JJLOOP: DO JJ= J+1 ,N2
2474- IF (VENT_INDICES(I,JJ,FI)/= 0 ) THEN
2488+ IF (VENT_INDICES(I,JJ,FI)/= VENT_INDEX ) THEN
24752489 JSTP = JJ-1
24762490 EXIT JJLOOP
24772491 ENDIF
24782492 ENDDO JJLOOP
24792493
24802494 IILOOP: DO II= I+1 ,N1
24812495 JJLOOP2: DO JJ= J,JSTP
2482- IF (VENT_INDICES(II,JJ,FI)/= 0 ) THEN
2496+ IF (VENT_INDICES(II,JJ,FI)/= VENT_INDEX ) THEN
24832497 ISTP = II-1
24842498 EXIT IILOOP
24852499 ENDIF
@@ -2504,6 +2518,7 @@ SUBROUTINE DUMMY_VENTS(FI,N1,N2)
25042518 CASE (6 ) ; EP% K1= M% KBAR ; EP% K2= M% KBAR ; EP% I1= I-1 ; EP% I2= ISTP ; EP% J1= J-1 ; EP% J2= JSTP ; EP% IOR=- 3
25052519 EP% KG1= EP% K1 ; EP% KG2= EP% K2 ; EP% IG1= I ; EP% IG2= ISTP; EP% JG1= J ; EP% JG2= JSTP
25062520 END SELECT
2521+ EP% VENT_INDEX = VENT_INDEX
25072522
25082523 ENDDO ILOOP
25092524ENDDO JLOOP
0 commit comments