Skip to content

Commit ca9b187

Browse files
committed
Return null ptrs from cleanup routines in hco_arr_mod, hco_tidx_mod
src/Core/hco_arr_mod.F90 - Set Arr and ArrVec to null before exiting cleanup routines src/Core/hco_tidx_mod.F90 - Set individual fields of AlltIDx to NULL after deallocating - Update comments Signed-off-by: Bob Yantosca <yantosca@seas.harvard.edu>
1 parent f0dc3db commit ca9b187

File tree

2 files changed

+39
-1
lines changed

2 files changed

+39
-1
lines changed

src/Core/hco_arr_mod.F90

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1638,6 +1638,9 @@ SUBROUTINE HCO_ArrCleanup_2D_Hp( Arr, DeepClean )
16381638
DEALLOCATE( Arr )
16391639
ENDIF
16401640

1641+
! Make sure we return a null pointer
1642+
Arr => NULL()
1643+
16411644
END SUBROUTINE HCO_ArrCleanup_2D_Hp
16421645
!EOC
16431646
!------------------------------------------------------------------------------
@@ -1685,6 +1688,9 @@ SUBROUTINE HCO_ArrCleanup_2D_Sp( Arr, DeepClean )
16851688
DEALLOCATE( Arr )
16861689
ENDIF
16871690

1691+
! Make sure we return a null pointer
1692+
Arr => NULL()
1693+
16881694
END SUBROUTINE HCO_ArrCleanup_2D_Sp
16891695
!EOC
16901696
!------------------------------------------------------------------------------
@@ -1732,6 +1738,9 @@ SUBROUTINE HCO_ArrCleanup_2D_I( Arr, DeepClean )
17321738
DEALLOCATE( Arr )
17331739
ENDIF
17341740

1741+
! Make sure we return a null pointer
1742+
Arr => NULL()
1743+
17351744
END SUBROUTINE HCO_ArrCleanup_2D_I
17361745
!EOC
17371746
!------------------------------------------------------------------------------
@@ -1778,6 +1787,10 @@ SUBROUTINE HCO_ArrCleanup_3D_Hp( Arr, DeepClean )
17781787
CALL HCO_ValCleanup( Arr%Val, Arr%Alloc, DeepClean=DC )
17791788
DEALLOCATE( Arr )
17801789
ENDIF
1790+
1791+
! Make sure we return a null pointer
1792+
Arr => NULL()
1793+
17811794
END SUBROUTINE HCO_ArrCleanup_3D_Hp
17821795
!EOC
17831796
!------------------------------------------------------------------------------
@@ -1825,6 +1838,9 @@ SUBROUTINE HCO_ArrCleanup_3D_Sp( Arr, DeepClean )
18251838
DEALLOCATE( Arr )
18261839
ENDIF
18271840

1841+
! Make sure we return a null pointer
1842+
Arr => NULL()
1843+
18281844
END SUBROUTINE HCO_ArrCleanup_3D_Sp
18291845
!EOC
18301846
!------------------------------------------------------------------------------
@@ -1876,6 +1892,9 @@ SUBROUTINE HCO_ArrVecCleanup_2D_Hp( ArrVec, DeepClean )
18761892

18771893
ENDIF
18781894

1895+
! Make sure we return a null pointer
1896+
ArrVec => NULL()
1897+
18791898
END SUBROUTINE HCO_ArrVecCleanup_2D_Hp
18801899
!EOC
18811900
!------------------------------------------------------------------------------
@@ -1927,6 +1946,9 @@ SUBROUTINE HCO_ArrVecCleanup_2D_Sp( ArrVec, DeepClean )
19271946

19281947
ENDIF
19291948

1949+
! Make sure we return a null pointer
1950+
ArrVec => NULL()
1951+
19301952
END SUBROUTINE HCO_ArrVecCleanup_2D_Sp
19311953
!EOC
19321954
!------------------------------------------------------------------------------
@@ -1978,6 +2000,9 @@ SUBROUTINE HCO_ArrVecCleanup_3D_Hp( ArrVec, DeepClean )
19782000

19792001
ENDIF
19802002

2003+
! Make sure we return a null pointer
2004+
ArrVec => NULL()
2005+
19812006
END SUBROUTINE HCO_ArrVecCleanup_3D_Hp
19822007
!EOC
19832008
!------------------------------------------------------------------------------
@@ -2029,6 +2054,9 @@ SUBROUTINE HCO_ArrVecCleanup_3D_Sp( ArrVec, DeepClean )
20292054

20302055
ENDIF
20312056

2057+
! Make sure we return a null pointer
2058+
ArrVec => NULL()
2059+
20322060
END SUBROUTINE HCO_ArrVecCleanup_3D_Sp
20332061
!EOC
20342062
!------------------------------------------------------------------------------

src/Core/hco_tidx_mod.F90

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -285,6 +285,7 @@ SUBROUTINE tIDx_Cleanup( AlltIDx )
285285
! tIDx_Cleanup begins here!
286286
!======================================================================
287287

288+
! Deallocate fields
288289
IF ( ASSOCIATED( AlltIDx ) ) THEN
289290

290291
IF ( ASSOCIATED(AlltIDx%CONSTANT) ) THEN
@@ -307,9 +308,18 @@ SUBROUTINE tIDx_Cleanup( AlltIDx )
307308
DEALLOCATE(AlltIDx%MONTHLY)
308309
ENDIF
309310

310-
! Also deallocate AlltIDx pointer
311+
! Nullify fields
312+
AlltIDx%CONSTANT => NULL()
313+
AlltIDx%HOURLY => NULL()
314+
AlltIDx%HOURLY_GRID => NULL()
315+
AlltIDx%WEEKDAY => NULL()
316+
AlltIDx%MONTHLY => NULL()
317+
318+
! Deallocate container
311319
DEALLOCATE( AlltIDx )
312320
ENDIF
321+
322+
! Make sure we return a null pointer
313323
AlltIDx => NULL()
314324

315325
END SUBROUTINE tIDx_Cleanup

0 commit comments

Comments
 (0)