Skip to content

Commit 893fae4

Browse files
committed
Merge remote-tracking branch 'firemodels/master'
2 parents 0430620 + 6dd4a79 commit 893fae4

File tree

18 files changed

+415
-435
lines changed

18 files changed

+415
-435
lines changed

Manuals/Bibliography/commoncommands.tex

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
\usepackage{geometry}
4545
\usepackage{relsize}
4646
\usepackage{longtable}
47+
\usepackage{xltabular}
4748
\usepackage{lscape}
4849
\usepackage{booktabs}
4950
\usepackage{colortbl}

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 155 additions & 150 deletions
Large diffs are not rendered by default.

Manuals/FDS_Validation_Guide/SCRIPT_FIGURES/Schoenberg_Ekman_Layers/.gitignore

Whitespace-only changes.

Manuals/FDS_Verification_Guide/FDS_Verification_Guide.tex

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2314,10 +2314,10 @@ \section{Ekman Layers (\texorpdfstring{\ct{ekman_}}{ekman\_})}
23142314

23152315
\begin{figure}[ht]
23162316
\centering
2317-
\includegraphics[height=2.2in]{../FDS_Validation_Guide/SCRIPT_FIGURES/Schoenberg_Ekman_Layers/ekman_neutral_winds}
2317+
\includegraphics[height=2.2in]{SCRIPT_FIGURES/ekman_neutral_winds}
23182318
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
2319-
\includegraphics[height=2.2in]{../FDS_Validation_Guide/SCRIPT_FIGURES/Schoenberg_Ekman_Layers/ekman_stable_winds} &
2320-
\includegraphics[height=2.2in]{../FDS_Validation_Guide/SCRIPT_FIGURES/Schoenberg_Ekman_Layers/ekman_unstable_winds}
2319+
\includegraphics[height=2.2in]{SCRIPT_FIGURES/ekman_stable_winds} &
2320+
\includegraphics[height=2.2in]{SCRIPT_FIGURES/ekman_unstable_winds}
23212321
\end{tabular*}
23222322
\caption[Schoenberg Ekman Layers]{\label{fig:ekman_layers} Comparison Ekman layer profiles for neutral (top), stable (bottom-left), and unstable (bottom-right) atmospheric boundary layers with the simulation results of Schoenberg \cite{Schoenberg:2004}.}
23232323
\end{figure}

Source/cons.f90

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -294,6 +294,8 @@ MODULE GLOBAL_CONSTANTS
294294
CHARACTER(CHID_LENGTH) :: RESTART_CHID !< Job ID for a restarted case
295295
CHARACTER(FILE_LENGTH) :: RESULTS_DIR !< Custom directory for output
296296
CHARACTER(FILE_LENGTH) :: BINGEOM_DIR !< Custom directory for writing binary geometry files
297+
CHARACTER(5) :: DECIMAL_SPECIFIER='POINT' !< Use point or comma for real outputs
298+
CHARACTER(1) :: SEPARATOR !< Decimal point or comma
297299

298300
! Dates, version numbers, revision numbers
299301

@@ -582,6 +584,9 @@ MODULE GLOBAL_CONSTANTS
582584
CHARACTER(FN_LENGTH), ALLOCATABLE, DIMENSION(:,:) :: FN_SLCF,FN_SLCF_GEOM,FN_BNDF,FN_BNDG,FN_ISOF,FN_ISOF2,FN_SMOKE3D,FN_RADF
583585

584586
CHARACTER(9) :: FMT_R
587+
CHARACTER(25) :: REAL_LIST
588+
CHARACTER( 9) :: CHAR_LIST
589+
CHARACTER(11) :: INTG_LIST
585590
LOGICAL :: OUT_FILE_OPENED=.FALSE.
586591

587592
! Boundary condition arrays

Source/dump.f90

Lines changed: 126 additions & 182 deletions
Large diffs are not rendered by default.

Source/func.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3752,7 +3752,7 @@ SUBROUTINE ALLOCATE_BOUNDARY_PROP2_ARRAYS
37523752
B2_INDEX = M%NEXT_AVAILABLE_BOUNDARY_PROP2_SLOT
37533753
ENDIF
37543754

3755-
IF (B2_INDeX==0 .OR. B2_INDEX>M%N_BOUNDARY_PROP2_DIM) THEN ! There are no open slots for boundary coordinates
3755+
IF (B2_INDEX==0 .OR. B2_INDEX>M%N_BOUNDARY_PROP2_DIM) THEN ! There are no open slots for boundary coordinates
37563756
ALLOCATE(B2_DUMMY(1:M%N_BOUNDARY_PROP2_DIM+N_NEW_STORAGE_SLOTS))
37573757
IF (M%N_BOUNDARY_PROP2_DIM>0) B2_DUMMY(1:M%N_BOUNDARY_PROP2_DIM) = M%BOUNDARY_PROP2(1:M%N_BOUNDARY_PROP2_DIM)
37583758
CALL MOVE_ALLOC(B2_DUMMY,M%BOUNDARY_PROP2)

