diff --git a/src/Core/hco_arr_mod.F90 b/src/Core/hco_arr_mod.F90 index c26de23b..da33e73b 100644 --- a/src/Core/hco_arr_mod.F90 +++ b/src/Core/hco_arr_mod.F90 @@ -1638,6 +1638,9 @@ SUBROUTINE HCO_ArrCleanup_2D_Hp( Arr, DeepClean ) DEALLOCATE( Arr ) ENDIF + ! Make sure we return a null pointer + Arr => NULL() + END SUBROUTINE HCO_ArrCleanup_2D_Hp !EOC !------------------------------------------------------------------------------ @@ -1685,6 +1688,9 @@ SUBROUTINE HCO_ArrCleanup_2D_Sp( Arr, DeepClean ) DEALLOCATE( Arr ) ENDIF + ! Make sure we return a null pointer + Arr => NULL() + END SUBROUTINE HCO_ArrCleanup_2D_Sp !EOC !------------------------------------------------------------------------------ @@ -1732,6 +1738,9 @@ SUBROUTINE HCO_ArrCleanup_2D_I( Arr, DeepClean ) DEALLOCATE( Arr ) ENDIF + ! Make sure we return a null pointer + Arr => NULL() + END SUBROUTINE HCO_ArrCleanup_2D_I !EOC !------------------------------------------------------------------------------ @@ -1778,6 +1787,10 @@ SUBROUTINE HCO_ArrCleanup_3D_Hp( Arr, DeepClean ) CALL HCO_ValCleanup( Arr%Val, Arr%Alloc, DeepClean=DC ) DEALLOCATE( Arr ) ENDIF + + ! Make sure we return a null pointer + Arr => NULL() + END SUBROUTINE HCO_ArrCleanup_3D_Hp !EOC !------------------------------------------------------------------------------ @@ -1825,6 +1838,9 @@ SUBROUTINE HCO_ArrCleanup_3D_Sp( Arr, DeepClean ) DEALLOCATE( Arr ) ENDIF + ! Make sure we return a null pointer + Arr => NULL() + END SUBROUTINE HCO_ArrCleanup_3D_Sp !EOC !------------------------------------------------------------------------------ @@ -1876,6 +1892,9 @@ SUBROUTINE HCO_ArrVecCleanup_2D_Hp( ArrVec, DeepClean ) ENDIF + ! Make sure we return a null pointer + ArrVec => NULL() + END SUBROUTINE HCO_ArrVecCleanup_2D_Hp !EOC !------------------------------------------------------------------------------ @@ -1927,6 +1946,9 @@ SUBROUTINE HCO_ArrVecCleanup_2D_Sp( ArrVec, DeepClean ) ENDIF + ! Make sure we return a null pointer + ArrVec => NULL() + END SUBROUTINE HCO_ArrVecCleanup_2D_Sp !EOC !------------------------------------------------------------------------------ @@ -1978,6 +2000,9 @@ SUBROUTINE HCO_ArrVecCleanup_3D_Hp( ArrVec, DeepClean ) ENDIF + ! Make sure we return a null pointer + ArrVec => NULL() + END SUBROUTINE HCO_ArrVecCleanup_3D_Hp !EOC !------------------------------------------------------------------------------ @@ -2029,6 +2054,9 @@ SUBROUTINE HCO_ArrVecCleanup_3D_Sp( ArrVec, DeepClean ) ENDIF + ! Make sure we return a null pointer + ArrVec => NULL() + END SUBROUTINE HCO_ArrVecCleanup_3D_Sp !EOC !------------------------------------------------------------------------------ diff --git a/src/Core/hco_tidx_mod.F90 b/src/Core/hco_tidx_mod.F90 index 67745c98..9575863a 100644 --- a/src/Core/hco_tidx_mod.F90 +++ b/src/Core/hco_tidx_mod.F90 @@ -285,6 +285,7 @@ SUBROUTINE tIDx_Cleanup( AlltIDx ) ! tIDx_Cleanup begins here! !====================================================================== + ! Deallocate fields IF ( ASSOCIATED( AlltIDx ) ) THEN IF ( ASSOCIATED(AlltIDx%CONSTANT) ) THEN @@ -307,9 +308,18 @@ SUBROUTINE tIDx_Cleanup( AlltIDx ) DEALLOCATE(AlltIDx%MONTHLY) ENDIF - ! Also deallocate AlltIDx pointer + ! Nullify fields + AlltIDx%CONSTANT => NULL() + AlltIDx%HOURLY => NULL() + AlltIDx%HOURLY_GRID => NULL() + AlltIDx%WEEKDAY => NULL() + AlltIDx%MONTHLY => NULL() + + ! Deallocate container DEALLOCATE( AlltIDx ) ENDIF + + ! Make sure we return a null pointer AlltIDx => NULL() END SUBROUTINE tIDx_Cleanup