Skip to content

Commit ddbcf7d

Browse files
authored
Merge pull request #14941 from cxp484/FireX
FireX: Merge with firemodels/master
2 parents a2e1251 + 045e909 commit ddbcf7d

File tree

8 files changed

+295
-223
lines changed

8 files changed

+295
-223
lines changed

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 38 additions & 26 deletions
Large diffs are not rendered by default.

Source/cons.f90

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -464,6 +464,7 @@ MODULE GLOBAL_CONSTANTS
464464
INTEGER :: N_PASSIVE_SCALARS=0 !< Number of passive scalars
465465
INTEGER :: N_TOTAL_SCALARS=0 !< Number of total scalars, tracked and passive
466466
INTEGER :: N_FIXED_CHEMISTRY_SUBSTEPS=-1 !< Number of chemistry substeps in combustion routine
467+
INTEGER :: ZETA_0_RAMP_INDEX=0 !< Ramp index for initial unmixed fraction
467468

468469
LOGICAL :: OUTPUT_CHEM_IT=.FALSE.
469470
LOGICAL :: REAC_SOURCE_CHECK=.FALSE.

Source/fire.f90

Lines changed: 15 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -96,12 +96,13 @@ SUBROUTINE COMBUSTION_GENERAL_LOAD_BALANCED(T,DT)
9696
USE PHYSICAL_FUNCTIONS, ONLY: GET_SPECIFIC_GAS_CONSTANT,GET_MASS_FRACTION_ALL,GET_SPECIFIC_HEAT,GET_MOLECULAR_WEIGHT, &
9797
GET_SENSIBLE_ENTHALPY_Z,IS_REALIZABLE
9898
USE CHEMCONS, ONLY: DO_CHEM_LOAD_BALANCE
99+
USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP
99100

100101
INTEGER :: NM,I,J,K,NC, CHEM_SUBIT_TMP,CHEM_SUBIT_TMP_OUT,ICC,JCC,INDX,NRECEIVE_CELLS
101102
INTEGER :: NCHEM_ACTIVE_CELLS_AND_CC, NCHEM_ACTIVE_CELLS_AND_CC_GLOBAL, IERR, NCHEM_ACTIVE_CELLS, NCHEM_ACTIVE_CC
102103
REAL(EB), INTENT(IN) :: T,DT
103104
REAL(EB) :: ZZ_GET(1:N_TRACKED_SPECIES),DZZ(1:N_TRACKED_SPECIES),&
104-
REAC_SOURCE_TERM_TMP(N_TRACKED_SPECIES),Q_REAC_TMP(N_REACTIONS),VCELL,PRES
105+
REAC_SOURCE_TERM_TMP(N_TRACKED_SPECIES),Q_REAC_TMP(N_REACTIONS),VCELL,PRES,ZETA_0,TSI
105106
LOGICAL :: Q_EXISTS
106107
TYPE (CC_CUTCELL_TYPE), POINTER :: CC
107108
LOGICAL :: IS_CHEM_ACTIVE
@@ -175,7 +176,10 @@ SUBROUTINE COMBUSTION_GENERAL_LOAD_BALANCED(T,DT)
175176
! For 1 MPI process (serial) distribution is not needed.
176177
!------
177178

178-
DO_CHEM_LOAD_BALANCE_IF : IF(N_MPI_PROCESSES > 1 .AND. DO_CHEM_LOAD_BALANCE) THEN
179+
TSI = T-T_BEGIN
180+
ZETA_0 = EVALUATE_RAMP(TSI,ZETA_0_RAMP_INDEX)*INITIAL_UNMIXED_FRACTION
181+
182+
CHEM_LOAD_BALANCE_IF : IF(N_MPI_PROCESSES > 1 .AND. DO_CHEM_LOAD_BALANCE) THEN
179183
IF (.NOT. ALLOCATED(NCHEM_ACTIVE_CELLS_AND_CC_RANK_WISE)) ALLOCATE(NCHEM_ACTIVE_CELLS_AND_CC_RANK_WISE(N_MPI_PROCESSES))
180184
NCHEM_ACTIVE_CELLS_AND_CC_RANK_WISE = 0
181185
CALL MPI_ALLGATHER(NCHEM_ACTIVE_CELLS_AND_CC,1,MPI_INTEGER,NCHEM_ACTIVE_CELLS_AND_CC_RANK_WISE,1,MPI_INTEGER,MPI_COMM_WORLD,IERR)
@@ -205,7 +209,7 @@ SUBROUTINE COMBUSTION_GENERAL_LOAD_BALANCED(T,DT)
205209
! Call combustion integration routine for Cartesian cell (I,J,K)
206210
CALL COMBUSTION_MODEL( T,DT,ZZ_GET,Q_OUT,MIX_TIME_OUT,CHI_R_OUT,&
207211
CHEM_SUBIT_TMP_OUT,REAC_SOURCE_TERM_TMP,Q_REAC_TMP,&
208-
MYTEMP,MYRHO,PRES,MYMU,DELTA,VOL)
212+
MYTEMP,MYRHO,PRES,MYMU,DELTA,VOL,ZETA_0)
209213
!***************************************************************************************
210214