Source/hvac.f90

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1297,9 +1297,11 @@ SUBROUTINE INIT_DUCT_NODE
12971297
USE PHYSICAL_FUNCTIONS, ONLY: GET_ENTHALPY
12981298
USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP
12991299
REAL(EB) :: ZZ_GET(1:N_TRACKED_SPECIES) !< Species mass fraction array.
1300+
REAL(EB) :: VF(1:N_TRACKED_SPECIES) !< Species volunme fraction array.
13001301
REAL(EB) :: TNOW !< Current CPU time (s) used in computing length of time spent in HVAC routines.
13011302
INTEGER :: NN,N
13021303
TYPE(DUCTNODE_TYPE), POINTER :: DN
1304+
TYPE(INITIALIZATION_TYPE), POINTER :: IN
13031305

13041306
TNOW = CURRENT_TIME()
13051307

@@ -1332,11 +1334,18 @@ SUBROUTINE INIT_DUCT_NODE
13321334

13331335
INIT_LOOP: DO N = 1,N_INIT
13341336
IF (TRIM(INITIALIZATION(N)%NODE_ID)==TRIM(DN%ID)) THEN
1335-
DN%ZZ0 = INITIALIZATION(N)%MASS_FRACTION
1336-
IF (INITIALIZATION(N)%TEMPERATURE > 0._EB) THEN
1337-
DN%TMP0 = INITIALIZATION(N)%TEMPERATURE
1338-
ELSE
1339-
DN%TMP0 = DN%TMP
1337+
IN => INITIALIZATION(N)
1338+
IF (IN%VOLUME_FRACTIONS_SPECIFIED) THEN
1339+
VF(2:N_TRACKED_SPECIES) = IN%VOLUME_FRACTION(2:N_TRACKED_SPECIES)
1340+
VF(1) = 1._EB - SUM(VF)
1341+
DN%ZZ0 = VF(1:N_TRACKED_SPECIES)*SPECIES_MIXTURE(1:N_TRACKED_SPECIES)%MW / &
1342+
SUM(VF(1:N_TRACKED_SPECIES)*SPECIES_MIXTURE(1:N_TRACKED_SPECIES)%MW)
1343+
ELSEIF (IN%MASS_FRACTIONS_SPECIFIED) THEN
1344+
DN%ZZ0(2:N_TRACKED_SPECIES) = IN%MASS_FRACTION(2:N_TRACKED_SPECIES)
1345+
DN%ZZ0(1) = 1._EB - SUM(DN%ZZ0(2:N_TRACKED_SPECIES))
1346+
ENDIF
1347+
IF (IN%TEMPERATURE > 0._EB) THEN
1348+
DN%TMP0 = IN%TEMPERATURE
13401349
ENDIF
13411350
EXIT INIT_LOOP
13421351
ENDIF

Source/read.f90

Lines changed: 30 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2333,7 +2333,7 @@ SUBROUTINE READ_DUMP
23332333
RAMP_PART,RAMP_PL3D,RAMP_PROF,RAMP_RADF,RAMP_RESTART,RAMP_SLCF,RAMP_SL3D,RAMP_SMOKE3D,RAMP_UVW,&
23342334
RAMP_TMP,RAMP_SPEC
23352335
NAMELIST /DUMP/ BINGEOM_DIR,CFL_FILE,CLIP_RESTART_FILES,COLUMN_DUMP_LIMIT,CTRL_COLUMN_LIMIT,DEVC_COLUMN_LIMIT,&
2336-
DIAGNOSTICS_INTERVAL,&
2336+
DECIMAL_SPECIFIER,DIAGNOSTICS_INTERVAL,&
23372337
DT_BNDF,DT_CPU,DT_CTRL,DT_DEVC,DT_FLUSH,DT_HRR,DT_HVAC,DT_ISOF,DT_MASS,DT_PART,DT_PL3D,DT_PROF,&
23382338
DT_RADF,DT_RESTART,DT_SL3D,DT_SLCF,DT_SMOKE3D,DT_UVW,DT_TMP,DT_SPEC,&
23392339
FLUSH_FILE_BUFFERS,GET_CUTCELLS_VERBOSE,HRRPUV_MAX_SMV,MASS_FILE,MAXIMUM_PARTICLES,MMS_TIMER,&
@@ -2454,6 +2454,14 @@ SUBROUTINE READ_DUMP
24542454
! Set format of real number output
24552455

