! $Id: cleanup.f,v 1.18 2007/11/05 16:16:14 bmy Exp $
SUBROUTINE CLEANUP 4,112
!
!******************************************************************************
! Subroutine CLEANUP deallocates the memory assigned to dynamic allocatable
! arrays just before exiting the GEOS-CHEM model. (bmy, 11/29/99, 10/2/07)
!
! NOTES:
! (1 ) CLEANUP is written in Fixed-Format F90.
! (2 ) Now calls CLEANUP_WETSCAV, which deallocates arrays from
! "wetscav_mod.f". (bmy, 3/9/00)
! (3 ) Add call to CLEANUP_SULFATE, which deallocates arrays from
! "sulfate_mod.f". Also now deallocate ND32 arrays. (bmy, 6/6/00)
! (4 ) Add call to CLEANUP_DAO, which deallocates arrays from "dao_mod.f".
! (bmy, 6/26/00)
! (5 ) Add call to CLEANUP_TAGGED_CO and CLEANUP_COMODE, which deallocates
! arrays from and "comode_mod.f". (bmy, 7/19/00)
! (6 ) Add call to CLEANUP_GLOBAL_OH and CLEANUP_COMODE, which deallocates
! arrays from "global_oh_mod.f". (bmy, 7/28/00)
! (7 ) Add calls to CLEANUP_BIOMASS and CLEANUP_BIOFUEL, which deallocates
! arrays from "biomass_mod.f" and "biofuel_mod.f". Also deallocate
! the AD32_bf array for the biofuel NOx diagnostic. (bmy, 9/12/00)
! (8 ) Add call to CLEANUP_DIAG51, to deallocate module arrays from
! "diag51_mod.f" (bmy, 11/29/00)
! (9 ) Removed obsolete code from 11/29/00 (bmy, 12/21/00)
! (10) Add call to CLEANUP_CH4, to deallocate module arrays from
! "global_ch4_mod.f" (bmy, 1/16/01)
! (11) Now deallocate the AD34 array. Also updated comments and
! made some cosmetic changes. (bmy, 3/15/01)
! (12) Now deallocate the AD12 array (bdf, bmy, 6/15/01)
! (13) Add call to CLEANUP_ACETONE, to deallocate module arrays from
! "acetone_mod.f" Also deallocate AD11 array. Also deallocate
! variables from dao_mod.f last, to try to avoid bus error on
! SGI (bmy, 8/3/01)
! (14) Added call to CLEANUP_UVALBEDO from "uvalbedo_mod.f". Also removed
! obsolete code from 9/01. Also only include references to CLEANUP_*
! subroutines in other modules for clarity. (bmy, 1/15/02)
! (15) Added call to CLEANUP_C2H6 from "c2h6_mod.f" (bmy, 1/25/02)
! (16) Added call to CLEANUP_AIRCRAFT_NOX from "aircraft_nox_mod.f"
! (bmy, 2/14/02)
! (17) Now deallocate CTNO2, CTHO2, LTNO2, LTHO2 arrays (rvm, bmy, 2/27/02)
! (18) Now reference CLEANUP_PLANEFLIGHT from "planeflight_mod.f".
! Now also deallocate AD01 and AD02 arrays. (mje, bmy, 8/7/02)
! (19) Now reference cleanup routines from "global_nox_mod.f",
! "global_hno3_mod.f", "global_no3_mod.f", "drydep_mod.f", and
! "rpmares_mod.f". (bmy, 12/16/02)
! (20) Now reference cleanup routine from "transport_mod.f" (bmy, 2/10/03)
! (21) Now reference cleanup routine from "pjc_pfix_mod.f" and
! "tpcore_fvdas_mod.f90". (bmy, 5/9/03)
! (22) Now reference cleanup routine from "toms_mod.f" (bmy, 7/14/03)
! (23) Now reference cleanup routine from "carbon_mod.f", "dust_mod.f", and
! "dust_dead_mod.f". (bmy, 7/14/03)
! (23) Now references cleanup routine from "lightning__nox_mod.f"
! (bmy, 4/14/04)
! (24) Now references cleanup routine from "seasalt_mod.f" (bmy, 4/26/04)
! (25) Now references cleanup routines from new modules (bmy, 7/20/04)
! (26) Now calls cleanup routine from "epa_nei_mod.f" (bmy, 11/5/04)
! (27) Now call CLEANUP_MERCURY from "mercury_mod.f" (eck, bmy, 12/7/04)
! (28) Now call CLEANUP_OCEAN_MERCURY from "ocean_mercury_mod.f". Also
! reordered the calling sequence. (sas, bmy, 1/21/05)
! (29) Now call CLEANUP_PBL_MIX from "pbl_mix_mod.f". Now call CLEANUP_DIAG41
! from "diag41_mod.f". (bmy, 2/17/05)
! (30) Now calls CLEANUP_HCN_CH3CN from "hcn_ch3cn_mod.f (bmy, 6/23/05)
! (31) Now calls CLEANUP_DIAG04, CLEANUP_CO2, and CLEANUP_TROPOPAUSE
! (bmy, 8/15/05)
! (32) Now calls CLEANUP_LAI from "lai_mod.f", CLEANUP_MEGAN from
! "megan_mod.f" and CLEANUP_REGRID_1x1 from "regrid_1x1_mod.f"
! (tmf, bdf, bmy, 10/24/05)
! (33) Now calls CLEANUP_EMEP from "emep_mod.f" (bdf, bmy, 11/1/05)
! (34) Now calls CLEANUP_GC_BIOMASS and CLEANUP_GFED2_BIOMASS (bmy, 4/5/06)
! (35) Now calls CLEANUP_DIAG56 from "diag56_mod.f" and
! CLEANUP_LIGHTNING_NOX_NL from "lightning_nox_nl_mod.f"
! (ltm, bmy, 5/5/06)
! (36) Now references CLEANUP_BRAVO from "bravo_mod.f" and CLEANUP_EDGAR
! from "edgar_mod.f" (bmy, 7/6/06)
! (37) Now calls CLEANUP_H2_HD from "h2_hd_mod.f" and CLEANUP_GLOBAL_O1D
! from "global_o1d_mod.f". Remove call to CLEANUP_LIGHTNING_NOx_NL
! from "lightning_nox_nl_mod.f (hup, phs, bmy, 10/2/07)
!******************************************************************************
!
! References to F90 modules
USE ACETONE_MOD
, ONLY : CLEANUP_ACETONE
USE AEROSOL_MOD
, ONLY : CLEANUP_AEROSOL
USE AIRCRAFT_NOX_MOD
, ONLY : CLEANUP_AIRCRAFT_NOX
USE BIOMASS_MOD
, ONLY : CLEANUP_BIOMASS
USE BIOFUEL_MOD
, ONLY : CLEANUP_BIOFUEL
USE BRAVO_MOD
, ONLY : CLEANUP_BRAVO
USE C2H6_MOD
, ONLY : CLEANUP_C2H6
USE CARBON_MOD
, ONLY : CLEANUP_CARBON
USE CO2_MOD
, ONLY : CLEANUP_CO2
USE COMODE_MOD
, ONLY : CLEANUP_COMODE
USE DAO_MOD
, ONLY : CLEANUP_DAO
USE DIAG_MOD
, ONLY : CLEANUP_DIAG
USE DIAG03_MOD
, ONLY : CLEANUP_DIAG03
USE DIAG04_MOD
, ONLY : CLEANUP_DIAG04
USE DIAG41_MOD
, ONLY : CLEANUP_DIAG41
USE DIAG50_MOD
, ONLY : CLEANUP_DIAG50
USE DIAG51_MOD
, ONLY : CLEANUP_DIAG51
USE DIAG_OH_MOD
, ONLY : CLEANUP_DIAG_OH
USE DIAG_PL_MOD
, ONLY : CLEANUP_DIAG_PL
USE DRYDEP_MOD
, ONLY : CLEANUP_DRYDEP
USE DUST_MOD
, ONLY : CLEANUP_DUST
USE DUST_DEAD_MOD
, ONLY : CLEANUP_DUST_DEAD
USE EDGAR_MOD
, ONLY : CLEANUP_EDGAR
USE EMEP_MOD
, ONLY : CLEANUP_EMEP
USE EPA_NEI_MOD
, ONLY : CLEANUP_EPA_NEI
USE ERROR_MOD
, ONLY : DEBUG_MSG
USE GC_BIOMASS_MOD
, ONLY : CLEANUP_GC_BIOMASS
USE GFED2_BIOMASS_MOD
, ONLY : CLEANUP_GFED2_BIOMASS
USE GLOBAL_CH4_MOD
, ONLY : CLEANUP_GLOBAL_CH4
USE GLOBAL_HNO3_MOD
, ONLY : CLEANUP_GLOBAL_HNO3
USE GLOBAL_NO3_MOD
, ONLY : CLEANUP_GLOBAL_NO3
USE GLOBAL_NOX_MOD
, ONLY : CLEANUP_GLOBAL_NOX
USE GLOBAL_O1D_MOD
, ONLY : CLEANUP_GLOBAL_O1D
USE GLOBAL_OH_MOD
, ONLY : CLEANUP_GLOBAL_OH
USE H2_HD_MOD
, ONLY : CLEANUP_H2_HD
USE HCN_CH3CN_MOD
, ONLY : CLEANUP_HCN_CH3CN
USE LAI_MOD
, ONLY : CLEANUP_LAI
USE LIGHTNING_NOX_MOD
, ONLY : CLEANUP_LIGHTNING_NOX
!-------------------------------------------------------------------
! Prior to 10/2/07:
!USE LIGHTNING_NOX_NL_MOD, ONLY : CLEANUP_LIGHTNING_NOX_NL
!-------------------------------------------------------------------
USE MEGAN_MOD
, ONLY : CLEANUP_MEGAN
USE MERCURY_MOD
, ONLY : CLEANUP_MERCURY
USE OCEAN_MERCURY_MOD
, ONLY : CLEANUP_OCEAN_MERCURY
USE PBL_MIX_MOD
, ONLY : CLEANUP_PBL_MIX
USE PJC_PFIX_MOD
, ONLY : CLEANUP_PJC_PFIX
USE PLANEFLIGHT_MOD
, ONLY : CLEANUP_PLANEFLIGHT
USE PRESSURE_MOD
, ONLY : CLEANUP_PRESSURE
USE REGRID_1x1_MOD
, ONLY : CLEANUP_REGRID_1x1
USE SEASALT_MOD
, ONLY : CLEANUP_SEASALT
USE SULFATE_MOD
, ONLY : CLEANUP_SULFATE
USE TAGGED_CO_MOD
, ONLY : CLEANUP_TAGGED_CO
USE TOMS_MOD
, ONLY : CLEANUP_TOMS
USE TPCORE_FVDAS_MOD
, ONLY : EXIT_TPCORE
USE TRACER_MOD
, ONLY : CLEANUP_TRACER
USE TRANSPORT_MOD
, ONLY : CLEANUP_TRANSPORT
USE TROPOPAUSE_MOD
, ONLY : CLEANUP_TROPOPAUSE
USE UVALBEDO_MOD
, ONLY : CLEANUP_UVALBEDO
USE WETSCAV_MOD
, ONLY : CLEANUP_WETSCAV
IMPLICIT NONE
!=================================================================
! CLEANUP begins here!
!=================================================================
! Echo info
WRITE( 6, 100 )
100 FORMAT( ' - CLEANUP: deallocating arrays now...' )
! Call cleanup routines from individual F90 modules
CALL CLEANUP_ACETONE
CALL CLEANUP_AEROSOL
CALL CLEANUP_AIRCRAFT_NOX
CALL CLEANUP_BIOMASS
CALL CLEANUP_BIOFUEL
CALL CLEANUP_BRAVO
CALL CLEANUP_C2H6
CALL CLEANUP_CARBON
CALL CLEANUP_CO2
CALL CLEANUP_COMODE
CALL CLEANUP_DAO
CALL CLEANUP_DIAG
CALL CLEANUP_DIAG03
CALL CLEANUP_DIAG04
CALL CLEANUP_DIAG41
CALL CLEANUP_DIAG50
CALL CLEANUP_DIAG51
CALL CLEANUP_DIAG_OH
CALL CLEANUP_DIAG_PL
CALL CLEANUP_DRYDEP
CALL CLEANUP_DUST_DEAD
CALL CLEANUP_DUST
CALL CLEANUP_EDGAR
CALL CLEANUP_EMEP
CALL CLEANUP_EPA_NEI
CALL CLEANUP_GC_BIOMASS
CALL CLEANUP_GFED2_BIOMASS
CALL CLEANUP_GLOBAL_CH4
CALL CLEANUP_GLOBAL_HNO3
CALL CLEANUP_GLOBAL_NO3
CALL CLEANUP_GLOBAL_NOX
CALL CLEANUP_GLOBAL_NO3
CALL CLEANUP_GLOBAL_O1D
CALL CLEANUP_GLOBAL_OH
CALL CLEANUP_H2_HD
CALL CLEANUP_HCN_CH3CN
CALL CLEANUP_LAI
CALL CLEANUP_LIGHTNING_NOX
!------------------------------------------
! Prior to 10/2/07:
!CALL CLEANUP_LIGHTNING_NOX_NL
!------------------------------------------
CALL CLEANUP_MEGAN
CALL CLEANUP_MERCURY
CALL CLEANUP_OCEAN_MERCURY
CALL CLEANUP_PBL_MIX
CALL CLEANUP_PJC_PFIX
CALL CLEANUP_PLANEFLIGHT
CALL CLEANUP_PRESSURE
CALL CLEANUP_REGRID_1x1
CALL CLEANUP_SEASALT
CALL CLEANUP_SULFATE
CALL CLEANUP_TAGGED_CO
CALL CLEANUP_TRANSPORT
CALL CLEANUP_TOMS
CALL CLEANUP_TRACER
CALL CLEANUP_TROPOPAUSE
CALL CLEANUP_UVALBEDO
CALL CLEANUP_WETSCAV
CALL EXIT_TPCORE
! Return to calling program
END SUBROUTINE CLEANUP