211215
RESULTS_TO_SEND_ARRAY(1:N_TRACKED_SPECIES,INDX) = ZZ_GET
@@ -216,7 +220,6 @@ SUBROUTINE COMBUSTION_GENERAL_LOAD_BALANCED(T,DT)
216220

217221
ENDDO
218222

219-
220223
IF (COMBUSTION_ODE_SOLVER == CVODE_SOLVER) THEN
221224
T_CHEM_ODE = T_CHEM_ODE+CURRENT_TIME()-TNOW2
222225
ENDIF
@@ -230,7 +233,7 @@ SUBROUTINE COMBUSTION_GENERAL_LOAD_BALANCED(T,DT)
230233
IF (STOP_STATUS/=NO_STOP) RETURN
231234
ENDIF !NCHEM_ACTIVE_CELLS_AND_CC_GLOBAL >0
232235

233-
ELSE DO_CHEM_LOAD_BALANCE_IF
236+
ELSE CHEM_LOAD_BALANCE_IF
234237

235238
IF (NCHEM_ACTIVE_CELLS_AND_CC >0) THEN
236239
! Serial chemistry:
@@ -254,7 +257,7 @@ SUBROUTINE COMBUSTION_GENERAL_LOAD_BALANCED(T,DT)
254257
CALL COMBUSTION_MODEL( T,DT,ZZ_GET,Q(I,J,K),MIX_TIME(I,J,K),CHI_R(I,J,K),&
255258
CHEM_SUBIT_TMP,REAC_SOURCE_TERM_TMP,Q_REAC_TMP,&
256259
TMP(I,J,K),RHO(I,J,K),PRES, MU(I,J,K),&
257-
LES_FILTER_WIDTH(I,J,K),DX(I)*DY(J)*DZ(K),IIC=I,JJC=J,KKC=K )
260+
LES_FILTER_WIDTH(I,J,K),DX(I)*DY(J)*DZ(K),ZETA_0,IIC=I,JJC=J,KKC=K )
258261
!***************************************************************************************
259262
!IF (STOP_STATUS/=NO_STOP) RETURN
260263
IF (OUTPUT_CHEM_IT) CHEM_SUBIT(I,J,K) = CHEM_SUBIT_TMP
@@ -278,7 +281,7 @@ SUBROUTINE COMBUSTION_GENERAL_LOAD_BALANCED(T,DT)
278281
CC%CHI_R(JCC),&
279282
CHEM_SUBIT_TMP,REAC_SOURCE_TERM_TMP,Q_REAC_TMP,&
280283
CC%TMP(JCC),CC%RHO(JCC),PRES,MU(I,J,K),&
281-
LES_FILTER_WIDTH(I,J,K),CC%VOLUME(JCC),IIC=I,JJC=J,KKC=K)
284+
LES_FILTER_WIDTH(I,J,K),CC%VOLUME(JCC),ZETA_0,IIC=I,JJC=J,KKC=K)
282285
!***************************************************************************************
283286
CALL SET_SPECIES_SOURCE_TERM_CUTCELL(DT, ICC, JCC, ZZ_GET, DZZ, REAC_SOURCE_TERM_TMP, Q_REAC_TMP)
284287
END DO
@@ -291,7 +294,7 @@ SUBROUTINE COMBUSTION_GENERAL_LOAD_BALANCED(T,DT)
291294
T_CHEM_ODE = T_CHEM_ODE+CURRENT_TIME()-TNOW2
292295
ENDIF
293296
ENDIF !NCHEM_ACTIVE_CELLS_AND_CC >0
294-
ENDIF DO_CHEM_LOAD_BALANCE_IF
297+
ENDIF CHEM_LOAD_BALANCE_IF
295298

