@@ -3322,7 +3322,8 @@ SUBROUTINE ALLOCATE_STORAGE(NM,LP_INDEX,LPC_INDEX,SURF_INDEX,WALL_INDEX,CFACE_IN
33223322 WC% N_REALS = 0
33233323 WC% N_INTEGERS = 0
33243324 WC% N_LOGICALS = 0
3325- CALL PACK_WALL(NM,OS_DUMMY,WC,SURF_INDEX,WC% N_REALS,WC% N_INTEGERS,WC% N_LOGICALS,UNPACK_IT= .FALSE. ,COUNT_ONLY= .TRUE. )
3325+ CALL PACK_WALL(NM,OS_DUMMY,WC,SURF_INDEX,WC% N_REALS,WC% N_INTEGERS,WC% N_LOGICALS,UNPACK_IT= .FALSE. ,COUNT_ONLY= .TRUE. ,&
3326+ CHECK_BOUNDS= .FALSE. )
33263327
33273328ELSEIF (PRESENT (THIN_WALL_INDEX)) THEN
33283329
@@ -3351,7 +3352,8 @@ SUBROUTINE ALLOCATE_STORAGE(NM,LP_INDEX,LPC_INDEX,SURF_INDEX,WALL_INDEX,CFACE_IN
33513352 TW% TD_INDEX = TD_INDEX
33523353 TW% B1_INDEX = B1_INDEX
33533354
3354- CALL PACK_THIN_WALL(NM,OS_DUMMY,TW,SURF_INDEX,TW% N_REALS,TW% N_INTEGERS,TW% N_LOGICALS,UNPACK_IT= .FALSE. ,COUNT_ONLY= .TRUE. )
3355+ CALL PACK_THIN_WALL(NM,OS_DUMMY,TW,SURF_INDEX,TW% N_REALS,TW% N_INTEGERS,TW% N_LOGICALS,UNPACK_IT= .FALSE. ,COUNT_ONLY= .TRUE. ,&
3356+ CHECK_BOUNDS= .FALSE. )
33553357
33563358ELSEIF (PRESENT (CFACE_INDEX)) THEN
33573359
@@ -3384,7 +3386,8 @@ SUBROUTINE ALLOCATE_STORAGE(NM,LP_INDEX,LPC_INDEX,SURF_INDEX,WALL_INDEX,CFACE_IN
33843386 CFA% B2_INDEX = B2_INDEX
33853387 CFA% BR_INDEX = BR_INDEX
33863388
3387- CALL PACK_CFACE(NM,OS_DUMMY,CFA,SURF_INDEX,CFA% N_REALS,CFA% N_INTEGERS,CFA% N_LOGICALS,UNPACK_IT= .FALSE. ,COUNT_ONLY= .TRUE. )
3389+ CALL PACK_CFACE(NM,OS_DUMMY,CFA,SURF_INDEX,CFA% N_REALS,CFA% N_INTEGERS,CFA% N_LOGICALS,UNPACK_IT= .FALSE. ,COUNT_ONLY= .TRUE. ,&
3390+ CHECK_BOUNDS= .FALSE. )
33883391
33893392ENDIF
33903393
@@ -3678,12 +3681,13 @@ END SUBROUTINE ALLOCATE_STORAGE
36783681! > \param LC Counter of logical variables
36793682! > \param UNPACK_IT Logical indicating whether the data is to be packed or unpacked
36803683! > \param COUNT_ONLY Logical indicating whether the aim is simply to count variables
3684+ ! > \param CHECK_BOUNDS Logical indicating whether to check the array bounds of the items being unpacked
36813685
3682- SUBROUTINE PACK_PARTICLE (NM ,OS ,LP ,LPC_INDEX ,RC ,IC ,LC ,UNPACK_IT ,COUNT_ONLY )
3686+ SUBROUTINE PACK_PARTICLE (NM ,OS ,LP ,LPC_INDEX ,RC ,IC ,LC ,UNPACK_IT ,COUNT_ONLY , CHECK_BOUNDS )
36833687
36843688USE COMP_OPERATORS, ONLY: EQUATE
36853689INTEGER , INTENT (IN ) :: NM,LPC_INDEX
3686- LOGICAL , INTENT (IN ) :: UNPACK_IT,COUNT_ONLY
3690+ LOGICAL , INTENT (IN ) :: UNPACK_IT,COUNT_ONLY,CHECK_BOUNDS
36873691INTEGER , INTENT (INOUT ) :: IC,RC,LC
36883692INTEGER :: BC_INDEX,OD_INDEX,B1_INDEX,B2_INDEX,BR_INDEX
36893693TYPE (LAGRANGIAN_PARTICLE_TYPE), POINTER :: LP
@@ -3742,7 +3746,7 @@ SUBROUTINE PACK_PARTICLE(NM,OS,LP,LPC_INDEX,RC,IC,LC,UNPACK_IT,COUNT_ONLY)
37423746! Boundary Coordinates
37433747
37443748IF (LPC% INCLUDE_BOUNDARY_COORD_TYPE) CALL PACK_BOUNDARY_COORD(NM,IC,RC,OS,BC_INDEX,UNPACK_IT,COUNT_ONLY)
3745- IF (LPC% INCLUDE_BOUNDARY_ONE_D_TYPE) CALL PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY)
3749+ IF (LPC% INCLUDE_BOUNDARY_ONE_D_TYPE) CALL PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY,CHECK_BOUNDS )
37463750IF (LPC% INCLUDE_BOUNDARY_PROP1_TYPE) CALL PACK_BOUNDARY_PROP1(NM,IC,RC,LC,OS,B1_INDEX,UNPACK_IT,COUNT_ONLY,LPC% SURF_INDEX)
37473751IF (LPC% INCLUDE_BOUNDARY_PROP2_TYPE) CALL PACK_BOUNDARY_PROP2(NM,IC,RC,OS,B2_INDEX,UNPACK_IT,COUNT_ONLY)
37483752IF (LPC% INCLUDE_BOUNDARY_RADIA_TYPE) CALL PACK_BOUNDARY_RADIA(NM,RC,OS,BR_INDEX,UNPACK_IT,COUNT_ONLY)
@@ -3760,15 +3764,15 @@ END SUBROUTINE PACK_PARTICLE
37603764! > \param LC Counter of logical variables
37613765! > \param UNPACK_IT Logical indicating whether the data is to be packed or unpacked
37623766! > \param COUNT_ONLY Logical indicating whether the aim is simply to count variables
3767+ ! > \param CHECK_BOUNDS Logical indicating whether to check the array bounds of the items being unpacked
37633768
3764- SUBROUTINE PACK_WALL (NM ,OS ,WC ,SURF_INDEX ,RC ,IC ,LC ,UNPACK_IT ,COUNT_ONLY )
3769+ SUBROUTINE PACK_WALL (NM ,OS ,WC ,SURF_INDEX ,RC ,IC ,LC ,UNPACK_IT ,COUNT_ONLY , CHECK_BOUNDS )
37653770
37663771USE COMP_OPERATORS, ONLY: EQUATE
37673772INTEGER , INTENT (IN ) :: NM,SURF_INDEX
3768- LOGICAL , INTENT (IN ) :: UNPACK_IT
3773+ LOGICAL , INTENT (IN ) :: UNPACK_IT,COUNT_ONLY,CHECK_BOUNDS
37693774INTEGER , INTENT (INOUT ) :: IC,RC,LC
37703775INTEGER :: BC_INDEX,OD_INDEX,B1_INDEX,B2_INDEX,BR_INDEX
3771- LOGICAL , INTENT (IN ) :: COUNT_ONLY
37723776TYPE (WALL_TYPE), POINTER :: WC
37733777TYPE (STORAGE_TYPE), POINTER :: OS
37743778TYPE (SURFACE_TYPE), POINTER :: SF
@@ -3803,7 +3807,7 @@ SUBROUTINE PACK_WALL(NM,OS,WC,SURF_INDEX,RC,IC,LC,UNPACK_IT,COUNT_ONLY)
38033807! Pack or unpack the appropriate derived type variables tied to this wall cell
38043808
38053809IF (SF% INCLUDE_BOUNDARY_COORD_TYPE) CALL PACK_BOUNDARY_COORD(NM,IC,RC,OS,BC_INDEX,UNPACK_IT,COUNT_ONLY)
3806- IF (SF% INCLUDE_BOUNDARY_ONE_D_TYPE) CALL PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY)
3810+ IF (SF% INCLUDE_BOUNDARY_ONE_D_TYPE) CALL PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY,CHECK_BOUNDS )
38073811IF (SF% INCLUDE_BOUNDARY_PROP1_TYPE) CALL PACK_BOUNDARY_PROP1(NM,IC,RC,LC,OS,B1_INDEX,UNPACK_IT,COUNT_ONLY,SURF_INDEX)
38083812IF (SF% INCLUDE_BOUNDARY_PROP2_TYPE) CALL PACK_BOUNDARY_PROP2(NM,IC,RC,OS,B2_INDEX,UNPACK_IT,COUNT_ONLY)
38093813IF (SF% INCLUDE_BOUNDARY_RADIA_TYPE) CALL PACK_BOUNDARY_RADIA(NM,RC,OS,BR_INDEX,UNPACK_IT,COUNT_ONLY)
@@ -3821,15 +3825,15 @@ END SUBROUTINE PACK_WALL
38213825! > \param LC Counter of logical variables
38223826! > \param UNPACK_IT Logical indicating whether the data is to be packed or unpacked
38233827! > \param COUNT_ONLY Logical indicating whether the aim is simply to count variables
3828+ ! > \param CHECK_BOUNDS Logical indicating whether to check the array bounds of the items being unpacked
38243829
3825- SUBROUTINE PACK_THIN_WALL (NM ,OS ,TW ,SURF_INDEX ,RC ,IC ,LC ,UNPACK_IT ,COUNT_ONLY )
3830+ SUBROUTINE PACK_THIN_WALL (NM ,OS ,TW ,SURF_INDEX ,RC ,IC ,LC ,UNPACK_IT ,COUNT_ONLY , CHECK_BOUNDS )
38263831
38273832USE COMP_OPERATORS, ONLY: EQUATE
38283833INTEGER , INTENT (IN ) :: NM,SURF_INDEX
3829- LOGICAL , INTENT (IN ) :: UNPACK_IT
3834+ LOGICAL , INTENT (IN ) :: UNPACK_IT,COUNT_ONLY,CHECK_BOUNDS
38303835INTEGER :: BC_INDEX,OD_INDEX
38313836INTEGER , INTENT (INOUT ) :: RC,IC,LC
3832- LOGICAL , INTENT (IN ) :: COUNT_ONLY
38333837TYPE (THIN_WALL_TYPE), POINTER :: TW
38343838TYPE (STORAGE_TYPE), POINTER :: OS
38353839TYPE (SURFACE_TYPE), POINTER :: SF
@@ -3858,7 +3862,7 @@ SUBROUTINE PACK_THIN_WALL(NM,OS,TW,SURF_INDEX,RC,IC,LC,UNPACK_IT,COUNT_ONLY)
38583862! Pack or unpack the appropriate derived type variables tied to this wall cell
38593863
38603864IF (SF% INCLUDE_BOUNDARY_COORD_TYPE) CALL PACK_BOUNDARY_COORD(NM,IC,RC,OS,BC_INDEX,UNPACK_IT,COUNT_ONLY)
3861- IF (SF% INCLUDE_BOUNDARY_ONE_D_TYPE) CALL PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY)
3865+ IF (SF% INCLUDE_BOUNDARY_ONE_D_TYPE) CALL PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY,CHECK_BOUNDS )
38623866
38633867END SUBROUTINE PACK_THIN_WALL
38643868
@@ -3873,12 +3877,13 @@ END SUBROUTINE PACK_THIN_WALL
38733877! > \param LC Counter of logical variables
38743878! > \param UNPACK_IT Logical indicating whether the data is to be packed or unpacked
38753879! > \param COUNT_ONLY Logical indicating whether the aim is simply to count variables
3880+ ! > \param CHECK_BOUNDS Logical indicating whether to check the array bounds of the items being unpacked
38763881
3877- SUBROUTINE PACK_CFACE (NM ,OS ,CFA ,SURF_INDEX ,RC ,IC ,LC ,UNPACK_IT ,COUNT_ONLY )
3882+ SUBROUTINE PACK_CFACE (NM ,OS ,CFA ,SURF_INDEX ,RC ,IC ,LC ,UNPACK_IT ,COUNT_ONLY , CHECK_BOUNDS )
38783883
38793884USE COMP_OPERATORS, ONLY: EQUATE
38803885INTEGER , INTENT (IN ) :: NM,SURF_INDEX
3881- LOGICAL , INTENT (IN ) :: UNPACK_IT,COUNT_ONLY
3886+ LOGICAL , INTENT (IN ) :: UNPACK_IT,COUNT_ONLY,CHECK_BOUNDS
38823887INTEGER , INTENT (INOUT ) :: RC,IC,LC
38833888INTEGER :: BC_INDEX,OD_INDEX,B1_INDEX,B2_INDEX,BR_INDEX
38843889TYPE (CFACE_TYPE), POINTER :: CFA
@@ -3915,7 +3920,7 @@ SUBROUTINE PACK_CFACE(NM,OS,CFA,SURF_INDEX,RC,IC,LC,UNPACK_IT,COUNT_ONLY)
39153920! Assign and initialize logicals
39163921
39173922IF (SF% INCLUDE_BOUNDARY_COORD_TYPE) CALL PACK_BOUNDARY_COORD(NM,IC,RC,OS,BC_INDEX,UNPACK_IT,COUNT_ONLY)
3918- IF (SF% INCLUDE_BOUNDARY_ONE_D_TYPE) CALL PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY)
3923+ IF (SF% INCLUDE_BOUNDARY_ONE_D_TYPE) CALL PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY,CHECK_BOUNDS )
39193924IF (SF% INCLUDE_BOUNDARY_PROP1_TYPE) CALL PACK_BOUNDARY_PROP1(NM,IC,RC,LC,OS,B1_INDEX,UNPACK_IT,COUNT_ONLY,SURF_INDEX)
39203925IF (SF% INCLUDE_BOUNDARY_PROP2_TYPE) CALL PACK_BOUNDARY_PROP2(NM,IC,RC,OS,B2_INDEX,UNPACK_IT,COUNT_ONLY)
39213926IF (SF% INCLUDE_BOUNDARY_RADIA_TYPE) CALL PACK_BOUNDARY_RADIA(NM,RC,OS,BR_INDEX,UNPACK_IT,COUNT_ONLY)
@@ -3976,14 +3981,14 @@ END SUBROUTINE PACK_BOUNDARY_COORD
39763981! > \param OD_INDEX Index of the BOUNDARY_ONE_D array
39773982! > \param UNPACK_IT Flag indicating whether the data is to be packed into the 1-D array or unpacked from it
39783983! > \param COUNT_ONLY Flag signifying that only a variable count is to be done; no packing
3984+ ! > \param CHECK_BOUNDS Logical indicating whether to check the array bounds of the items being unpacked
39793985
3980- SUBROUTINE PACK_BOUNDARY_ONE_D (NM ,IC ,RC ,LC ,OS ,OD_INDEX ,UNPACK_IT ,COUNT_ONLY )
3986+ SUBROUTINE PACK_BOUNDARY_ONE_D (NM ,IC ,RC ,LC ,OS ,OD_INDEX ,UNPACK_IT ,COUNT_ONLY , CHECK_BOUNDS )
39813987
3982- USE GLOBAL_CONSTANTS, ONLY: CHECK_BOUNDARY_ONE_D_ARRAYS
39833988USE COMP_OPERATORS, ONLY: EQUATE
39843989INTEGER , INTENT (IN ) :: NM,OD_INDEX
39853990INTEGER , INTENT (INOUT ) :: IC,RC,LC
3986- LOGICAL , INTENT (IN ) :: UNPACK_IT,COUNT_ONLY
3991+ LOGICAL , INTENT (IN ) :: UNPACK_IT,COUNT_ONLY,CHECK_BOUNDS
39873992INTEGER :: I1,NN,NL
39883993TYPE (BOUNDARY_ONE_D_TYPE), POINTER :: ONE_D
39893994TYPE (STORAGE_TYPE), POINTER :: OS
@@ -4006,7 +4011,7 @@ SUBROUTINE PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY)
40064011
40074012! Check if the array bounds are appropriate
40084013
4009- IF (UNPACK_IT .AND. CHECK_BOUNDARY_ONE_D_ARRAYS ) CALL REALLOCATE_BOUNDARY_ONE_D(ONE_D)
4014+ IF (UNPACK_IT .AND. CHECK_BOUNDS ) CALL REALLOCATE_BOUNDARY_ONE_D(ONE_D)
40104015
40114016DO NL= 1 ,ONE_D% N_LAYERS
40124017 IC= IC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% INTEGERS(IC) , ONE_D% N_LAYER_CELLS(NL) , UNPACK_IT)
0 commit comments