24562456
WRITE(FMT_R,'(A,I2.2,A,I2.2,A,I1.1)') 'ES',SIG_FIGS+SIG_FIGS_EXP+4,'.',SIG_FIGS-1,'E',SIG_FIGS_EXP
2457+
IF (DECIMAL_SPECIFIER=='COMMA') THEN
2458+
SEPARATOR = ';'
2459+
ELSE
2460+
SEPARATOR = ','
2461+
ENDIF
2462+
WRITE(REAL_LIST,'(6A)') "(",FMT_R,",'",SEPARATOR,"'),",FMT_R
2463+
WRITE(CHAR_LIST,'(6A)') "(","A",",'",SEPARATOR,"'),","A"
2464+
WRITE(INTG_LIST,'(6A)') "(","I0",",'",SEPARATOR,"'),","I0"
24572465

24582466
! Check Plot3D QUANTITIES
24592467

@@ -11402,15 +11410,7 @@ SUBROUTINE READ_OBST(QUICK_READ)
1140211410
IF (OB%I1==OB%I2) THEN ; OBT%X1=OB%X1 ; OBT%X2=OB%X2 ; ENDIF
1140311411
IF (OB%J1==OB%J2) THEN ; OBT%Y1=OB%Y1 ; OBT%Y2=OB%Y2 ; ENDIF
1140411412
IF (OB%K1==OB%K2) THEN ; OBT%Z1=OB%Z1 ; OBT%Z2=OB%Z2 ; ENDIF
11405-
IF (OB%BULK_DENSITY > 0._EB .AND. OB%MASS<1.E5_EB) THEN
11406-
OBT%MASS = OB%BULK_DENSITY*(OBT%X2-OBT%X1)*(OBT%Y2-OBT%Y1)*(OBT%Z2-OBT%Z1)
11407-
IF (OB%I1==OB%I2 .AND. OB%UNDIVIDED_INPUT_LENGTH(1)<0.5_EB*DX(OB%I1)) &
11408-
OBT%MASS = OB%BULK_DENSITY*OB%UNDIVIDED_INPUT_LENGTH(1)*(OBT%Y2-OBT%Y1)*(OBT%Z2-OBT%Z1)
11409-
IF (OB%J1==OB%J2 .AND. OB%UNDIVIDED_INPUT_LENGTH(2)<0.5_EB*DY(OB%J1)) &
11410-
OBT%MASS = OB%BULK_DENSITY*(OBT%X2-OBT%X1)*OB%UNDIVIDED_INPUT_LENGTH(2)*(OBT%Z2-OBT%Z1)
11411-
IF (OB%K1==OB%K2 .AND. OB%UNDIVIDED_INPUT_LENGTH(3)<0.5_EB*DZ(OB%K1)) &
11412-
OBT%MASS = OB%BULK_DENSITY*(OBT%X2-OBT%X1)*(OBT%Y2-OBT%Y1)*OB%UNDIVIDED_INPUT_LENGTH(3)
11413-
ENDIF
11413+
IF (OB%BULK_DENSITY > 0._EB .AND. OB%MASS<1.E5_EB) OBT%MASS = OB%MASS/N_NEW_OBST
1141411414
ENDDO
1141511415
ENDDO
1141611416
ENDDO
@@ -11574,7 +11574,7 @@ SUBROUTINE READ_HOLE
1157411574
USE MISC_FUNCTIONS, ONLY: PROCESS_MESH_NEIGHBORHOOD
1157511575
CHARACTER(LABEL_LENGTH) :: DEVC_ID,CTRL_ID,MULT_ID
1157611576
CHARACTER(25) :: COLOR
11577-
INTEGER :: NM,N_HOLE,NN,NDO,N,I1,I2,J1,J2,K1,K2,RGB(3),N_HOLE_NEW,N_HOLE_O,II,JJ,KK,NNN,DEVC_INDEX_O,CTRL_INDEX_O
11577+
INTEGER :: NM,N_HOLE,NN,NDO,N,I1,I2,J1,J2,K1,K2,RGB(3),N_HOLE_NEW,N_HOLE_O,II,JJ,KK,NNN,NNNN,DEVC_INDEX_O,CTRL_INDEX_O
1157811578
REAL(EB) :: X1,X2,Y1,Y2,Z1,Z2,TRANSPARENCY
1157911579
NAMELIST /HOLE/ COLOR,CTRL_ID,DEVC_ID,FYI,ID,MULT_ID,RGB,TRANSPARENCY,XB
1158011580
REAL(EB), ALLOCATABLE, DIMENSION(:,:) :: TEMP_XB
@@ -11853,7 +11853,13 @@ SUBROUTINE READ_HOLE
1185311853
NEW_OBST_IF: IF (NDO>0) THEN
1185411854
CALL RE_ALLOCATE_OBST(NM,N_OBST,NDO)
1185511855
OBSTRUCTION=>M%OBSTRUCTION
11856-
OBSTRUCTION(N_OBST+1:N_OBST+NDO) = TEMP_OBST(1:NDO)
11856+
DO NNNN = 1,NDO
11857+
OB => OBSTRUCTION(N_OBST+NNNN)
11858+
OB = TEMP_OBST(NNNN)
11859+
IF (OB%BULK_DENSITY > 0._EB) &
11860+
OB%MASS = OB%BULK_DENSITY*(TEMP_OBST(NNNN)%X2-TEMP_OBST(NNNN)%X1)*&
11861+
(TEMP_OBST(NNNN)%Y2-TEMP_OBST(NNNN)%Y1)*(TEMP_OBST(NNNN)%Z2-TEMP_OBST(NNNN)%Z1)
11862+
ENDDO
1185711863
N_OBST = N_OBST + NDO
1185811864
ENDIF NEW_OBST_IF
1185911865