296299
! This volume refactoring is needed for RADIATION_FVM (CHI_R, Q) and plotting slices:
297300
IF(CC_IBM) THEN
@@ -715,13 +718,13 @@ END SUBROUTINE GATHER_CELLS_FROM_MPI_PROCESSES
715718

716719

717720
SUBROUTINE COMBUSTION_MODEL(T,DT,ZZ_GET,Q_OUT,MIX_TIME_OUT,CHI_R_OUT,CHEM_SUBIT_OUT,REAC_SOURCE_TERM_OUT,Q_REAC_OUT,&
718-
TMP_IN,RHO_IN,PRES_IN,MU_IN,DELTA,CELL_VOLUME,IIC,JJC,KKC)
721+
TMP_IN,RHO_IN,PRES_IN,MU_IN,DELTA,CELL_VOLUME,ZETA_0_IN,IIC,JJC,KKC)
719722
USE MATH_FUNCTIONS, ONLY: EVALUATE_RAMP
720723
USE PHYSICAL_FUNCTIONS, ONLY: GET_REALIZABLE_MF
721724
USE COMP_FUNCTIONS, ONLY: SHUTDOWN
722725
USE CHEMCONS, ONLY: ODE_MIN_ATOL, FLAME_THICK_FACTOR
723726
INTEGER, INTENT(IN), OPTIONAL :: IIC,JJC,KKC
724-
REAL(EB), INTENT(IN) :: T,DT,RHO_IN,PRES_IN,MU_IN,DELTA,CELL_VOLUME
727+
REAL(EB), INTENT(IN) :: T,DT,RHO_IN,PRES_IN,MU_IN,DELTA,CELL_VOLUME,ZETA_0_IN
725728
REAL(EB), INTENT(OUT) :: Q_OUT,MIX_TIME_OUT,CHI_R_OUT,REAC_SOURCE_TERM_OUT(N_TRACKED_SPECIES),Q_REAC_OUT(N_REACTIONS)
726729
INTEGER, INTENT(OUT) :: CHEM_SUBIT_OUT
727730
REAL(EB), INTENT(INOUT) :: ZZ_GET(1:N_TRACKED_SPECIES)
@@ -733,7 +736,7 @@ SUBROUTINE COMBUSTION_MODEL(T,DT,ZZ_GET,Q_OUT,MIX_TIME_OUT,CHI_R_OUT,CHEM_SUBIT_
733736
Q_REAC_SUM(1:N_REACTIONS),Q_SUM_CHI_R,CHI_R_SUM,TIME_RAMP_FACTOR,&
734737
TOTAL_MIXED_MASS_1,TOTAL_MIXED_MASS_2,TOTAL_MIXED_MASS_4,TOTAL_MIXED_MASS,&
735738
ZETA_1,ZETA_2,ZETA_4,D_F,TMP_IN,C_U,DT_SUB_OLD,ERR_EST(N_TRACKED_SPECIES),ERR_TOL(N_TRACKED_SPECIES),ERR_TINY,&
736-
ZZ_TEMP(1:N_TRACKED_SPECIES), ATOL(1:N_TRACKED_SPECIES)
739+
ZZ_TEMP(1:N_TRACKED_SPECIES),ATOL(1:N_TRACKED_SPECIES)
737740
INTEGER :: NR,NS,ITER,TVI,RICH_ITER,TIME_ITER,RICH_ITER_MAX
738741
INTEGER, PARAMETER :: TV_ITER_MIN=5
739742
LOGICAL :: TV_FLUCT(1:N_TRACKED_SPECIES),EXTINCT,NO_REACTIONS,NO_REAC_2,NO_REAC_4
@@ -764,7 +767,7 @@ SUBROUTINE COMBUSTION_MODEL(T,DT,ZZ_GET,Q_OUT,MIX_TIME_OUT,CHI_R_OUT,CHEM_SUBIT_
764767
END SELECT
765768
ENDIF
766769

767-
ZETA_0 = INITIAL_UNMIXED_FRACTION
770+
ZETA_0 = ZETA_0_IN
768771
CELL_MASS = RHO_IN*CELL_VOLUME
769772

770773
DT_SUB_MIN = DT/REAL(MAX_CHEMISTRY_SUBSTEPS,EB)

Source/func.f90

Lines changed: 21 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1849,7 +1849,7 @@ REAL(EB) FUNCTION GET_PARTICLE_ENTHALPY(I_LPC,TMP_S)
18491849
USE MATH_FUNCTIONS, ONLY: INTERPOLATE1D_UNIFORM
18501850
REAL(EB), INTENT(IN) :: TMP_S
18511851
REAL(EB) :: RHO,RHO_H,VOL,DTMP,H_S,THICKNESS
1852-
INTEGER :: I,N,ITMP,I_GRAD
1852+
INTEGER :: I,N,ITMP
18531853
INTEGER, INTENT(IN) :: I_LPC
18541854
TYPE(LAGRANGIAN_PARTICLE_CLASS_TYPE), POINTER :: LPC
18551855
TYPE(SURFACE_TYPE), POINTER :: SF
@@ -1861,21 +1861,16 @@ REAL(EB) FUNCTION GET_PARTICLE_ENTHALPY(I_LPC,TMP_S)
18611861
CALL INTERPOLATE1D_UNIFORM(LBOUND(SPECIES(LPC%Y_INDEX)%H_L,1),SPECIES(LPC%Y_INDEX)%H_L,TMP_S,GET_PARTICLE_ENTHALPY)
18621862
ELSE
18631863
SF=>SURFACE(LPC%SURF_INDEX)
1864-
SELECT CASE(SF%GEOMETRY)
1865-
CASE(SURF_CARTESIAN) ; I_GRAD = 1
1866-
CASE(SURF_CYLINDRICAL,SURF_INNER_CYLINDRICAL) ; I_GRAD = 2
1867-
CASE(SURF_SPHERICAL) ; I_GRAD = 3
1868-
END SELECT
18691864
RHO_H = 0._EB
18701865
RHO = 0._EB
18711866
ITMP = MIN(I_MAX_TEMP-1,INT(TMP_S))
18721867
DTMP = TMP_S-REAL(ITMP,EB)
18731868
THICKNESS = SUM(SF%LAYER_THICKNESS)
18741869
DO I=1,SUM(SF%N_LAYER_CELLS)
18751870
IF (SF%GEOMETRY==SURF_INNER_CYLINDRICAL) THEN
1876-
VOL = (SF%INNER_RADIUS+SF%X_S(I))**I_GRAD - (SF%INNER_RADIUS+SF%X_S(I-1))**I_GRAD
1871+
VOL = (SF%INNER_RADIUS+SF%X_S(I))**SF%I_GRAD - (SF%INNER_RADIUS+SF%X_S(I-1))**SF%I_GRAD
18771872
ELSE
1878-
VOL = (THICKNESS+SF%INNER_RADIUS-SF%X_S(I-1))**I_GRAD - (THICKNESS+SF%INNER_RADIUS-SF%X_S(I))**I_GRAD
1873+
VOL = (THICKNESS+SF%INNER_RADIUS-SF%X_S(I-1))**SF%I_GRAD - (THICKNESS+SF%INNER_RADIUS-SF%X_S(I))**SF%I_GRAD
18791874
ENDIF
18801875
MATL_REMESH: DO N=1,SF%N_MATL
18811876
IF (SF%RHO_0(I,N)<=TWO_EPSILON_EB) CYCLE MATL_REMESH
@@ -2121,7 +2116,7 @@ REAL(EB) FUNCTION SURFACE_DENSITY(MODE,SF,ONE_D,MATL_INDEX)
21212116

21222117
INTEGER, INTENT(IN) :: MODE
21232118
INTEGER, INTENT(IN), OPTIONAL :: MATL_INDEX
2124-
INTEGER :: I_GRAD,NWP,II2,N,ITMP
2119+
INTEGER :: NWP,II2,N,ITMP
21252120
REAL(EB) :: WGT,R_S(0:NWP_MAX),EPUM,DTMP
21262121
TYPE(BOUNDARY_ONE_D_TYPE), INTENT(IN), POINTER :: ONE_D
21272122
TYPE(SURFACE_TYPE), INTENT(IN), POINTER :: SF
@@ -2133,12 +2128,6 @@ REAL(EB) FUNCTION SURFACE_DENSITY(MODE,SF,ONE_D,MATL_INDEX)
21332128

21342129
ELSE THERMALLY_THICK_IF
21352130

2136-
SELECT CASE(SF%GEOMETRY)
2137-
CASE(SURF_CARTESIAN) ; I_GRAD = 1
2138-
CASE(SURF_CYLINDRICAL,SURF_INNER_CYLINDRICAL) ; I_GRAD = 2
2139-
CASE(SURF_SPHERICAL) ; I_GRAD = 3
2140-
END SELECT
2141-
21422131
NWP = SUM(ONE_D%N_LAYER_CELLS)
21432132
IF (SF%GEOMETRY==SURF_INNER_CYLINDRICAL) THEN
21442133
R_S(0:NWP) = SF%INNER_RADIUS + ONE_D%X(0:NWP)
@@ -2149,8 +2138,9 @@ REAL(EB) FUNCTION SURFACE_DENSITY(MODE,SF,ONE_D,MATL_INDEX)
21492138
SURFACE_DENSITY = 0._EB
21502139
NUMBER_WALL_POINTS_LOOP: DO II2=1,NWP
21512140
AREA_VOLUME_SELECT: SELECT CASE(MODE)
2152-
CASE(0,2); WGT = ABS(R_S(II2-1)**I_GRAD-R_S(II2)**I_GRAD)/(REAL(I_GRAD,EB)*(SF%INNER_RADIUS+SF%THICKNESS)**(I_GRAD-1))
2153-
CASE(1,3); WGT = ABS(R_S(II2-1)**I_GRAD-R_S(II2)**I_GRAD)/(SF%INNER_RADIUS+SF%THICKNESS)**I_GRAD
2141+
CASE(0,2); WGT = ABS(R_S(II2-1)**SF%I_GRAD-R_S(II2)**SF%I_GRAD)/ &
2142+
(REAL(SF%I_GRAD,EB)*(SF%INNER_RADIUS+SF%THICKNESS)**(SF%I_GRAD-1))
2143+
CASE(1,3); WGT = ABS(R_S(II2-1)**SF%I_GRAD-R_S(II2)**SF%I_GRAD)/(SF%INNER_RADIUS+SF%THICKNESS)**SF%I_GRAD
21542144
END SELECT AREA_VOLUME_SELECT
21552145

21562146
EPUM = 1._EB ! energy per unit mass
@@ -4072,6 +4062,7 @@ SUBROUTINE PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY,CHEC
40724062
I1=RC+1 ; RC=I1+ONE_D%N_LAYERS-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%LAYER_THICKNESS(1:RC-I1+1) , UNPACK_IT)
40734063
I1=RC+1 ; RC=I1+ONE_D%N_LAYERS-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%LAYER_THICKNESS_OLD(1:RC-I1+1), UNPACK_IT)
40744064
I1=RC+1 ; RC=I1+ONE_D%N_LAYERS-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%MIN_LAYER_THICKNESS(1:RC-I1+1), UNPACK_IT)
4065+
I1=RC+1 ; RC=I1+ONE_D%N_LAYERS-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%MIN_LAYER_MASS(1:RC-I1+1), UNPACK_IT)
40754066
I1=RC+1 ; RC=I1+ONE_D%N_LAYERS-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%MIN_DIFFUSIVITY(1:RC-I1+1) , UNPACK_IT)
40764067
I1=RC+1 ; RC=I1+ONE_D%N_LAYERS-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%DDSUM(1:RC-I1+1) , UNPACK_IT)
40774068
I1=RC+1 ; RC=I1+ONE_D%N_LAYERS-1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(I1:RC),ONE_D%SMALLEST_CELL_SIZE(1:RC-I1+1) , UNPACK_IT)
@@ -4115,6 +4106,7 @@ SUBROUTINE REALLOCATE_BOUNDARY_ONE_D(ONE_D)
41154106
ALLOCATE(ONE_D%LAYER_THICKNESS_OLD(ONE_D%N_LAYERS))
41164107
IF (ALLOCATED(ONE_D%MIN_LAYER_THICKNESS)) DEALLOCATE(ONE_D%MIN_LAYER_THICKNESS)
41174108
ALLOCATE(ONE_D%MIN_LAYER_THICKNESS(ONE_D%N_LAYERS))
4109+
IF (ALLOCATED(ONE_D%MIN_LAYER_MASS)) DEALLOCATE(ONE_D%MIN_LAYER_MASS) ; ALLOCATE(ONE_D%MIN_LAYER_MASS(ONE_D%N_LAYERS))
41184110
IF (ALLOCATED(ONE_D%HT3D_LAYER)) DEALLOCATE(ONE_D%HT3D_LAYER) ; ALLOCATE(ONE_D%HT3D_LAYER(ONE_D%N_LAYERS))
41194111
IF (ALLOCATED(ONE_D%MIN_DIFFUSIVITY)) DEALLOCATE(ONE_D%MIN_DIFFUSIVITY) ; ALLOCATE(ONE_D%MIN_DIFFUSIVITY(ONE_D%N_LAYERS))
41204112
IF (ALLOCATED(ONE_D%RHO_C_S)) DEALLOCATE(ONE_D%RHO_C_S) ; ALLOCATE(ONE_D%RHO_C_S(ONE_D%N_CELLS_MAX))
@@ -4141,12 +4133,12 @@ END SUBROUTINE REALLOCATE_BOUNDARY_ONE_D
41414133

