Skip to content

Commit d8c8261

Browse files
authored
Merge pull request #14971 from drjfloyd/master
FDS Source: Fix error for PROF and PART with INIT and multiple MESH
2 parents e53a488 + 66c7db5 commit d8c8261

File tree

5 files changed

+33
-12
lines changed

5 files changed

+33
-12
lines changed

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14255,6 +14255,7 @@ \chapter{Error Codes}
1425514255
446 \> \ct{SURF REFERENCE_THICKNESS values must increase for each} \> Section~\ref{info:scaled_burning} \\
1425614256
\> \ct{new group of REFERENCE_HEAT_FLUX.} \\
1425714257
447 \> \ct{RAMP ... used with REFERENCE_HEAT_FLUX must start at T = 0.} \> Section~\ref{info:scaled_burning} \\
14258+
448 \> \ct{PROF ... MATL_ID ... not a part of surface type ...} \> Section~\ref{info:solidoutputquantities} \\
1425814259
\> \> \\
1425914260
501 \> \ct{No ID provided ...} \> Section~\ref{info:HVAC} \\
1426014261
502 \> \ct{Invalid TYPE_ID provided ...} \> Section~\ref{info:HVAC} \\
@@ -14491,6 +14492,7 @@ \chapter{Error Codes}
1449114492
951 \> \ct{PROF ... requires an orientation index, IOR.} \> Section~\ref{info:PROF} \\
1449214493
952 \> \ct{PROF ... is not valid.} \> Section~\ref{info:PROF} \\
1449314494
953 \> \ct{PROF ... requires a PART_ID.} \> Section~\ref{info:PROF} \\
14495+
954 \> \ct{PROF ... MATL_ID ... not found.} \> Section~\ref{info:PROF} \\
1449414496
\> \> \\
1449514497
961 \> \ct{CELL_CENTERED not allowed with AGL_SLICE.} \> Section~\ref{info:complex_terrain} \\
1449614498
962 \> \ct{BNDF ... CPUA_Z, MPUA_Z, and AMPUA_Z require liquid droplets.} \> Section~\ref{bucket_test_1} \\

Source/dump.f90

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8991,13 +8991,18 @@ REAL(EB) FUNCTION SOLID_PHASE_OUTPUT(INDX,Y_INDEX,Z_INDEX,PART_INDEX,OPT_WALL_IN
89918991

89928992
CASE(27) ! SOLID DENSITY
89938993
SOLID_PHASE_OUTPUT = 0._EB
8994-
DO NN=1,ONE_D%N_MATL
8995-
IF (MATL_INDEX==ONE_D%MATL_INDEX(NN)) THEN
8996-
SOLID_PHASE_OUTPUT = ONE_D%MATL_COMP(NN)%RHO(I_DEPTH)
8997-
RETURN
8998-
ENDIF
8999-
SOLID_PHASE_OUTPUT = SOLID_PHASE_OUTPUT + ONE_D%MATL_COMP(NN)%RHO(I_DEPTH)
9000-
ENDDO
8994+
IF (MATL_INDEX > 0) THEN
8995+
DO NN=1,ONE_D%N_MATL
8996+
IF (MATL_INDEX==ONE_D%MATL_INDEX(NN)) THEN
8997+
SOLID_PHASE_OUTPUT = ONE_D%MATL_COMP(NN)%RHO(I_DEPTH)
8998+
RETURN
8999+
ENDIF
9000+
ENDDO
9001+
ELSE
9002+
DO NN=1,ONE_D%N_MATL
9003+
SOLID_PHASE_OUTPUT = SOLID_PHASE_OUTPUT + ONE_D%MATL_COMP(NN)%RHO(I_DEPTH)
9004+
ENDDO
9005+
ENDIF
90019006

90029007
CASE(28) ! EMISSIVITY
90039008
SOLID_PHASE_OUTPUT = B1%EMISSIVITY

Source/init.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2720,7 +2720,7 @@ SUBROUTINE INITIALIZE_PROFILES(NM)
27202720
ENDIF
27212721
ENDDO
27222722
IF (.NOT. SUCCESS) THEN
2723-
WRITE(LU_ERR,'(A,I3,5A)') 'ERROR PROF ',N,'. MATL_ID ',TRIM(MATERIAL(PF%MATL_INDEX)%ID),&
2723+
WRITE(LU_ERR,'(A,I3,5A)') 'ERROR(448): PROF ',N,'. MATL_ID ',TRIM(MATERIAL(PF%MATL_INDEX)%ID),&
27242724
' not part of surface type ',TRIM(SF%ID),' at the profile location.'
27252725
STOP_STATUS = SETUP_STOP
27262726
RETURN

Source/part.f90

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1513,7 +1513,6 @@ SUBROUTINE VOLUME_INIT_PARTICLE
15131513
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.)
15141514
ENDIF
15151515
PF%LP_TAG = PARTICLE_TAG
1516-
PF%PART_CLASS_INDEX = ILPC
15171516
PF%MESH = NM
15181517
PF%X = BC%X
15191518
PF%Y = BC%Y

