Skip to content

Commit 61fca61

Browse files
committed
FDS Source: Issues #13805 and #13806. Clean up particle bookkeeping
1 parent f35c761 commit 61fca61

File tree

5 files changed

+20
-28
lines changed

5 files changed

+20
-28
lines changed

Source/dump.f90

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3197,9 +3197,9 @@ SUBROUTINE INITIALIZE_DIAGNOSTIC_FILE(DT)
31973197
LPC => LAGRANGIAN_PARTICLE_CLASS(N)
31983198
WRITE(LU_OUTPUT,'(/I4,1X,A)') N,TRIM(LPC%ID)
31993199
WRITE(LU_OUTPUT,'(4X,A,A)') ' SURFace ID: ',TRIM(SURFACE(LPC%SURF_INDEX)%ID)
3200-
WRITE(LU_OUTPUT,'(4X,A,I0)') ' # Reals: ',LPC%N_STORAGE_REALS
3201-
WRITE(LU_OUTPUT,'(4X,A,I0)') ' # Integers: ',LPC%N_STORAGE_INTEGERS
3202-
WRITE(LU_OUTPUT,'(4X,A,I0)') ' # Logicals: ',LPC%N_STORAGE_LOGICALS
3200+
WRITE(LU_OUTPUT,'(4X,A,I0)') ' # Reals: ',LPC%N_REALS
3201+
WRITE(LU_OUTPUT,'(4X,A,I0)') ' # Integers: ',LPC%N_INTEGERS
3202+
WRITE(LU_OUTPUT,'(4X,A,I0)') ' # Logicals: ',LPC%N_LOGICALS
32033203
ENDDO PARTLOOP
32043204

32053205
! Print out information about all Devices

Source/func.f90

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1058,8 +1058,6 @@ SUBROUTINE ALLOCATE_STORAGE(NM,LP_INDEX,LPC_INDEX,SURF_INDEX,WALL_INDEX,CFACE_IN
10581058
LP%B2_INDEX = B2_INDEX
10591059
LP%BR_INDEX = BR_INDEX
10601060

1061-
CALL PACK_PARTICLE(NM,OS_DUMMY,LP,LPC_INDEX,LP%N_REALS,LP%N_INTEGERS,LP%N_LOGICALS,UNPACK_IT=.FALSE.,COUNT_ONLY=.TRUE.)
1062-
10631061
ELSEIF (PRESENT(WALL_INDEX)) THEN
10641062

10651063
SF => SURFACE(SURF_INDEX)
@@ -1484,9 +1482,6 @@ SUBROUTINE PACK_PARTICLE(NM,OS,LP,LPC_INDEX,RC,IC,LC,UNPACK_IT,COUNT_ONLY)
14841482
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),LP%INIT_INDEX,UNPACK_IT)
14851483
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),LP%CFACE_INDEX,UNPACK_IT)
14861484
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),LP%PROP_INDEX,UNPACK_IT)
1487-
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),LP%N_REALS,UNPACK_IT)
1488-
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),LP%N_INTEGERS,UNPACK_IT)
1489-
IC=IC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%INTEGERS(IC),LP%N_LOGICALS,UNPACK_IT)
14901485

14911486
! Assign logical pointers and values
14921487

Source/main.f90

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2037,11 +2037,11 @@ SUBROUTINE INITIALIZE_MESH_EXCHANGE_1(NM)
20372037
CALL ALLOCATE_STORAGE(NM,LP_INDEX=1,LPC_INDEX=ILC,SURF_INDEX=LPC%SURF_INDEX)
20382038
LP => M%LAGRANGIAN_PARTICLE(1)
20392039
OS => LPC%PARTICLE_STORAGE
2040-
CALL PACK_PARTICLE(NM,OS,LP,ILC,LPC%N_STORAGE_REALS,LPC%N_STORAGE_INTEGERS,LPC%N_STORAGE_LOGICALS,&
2041-
UNPACK_IT=.FALSE.,COUNT_ONLY=.TRUE.)
2042-
IF (.NOT.ALLOCATED(LPC%PARTICLE_STORAGE%REALS)) ALLOCATE(LPC%PARTICLE_STORAGE%REALS(LPC%N_STORAGE_REALS))
2043-
IF (.NOT.ALLOCATED(LPC%PARTICLE_STORAGE%INTEGERS)) ALLOCATE(LPC%PARTICLE_STORAGE%INTEGERS(LPC%N_STORAGE_INTEGERS))
2044-
IF (.NOT.ALLOCATED(LPC%PARTICLE_STORAGE%LOGICALS)) ALLOCATE(LPC%PARTICLE_STORAGE%LOGICALS(LPC%N_STORAGE_LOGICALS))
2040+
LPC%N_REALS=0 ; LPC%N_INTEGERS=0 ; LPC%N_LOGICALS=0
2041+
CALL PACK_PARTICLE(NM,OS,LP,ILC,LPC%N_REALS,LPC%N_INTEGERS,LPC%N_LOGICALS,UNPACK_IT=.FALSE.,COUNT_ONLY=.TRUE.)
2042+
IF (.NOT.ALLOCATED(LPC%PARTICLE_STORAGE%REALS)) ALLOCATE(LPC%PARTICLE_STORAGE%REALS(LPC%N_REALS))
2043+
IF (.NOT.ALLOCATED(LPC%PARTICLE_STORAGE%INTEGERS)) ALLOCATE(LPC%PARTICLE_STORAGE%INTEGERS(LPC%N_INTEGERS))
2044+
IF (.NOT.ALLOCATED(LPC%PARTICLE_STORAGE%LOGICALS)) ALLOCATE(LPC%PARTICLE_STORAGE%LOGICALS(LPC%N_LOGICALS))
20452045
CALL NULLIFY_PARTICLE(NM,1)
20462046
ENDDO
20472047