41424134
SUBROUTINE INITIALIZE_BOUNDARY_ONE_D(NM,OD_INDEX,SURF_INDEX)
41434135

4144-
USE GLOBAL_CONSTANTS, ONLY: RADIATION
4136+
USE GLOBAL_CONSTANTS, ONLY: RADIATION,NWP_MAX
41454137
INTEGER, INTENT(IN) :: NM,OD_INDEX,SURF_INDEX
41464138
TYPE(BOUNDARY_ONE_D_TYPE), POINTER :: ONE_D
41474139
TYPE(SURFACE_TYPE), POINTER :: SF
41484140
INTEGER :: NN,I,II
4149-
REAL(EB) :: RAMP_POSITION,TF,TB
4141+
REAL(EB) :: RAMP_POSITION,TF,TB,R(0:NWP_MAX)
41504142

41514143
ONE_D => MESHES(NM)%BOUNDARY_ONE_D(OD_INDEX)
41524144
SF => SURFACE(SURF_INDEX)
@@ -4162,6 +4154,12 @@ SUBROUTINE INITIALIZE_BOUNDARY_ONE_D(NM,OD_INDEX,SURF_INDEX)
41624154
DO I=1,MIN(ONE_D%N_CELLS_MAX,ONE_D%N_CELLS_INI)
41634155
ONE_D%DX_OLD(I) = ONE_D%X(I)-ONE_D%X(I-1)
41644156
ENDDO
4157+
R(0:ONE_D%N_CELLS_INI) = SF%THICKNESS + SF%INNER_RADIUS - ONE_D%X(0:ONE_D%N_CELLS_INI)
4158+
I = 0
4159+
DO NN = 1,ONE_D%N_LAYERS
4160+
ONE_D%MIN_LAYER_MASS(NN) = SF%MIN_LAYER_MASS(NN)*(R(I)**SF%I_GRAD - R(I+ONE_D%N_LAYER_CELLS(NN))**SF%I_GRAD)
4161+
I = I + ONE_D%N_LAYER_CELLS(NN)
4162+
ENDDO
41654163
IF (ALLOCATED(ONE_D%LAYER_THICKNESS_OLD)) ONE_D%LAYER_THICKNESS_OLD(1:ONE_D%N_LAYERS) = SF%LAYER_THICKNESS(1:SF%N_LAYERS)
41664164
IF (SF%RAMP_T_I_INDEX > 0) THEN
41674165
!NOTE: Replicating EVALUATE_RAMP since MODULE MATH_FUNCTIONS uses the MODULE which contains this routine
@@ -4319,6 +4317,7 @@ SUBROUTINE PACK_BOUNDARY_PROP1(NM,IC,RC,LC,OS,B1_INDEX,UNPACK_IT,COUNT_ONLY,SURF
43194317
RC=RC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(RC),B1%RHO_G,UNPACK_IT)
43204318
RC=RC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(RC),B1%RDN,UNPACK_IT)
43214319
RC=RC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(RC),B1%K_G,UNPACK_IT)
4320+
RC=RC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(RC),B1%M_DOT_LAYER_PP,UNPACK_IT)
43224321
RC=RC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(RC),B1%Q_DOT_G_PP,UNPACK_IT)
43234322
RC=RC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(RC),B1%Q_DOT_O2_PP,UNPACK_IT)
43244323
RC=RC+1 ; IF (.NOT.COUNT_ONLY) CALL EQUATE(OS%REALS(RC),B1%Q_CONDENSE,UNPACK_IT)
@@ -5267,24 +5266,14 @@ END SUBROUTINE GET_WALL_NODE_WEIGHTS
52675266
!> \param X_S_NEW Array of interior cell edge positions after shrinkage or swelling (m)
52685267
!> \param INT_WGT Array of weighting factors for new arrangement of interior cells
52695268