Source/read.f90

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15304,7 +15304,7 @@ END SUBROUTINE PROC_DEVC
1530415304
SUBROUTINE READ_PROF
1530515305

1530615306
USE MISC_FUNCTIONS, ONLY: GET_MATL_INDEX
15307-
INTEGER :: N,NM,MESH_NUMBER,NN,N_PROFO,IOR,FORMAT_INDEX,LP_TAG,PART_INDEX,ILPC
15307+
INTEGER :: I,N,NM,MESH_NUMBER,NN,N_PROFO,IOR,FORMAT_INDEX,LP_TAG,PART_INDEX,ILPC
1530815308
REAL(EB) :: XYZ(3)
1530915309
CHARACTER(LABEL_LENGTH) :: QUANTITY,INIT_ID,MATL_ID,LABEL_DUM(2),PART_ID
1531015310
LOGICAL :: CELL_CENTERED
@@ -15381,6 +15381,15 @@ SUBROUTINE READ_PROF
1538115381
CALL SHUTDOWN(MESSAGE) ; RETURN
1538215382
ENDIF
1538315383
ENDIF
15384+
15385+
IF (INIT_ID/='null') THEN
15386+
INIT_DO: DO I=1,N_INIT
15387+
IF (INIT_ID==INITIALIZATION(I)%ID) THEN
15388+
PART_INDEX = INITIALIZATION(I)%PART_INDEX
15389+
EXIT INIT_DO
15390+
ENDIF
15391+
ENDDO INIT_DO
15392+
ENDIF
1538415393

1538515394
MESH_NUMBER = 0
1538615395

@@ -15440,9 +15449,15 @@ SUBROUTINE READ_PROF
1544015449
I_DUM(8),I_DUM(9),'PROF', &
1544115450
PF%QUANTITY,'null','null','null','null','null','null','null',MATL_ID,&
1544215451
-1._EB,I_DUM(10))
15443-
PF%MATL_INDEX = GET_MATL_INDEX(MATL_ID)
15452+
IF (MATL_ID/='null') THEN
15453+
PF%MATL_INDEX = GET_MATL_INDEX(MATL_ID)
15454+
IF (PF%MATL_INDEX==0) THEN
15455+
WRITE(MESSAGE,'(A,I0,3A)') 'ERROR(954): PROF ',NN,' MATL_ID ',TRIM(MATL_ID),' not found.'
15456+
CALL SHUTDOWN(MESSAGE) ; RETURN
15457+
ENDIF
15458+
ENDIF
1544415459
IF (.NOT. OUTPUT_QUANTITY(PF%QUANTITY_INDEX)%PROF_APPROPRIATE) THEN
15445-
WRITE(MESSAGE,'(A,I0,A3)') 'ERROR(952): PROF ',NN,' QUANTITY ',TRIM(PF%QUANTITY),' is not valid.'
15460+
WRITE(MESSAGE,'(A,I0,3A)') 'ERROR(952): PROF ',NN,' QUANTITY ',TRIM(PF%QUANTITY),' is not valid.'
1544615461
CALL SHUTDOWN(MESSAGE) ; RETURN
1544715462
ENDIF
1544815463
PF%X = XYZ(1)

0 commit comments

Comments
 (0)