@@ -659,6 +659,7 @@ MODULE COMP_OPERATORS
659659 MODULE PROCEDURE EQUATE_INTEGERS
660660 MODULE PROCEDURE EQUATE_INTEGER_VECTORS
661661 MODULE PROCEDURE EQUATE_LOGICALS
662+ MODULE PROCEDURE EQUATE_LOGICAL_VECTORS
662663END INTERFACE
663664
664665CONTAINS
@@ -715,6 +716,16 @@ SUBROUTINE EQUATE_LOGICALS(A,B,SWAP)
715716ENDIF
716717END SUBROUTINE EQUATE_LOGICALS
717718
719+ SUBROUTINE EQUATE_LOGICAL_VECTORS (A ,B ,SWAP )
720+ LOGICAL , INTENT (INOUT ), DIMENSION (:) :: A,B
721+ LOGICAL , INTENT (IN ) :: SWAP
722+ IF (SWAP) THEN
723+ B = A
724+ ELSE
725+ A = B
726+ ENDIF
727+ END SUBROUTINE EQUATE_LOGICAL_VECTORS
728+
718729END MODULE COMP_OPERATORS
719730
720731
@@ -1787,61 +1798,38 @@ SUBROUTINE PACK_BOUNDARY_ONE_D(NM,IC,RC,LC,OS,OD_INDEX,UNPACK_IT,COUNT_ONLY)
17871798ENDDO
17881799
17891800DO NN= 1 ,ONE_D% N_MATL
1790- IC= IC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% INTEGERS(IC) , ONE_D% MATL_INDEX(NN) , UNPACK_IT)
1791- ENDDO
1792-
1793- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% PYROLYSIS_DEPTH , UNPACK_IT)
1794-
1795- I1 = RC+1 ; RC = I1 + ONE_D% N_MATL - 1
1796- IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% M_DOT_S_PP(1 :RC- I1+1 ) , UNPACK_IT)
1797-
1798- I1 = RC+1 ; RC = I1 + ONE_D% N_CELLS_MAX
1799- IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% X(0 :RC- I1) , UNPACK_IT)
1800-
1801- I1 = RC+1 ; RC = I1 + ONE_D% N_CELLS_OLD - 1
1802- IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% DX_OLD(1 :RC- I1+1 ) , UNPACK_IT)
1803-
1804- I1 = RC+1 ; RC = I1 + ONE_D% N_CELLS_MAX + 1
1805- IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% TMP(0 :RC- I1) , UNPACK_IT)
1806-
1807- I1 = RC+1 ; RC = I1 + ONE_D% N_CELLS_MAX + 1
1808- IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% DELTA_TMP(0 :RC- I1) , UNPACK_IT)
1809-
1810- DO NL= 1 ,ONE_D% N_LAYERS
1811- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% LAYER_THICKNESS(NL) , UNPACK_IT)
1812- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% LAYER_THICKNESS_OLD(NL) , UNPACK_IT)
1813- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% MINIMUM_LAYER_THICKNESS(NL) , UNPACK_IT)
1814- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% MIN_DIFFUSIVITY(NL) , UNPACK_IT)
1815- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% DDSUM(NL) , UNPACK_IT)
1816- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% SMALLEST_CELL_SIZE(NL) , UNPACK_IT)
1817- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% STRETCH_FACTOR(NL) , UNPACK_IT)
1818- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% HEAT_SOURCE(NL) , UNPACK_IT)
1819- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% CELL_SIZE_FACTOR(NL) , UNPACK_IT)
1820- RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) , ONE_D% CELL_SIZE(NL) , UNPACK_IT)
1821- LC= LC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% LOGICALS(LC) , ONE_D% HT3D_LAYER(NL) , UNPACK_IT)
1801+ IC= IC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% INTEGERS(IC) , ONE_D% MATL_INDEX(NN) , UNPACK_IT)
18221802ENDDO
18231803
1824- LC= LC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% LOGICALS(LC) , ONE_D% INTERNAL_RADIATION , UNPACK_IT)
1825-
1826- I1 = RC+1 ; RC = I1 + ONE_D% N_CELLS_MAX - 1
1827- IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% RHO_C_S(1 :RC- I1+1 ) , UNPACK_IT)
1828-
1829- I1 = RC+1 ; RC = I1 + ONE_D% N_CELLS_MAX + 1
1830- IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% K_S(0 :RC- I1) , UNPACK_IT)
1831-
1832- I1 = RC+1 ; RC = I1 + ONE_D% N_LPC - 1
1833- IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% PART_MASS(1 :RC- I1+1 ) , UNPACK_IT)
1834-
1835- I1 = RC+1 ; RC = I1 + ONE_D% N_LPC - 1
1836- IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% PART_ENTHALPY(1 :RC- I1+1 ) , UNPACK_IT)
1804+ RC= RC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(RC) ,ONE_D% PYROLYSIS_DEPTH , UNPACK_IT)
1805+ I1= RC+1 ; RC= I1+ ONE_D% N_MATL-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% M_DOT_S_PP(1 :RC- I1+1 ) , UNPACK_IT)
1806+ I1= RC+1 ; RC= I1+ ONE_D% N_CELLS_MAX ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% X(0 :RC- I1) , UNPACK_IT)
1807+ I1= RC+1 ; RC= I1+ ONE_D% N_CELLS_OLD-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% DX_OLD(1 :RC- I1+1 ) , UNPACK_IT)
1808+ I1= RC+1 ; RC= I1+ ONE_D% N_CELLS_MAX+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% TMP(0 :RC- I1) , UNPACK_IT)
1809+ I1= RC+1 ; RC= I1+ ONE_D% N_CELLS_MAX+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% DELTA_TMP(0 :RC- I1) , UNPACK_IT)
1810+ I1= RC+1 ; RC= I1+ ONE_D% N_CELLS_MAX-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% RHO_C_S(1 :RC- I1+1 ) , UNPACK_IT)
1811+ I1= RC+1 ; RC= I1+ ONE_D% N_CELLS_MAX+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% K_S(0 :RC- I1) , UNPACK_IT)
1812+
1813+ 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)
1814+ 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)
1815+ 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)
1816+ 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)
1817+ 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)
1818+ 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)
1819+ I1= RC+1 ; RC= I1+ ONE_D% N_LAYERS-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% STRETCH_FACTOR(1 :RC- I1+1 ) , UNPACK_IT)
1820+ I1= RC+1 ; RC= I1+ ONE_D% N_LAYERS-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% HEAT_SOURCE(1 :RC- I1+1 ) , UNPACK_IT)
1821+ I1= RC+1 ; RC= I1+ ONE_D% N_LAYERS-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% CELL_SIZE_FACTOR(1 :RC- I1+1 ) , UNPACK_IT)
1822+ I1= RC+1 ; RC= I1+ ONE_D% N_LAYERS-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% CELL_SIZE(1 :RC- I1+1 ) , UNPACK_IT)
1823+ I1= RC+1 ; RC= I1+ ONE_D% N_LPC-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% PART_MASS(1 :RC- I1+1 ) , UNPACK_IT)
1824+ I1= RC+1 ; RC= I1+ ONE_D% N_LPC-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC),ONE_D% PART_ENTHALPY(1 :RC- I1+1 ) , UNPACK_IT)
1825+
1826+ LC= LC+1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% LOGICALS(LC) , ONE_D% INTERNAL_RADIATION , UNPACK_IT)
1827+ I1= LC+1 ; LC= I1+ ONE_D% N_LAYERS-1 ; IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% LOGICALS(I1:LC) , ONE_D% HT3D_LAYER(1 :LC- I1+1 ) , UNPACK_IT)
18371828
18381829DO NN= 1 ,ONE_D% N_MATL
1839- I1 = RC+1 ; RC = I1 + ONE_D% N_LAYERS - 1
1830+ I1= RC+1 ; RC= I1 + ONE_D% N_LAYERS- 1
18401831 IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% MATL_COMP(NN)% MASS_FRACTION(1 :RC- I1+1 ) , UNPACK_IT)
1841- ENDDO
1842-
1843- DO NN= 1 ,ONE_D% N_MATL
1844- I1 = RC+1 ; RC = I1 + (ONE_D% N_CELLS_MAX+2 ) - 1
1832+ I1= RC+1 ; RC= I1+ ONE_D% N_CELLS_MAX+1
18451833 IF (.NOT. COUNT_ONLY) CALL EQUATE(OS% REALS(I1:RC) , ONE_D% MATL_COMP(NN)% RHO(0 :RC- I1) , UNPACK_IT)
18461834ENDDO
18471835
@@ -1866,8 +1854,8 @@ SUBROUTINE REALLOCATE_BOUNDARY_ONE_D(ONE_D)
18661854IF (ALLOCATED (ONE_D% LAYER_THICKNESS)) DEALLOCATE (ONE_D% LAYER_THICKNESS) ; ALLOCATE (ONE_D% LAYER_THICKNESS(ONE_D% N_LAYERS))
18671855IF (ALLOCATED (ONE_D% LAYER_THICKNESS_OLD)) DEALLOCATE (ONE_D% LAYER_THICKNESS_OLD)
18681856 ALLOCATE (ONE_D% LAYER_THICKNESS_OLD(ONE_D% N_LAYERS))
1869- IF (ALLOCATED (ONE_D% MINIMUM_LAYER_THICKNESS )) DEALLOCATE (ONE_D% MINIMUM_LAYER_THICKNESS )
1870- ALLOCATE (ONE_D% MINIMUM_LAYER_THICKNESS (ONE_D% N_LAYERS))
1857+ IF (ALLOCATED (ONE_D% MIN_LAYER_THICKNESS )) DEALLOCATE (ONE_D% MIN_LAYER_THICKNESS )
1858+ ALLOCATE (ONE_D% MIN_LAYER_THICKNESS (ONE_D% N_LAYERS))
18711859IF (ALLOCATED (ONE_D% HT3D_LAYER)) DEALLOCATE (ONE_D% HT3D_LAYER) ; ALLOCATE (ONE_D% HT3D_LAYER(ONE_D% N_LAYERS))
18721860IF (ALLOCATED (ONE_D% MIN_DIFFUSIVITY)) DEALLOCATE (ONE_D% MIN_DIFFUSIVITY) ; ALLOCATE (ONE_D% MIN_DIFFUSIVITY(ONE_D% N_LAYERS))
18731861IF (ALLOCATED (ONE_D% RHO_C_S)) DEALLOCATE (ONE_D% RHO_C_S) ; ALLOCATE (ONE_D% RHO_C_S(ONE_D% N_CELLS_MAX))
@@ -1942,7 +1930,7 @@ SUBROUTINE INITIALIZE_BOUNDARY_ONE_D(NM,OD_INDEX,SURF_INDEX)
19421930ENDIF
19431931ONE_D% DELTA_TMP = 0._EB
19441932ONE_D% LAYER_THICKNESS(1 :ONE_D% N_LAYERS) = SF% LAYER_THICKNESS(1 :SF% N_LAYERS)
1945- ONE_D% MINIMUM_LAYER_THICKNESS (1 :ONE_D% N_LAYERS) = SF% MINIMUM_LAYER_THICKNESS (1 :SF% N_LAYERS)
1933+ ONE_D% MIN_LAYER_THICKNESS (1 :ONE_D% N_LAYERS) = SF% MIN_LAYER_THICKNESS (1 :SF% N_LAYERS)
19461934ONE_D% HT3D_LAYER(1 :ONE_D% N_LAYERS) = SF% HT3D_LAYER(1 :SF% N_LAYERS)
19471935ONE_D% MIN_DIFFUSIVITY(1 :ONE_D% N_LAYERS) = SF% MIN_DIFFUSIVITY(1 :SF% N_LAYERS)
19481936ONE_D% STRETCH_FACTOR(1 :ONE_D% N_LAYERS) = SF% STRETCH_FACTOR(1 :SF% N_LAYERS)
0 commit comments