Source/part.f90

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4734,17 +4734,17 @@ SUBROUTINE ADD_TO_PARTICLE_SEND_BUFFER
47344734
IF (NOM/=0 .AND. NOM/=NM) THEN
47354735

47364736
OS => OMESH(NOM)%PARTICLE_SEND_BUFFER
4737-
IF (OS%N_REALS+LP%N_REALS>OS%N_REALS_DIM) THEN
4738-
CALL REALLOCATE_STORAGE_ARRAYS(OS,N_REALS=OS%N_REALS_DIM,N_REALS_NEW=OS%N_REALS_DIM+10*LP%N_REALS)
4739-
OS%N_REALS_DIM = OS%N_REALS_DIM + 10*LP%N_REALS
4737+
IF (OS%N_REALS+LPC%N_REALS>OS%N_REALS_DIM) THEN
4738+
CALL REALLOCATE_STORAGE_ARRAYS(OS,N_REALS=OS%N_REALS_DIM,N_REALS_NEW=OS%N_REALS_DIM+10*LPC%N_REALS)
4739+
OS%N_REALS_DIM = OS%N_REALS_DIM + 10*LPC%N_REALS
47404740
ENDIF
4741-
IF (OS%N_INTEGERS+LP%N_INTEGERS>OS%N_INTEGERS_DIM) THEN
4742-
CALL REALLOCATE_STORAGE_ARRAYS(OS,N_INTEGERS=OS%N_INTEGERS_DIM,N_INTEGERS_NEW=OS%N_INTEGERS_DIM+10*LP%N_INTEGERS)
4743-
OS%N_INTEGERS_DIM = OS%N_INTEGERS_DIM + 10*LP%N_INTEGERS
4741+
IF (OS%N_INTEGERS+LPC%N_INTEGERS>OS%N_INTEGERS_DIM) THEN
4742+
CALL REALLOCATE_STORAGE_ARRAYS(OS,N_INTEGERS=OS%N_INTEGERS_DIM,N_INTEGERS_NEW=OS%N_INTEGERS_DIM+10*LPC%N_INTEGERS)
4743+
OS%N_INTEGERS_DIM = OS%N_INTEGERS_DIM + 10*LPC%N_INTEGERS
47444744
ENDIF
4745-
IF (OS%N_LOGICALS+LP%N_LOGICALS>OS%N_LOGICALS_DIM) THEN
4746-
CALL REALLOCATE_STORAGE_ARRAYS(OS,N_LOGICALS=OS%N_LOGICALS_DIM,N_LOGICALS_NEW=OS%N_LOGICALS_DIM+10*LP%N_LOGICALS)
4747-
OS%N_LOGICALS_DIM = OS%N_LOGICALS_DIM + 10*LP%N_LOGICALS
4745+
IF (OS%N_LOGICALS+LPC%N_LOGICALS>OS%N_LOGICALS_DIM) THEN
4746+
CALL REALLOCATE_STORAGE_ARRAYS(OS,N_LOGICALS=OS%N_LOGICALS_DIM,N_LOGICALS_NEW=OS%N_LOGICALS_DIM+10*LPC%N_LOGICALS)
4747+
OS%N_LOGICALS_DIM = OS%N_LOGICALS_DIM + 10*LPC%N_LOGICALS
47484748
ENDIF
47494749

47504750
OS%N_ITEMS = OS%N_ITEMS + 1

Source/type.f90

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -131,9 +131,9 @@ MODULE TYPES
131131
INTEGER :: NEAREST_RAD_ANGLE_INDEX=0 !< Index of the radiation angle nearest the given orientation vector
132132
INTEGER :: CNF_RAMP_INDEX=-1 !< Ramp index for Cumulative Number Fraction function
133133
INTEGER :: BREAKUP_CNF_RAMP_INDEX=-1 !< Ramp index for break-up Cumulative Number Fraction function
134-
INTEGER :: N_STORAGE_REALS=0 !< Number of reals to store for this particle class
135-
INTEGER :: N_STORAGE_INTEGERS=0 !< Number of integers to store for this particle class
136-
INTEGER :: N_STORAGE_LOGICALS=0 !< Number of logicals to store for this particle class
134+
INTEGER :: N_REALS=0 !< Number of reals to store for this particle class
135+
INTEGER :: N_INTEGERS=0 !< Number of integers to store for this particle class
136+
INTEGER :: N_LOGICALS=0 !< Number of logicals to store for this particle class
137137
INTEGER :: NEW_PARTICLE_INCREMENT=1000 !< Number of new storage slots to allocate when NPLDIM is exceeded
138138
INTEGER :: EVAP_MODEL !< Evaporation correlation
139139

@@ -392,9 +392,6 @@ MODULE TYPES
392392
INTEGER :: DUCT_CELL_INDEX=0 !< Index of duct cell
393393
INTEGER :: CFACE_INDEX=0 !< Index of immersed boundary CFACE that the droplet has attached to
394394
INTEGER :: PROP_INDEX=0 !< Index of the PROPERTY_TYPE assigned to the particle
395-
INTEGER :: N_REALS=0 !< Number of reals to pack into restart or send/recv buffer
396-
INTEGER :: N_INTEGERS=0 !< Number of integers to pack into restart or send/recv buffer
397-
INTEGER :: N_LOGICALS=0 !< Number of logicals to pack into restart or send/recv buffer
398395

399396
LOGICAL :: SHOW=.FALSE. !< Show the particle in Smokeview
400397
LOGICAL :: SPLAT=.FALSE. !< The liquid droplet has hit a solid

0 commit comments

Comments
 (0)