@@ -11863,6 +11869,9 @@ SUBROUTINE READ_HOLE
1186311869

1186411870
OBSTRUCTION(NN) = TEMP_OBST(0)
1186511871
OB => OBSTRUCTION(NN)
11872+
IF (OB%BULK_DENSITY > 0._EB) &
11873+
OB%MASS = OB%BULK_DENSITY*(TEMP_OBST(0)%X2-TEMP_OBST(0)%X1)*&
11874+
(TEMP_OBST(0)%Y2-TEMP_OBST(0)%Y1)*(TEMP_OBST(0)%Z2-TEMP_OBST(0)%Z1)
1186611875
OB%DEVC_INDEX_O = DEVC_INDEX_O
1186711876
OB%CTRL_INDEX_O = CTRL_INDEX_O
1186811877
OB%DEVC_ID = DEVC_ID
@@ -14889,7 +14898,7 @@ SUBROUTINE PROC_DEVC
1488914898
USE DEVICE_VARIABLES, ONLY: DEVICE_TYPE,SUBDEVICE_TYPE,DEVICE,N_DEVC,PROPERTY,PROPERTY_TYPE,MAX_HISTOGRAM_NBINS,&
1489014899
N_HISTOGRAM
1489114900

14892-
INTEGER :: N,NN,NNN,NS,MAXCELLS,I,J,K,NOM,NR,II,JJ,KK
14901+
INTEGER :: N,NN,NNN,NS,MAXCELLS,I,J,K,NOM,NR,II,JJ,KK,COMMA_POSITION
1489314902
REAL(EB) :: XX,YY,ZZ,DISTANCE,SCANDISTANCE,DX,DY,DZ,XI,YJ,ZK,F,DFDD,NU,UU,TOL,RE,ZZ_G(1:N_TRACKED_SPECIES),MU_G,K_G
1489414903
TYPE (DEVICE_TYPE), POINTER :: DV
1489514904
TYPE (SUBDEVICE_TYPE), POINTER :: SDV
@@ -14903,6 +14912,14 @@ SUBROUTINE PROC_DEVC
1490314912

1490414913
DV => DEVICE(N)
1490514914

14915+
! Check if the ID has a comma (or semi-colon)
14916+
14917+
COMMA_POSITION = INDEX(DV%ID,SEPARATOR)
14918+
IF (COMMA_POSITION>0) THEN
14919+
WRITE(MESSAGE,'(4A)') 'ERROR(899): DEVC ',TRIM(DV%ID),' should not contain a ',SEPARATOR
14920+
CALL SHUTDOWN(MESSAGE) ; RETURN
14921+
ENDIF
14922+
1490614923
! Check for HVAC outputs with no HVAC inputs
1490714924

1490814925
IF ((DV%DUCT_ID/='null' .OR. DV%NODE_ID(1)/='null') .AND. .NOT. HVAC_SOLVE) THEN

Source/wall.f90

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,9 @@ SUBROUTINE WALL_BC(T,DT,NM)
5151
CALL POINT_TO_MESH(NM)
5252

5353
IF (PREDICTOR) THEN
54-
UU => U
55-
VV => V
56-
WW => W
54+
UU => US
55+
VV => VS
56+
WW => WS
5757
RHOP => RHOS
5858
ZZP => ZZS
5959
PBAR_P => PBAR_S

0 commit comments

Comments
 (0)