5270-
SUBROUTINE GET_INTERPOLATION_WEIGHTS(GEOMETRY,NWP,NWP_NEW,INNER_RADIUS,X_S,X_S_NEW,INT_WGT)
5269+
SUBROUTINE GET_INTERPOLATION_WEIGHTS(GEOMETRY,I_GRAD,NWP,NWP_NEW,INNER_RADIUS,X_S,X_S_NEW,INT_WGT)
52715270

5272-
INTEGER, INTENT(IN) :: GEOMETRY,NWP,NWP_NEW
5271+
INTEGER, INTENT(IN) :: GEOMETRY,I_GRAD,NWP,NWP_NEW
52735272
REAL(EB), INTENT(IN) :: X_S(0:NWP), X_S_NEW(0:NWP_NEW), INNER_RADIUS
52745273
REAL(EB), INTENT(OUT) :: INT_WGT(NWP_NEW,NWP)
52755274

52765275
REAL(EB) XUP,XLOW,XUP_NEW,XLOW_NEW,VOL_NEW,VOL,THICKNESS
5277-
INTEGER I_NEW, I_OLD, I_GRAD
5278-
5279-
5280-
SELECT CASE(GEOMETRY)
5281-
CASE(SURF_CARTESIAN)
5282-
I_GRAD = 1
5283-
CASE(SURF_CYLINDRICAL,SURF_INNER_CYLINDRICAL)
5284-
I_GRAD = 2
5285-
CASE(SURF_SPHERICAL)
5286-
I_GRAD = 3
5287-
END SELECT
5276+
INTEGER I_NEW, I_OLD
52885277

52895278
I_OLD = 1
52905279
INT_WGT = 0._EB

Source/init.f90

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4188,6 +4188,7 @@ SUBROUTINE FIND_WALL_BACK_INDEX(NM,IW)
41884188
DEALLOCATE(ONE_D%MATL_INDEX) ; ALLOCATE(ONE_D%MATL_INDEX(ONE_D%N_MATL))
41894189
DEALLOCATE(ONE_D%LAYER_THICKNESS) ; ALLOCATE(ONE_D%LAYER_THICKNESS(ONE_D%N_LAYERS))
41904190
DEALLOCATE(ONE_D%MIN_LAYER_THICKNESS) ; ALLOCATE(ONE_D%MIN_LAYER_THICKNESS(ONE_D%N_LAYERS))
4191+
DEALLOCATE(ONE_D%MIN_LAYER_MASS) ; ALLOCATE(ONE_D%MIN_LAYER_MASS(ONE_D%N_LAYERS))
41914192
DEALLOCATE(ONE_D%HT3D_LAYER) ; ALLOCATE(ONE_D%HT3D_LAYER(ONE_D%N_LAYERS))
41924193
ONE_D%LAYER_THICKNESS(1:ONE_D%N_LAYERS) = LAYER_THICKNESS(1:ONE_D%N_LAYERS)
41934194
ONE_D%MIN_LAYER_THICKNESS(1:ONE_D%N_LAYERS) = MIN_LAYER_THICKNESS(1:ONE_D%N_LAYERS)

0 commit comments

Comments
 (0)