247 lines
11 KiB
Fortran
247 lines
11 KiB
Fortran
! $Id: cleanup.f,v 1.2 2009/07/14 23:51:27 daven Exp $
|
|
SUBROUTINE CLEANUP
|
|
!
|
|
!******************************************************************************
|
|
! 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)
|
|
! (38) Now calls GEOS5_EXIT_TPCORE_WINDOW to finalize the TPCORE for
|
|
! GEOS-5 nested window simulations (yxw, dan, bmy, 11/6/08)
|
|
! (39) Now references CLEANUP_CAC_ANTHRO (amv, phs, 3/10/08)
|
|
! (40) Now references CLEANUP_ARCTAS_SHIP (phs, 3/10/08)
|
|
! (41) Now references CLEANUP_VISTAS_ANTHRO (phs, 3/10/08)
|
|
! 07 Sep 2011 - P. Kasibhatla - Add modifications for GFED3
|
|
!******************************************************************************
|
|
!
|
|
! 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 ARCTAS_SHIP_EMISS_MOD, ONLY : CLEANUP_ARCTAS_SHIP
|
|
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 CAC_ANTHRO_MOD, ONLY : CLEANUP_CAC_ANTHRO
|
|
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 DIAG51b_MOD, ONLY : CLEANUP_DIAG51b
|
|
USE DIAG51c_MOD, ONLY : CLEANUP_DIAG51c
|
|
USE DIAG51d_MOD, ONLY : CLEANUP_DIAG51d
|
|
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 GFED3_BIOMASS_MOD, ONLY : CLEANUP_GFED3_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
|
|
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 TPCORE_GEOS5_WINDOW_MOD, ONLY : EXIT_GEOS5_TPCORE_WINDOW
|
|
USE TPCORE_GEOSFP_WINDOW_MOD,ONLY : EXIT_GEOSFP_TPCORE_WINDOW ! (lzh,02/01/2015)
|
|
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 VISTAS_ANTHRO_MOD, ONLY : CLEANUP_VISTAS_ANTHRO
|
|
USE WETSCAV_MOD, ONLY : CLEANUP_WETSCAV
|
|
USE ICOADS_SHIP_MOD, ONLY : CLEANUP_ICOADS_SHIP !(cklee,7/09/09)
|
|
USE RETRO_MOD, ONLY : CLEANUP_RETRO
|
|
USE RCP_MOD, ONLY : CLEANUP_RCP
|
|
|
|
|
|
IMPLICIT NONE
|
|
|
|
# include "define.h"
|
|
|
|
!=================================================================
|
|
! 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_ARCTAS_SHIP
|
|
CALL CLEANUP_BIOMASS
|
|
CALL CLEANUP_BIOFUEL
|
|
CALL CLEANUP_BRAVO
|
|
CALL CLEANUP_C2H6
|
|
CALL CLEANUP_CAC_ANTHRO
|
|
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_DIAG51b
|
|
CALL CLEANUP_DIAG51c
|
|
CALL CLEANUP_DIAG51d
|
|
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_GFED3_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
|
|
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_VISTAS_ANTHRO
|
|
CALL CLEANUP_WETSCAV
|
|
CALL CLEANUP_ICOADS_SHIP !(cklee,7/09/09)
|
|
CALL CLEANUP_RETRO
|
|
CALL CLEANUP_RCP
|
|
|
|
#if defined( GEOS_5 ) && defined( GRID05x0666 )
|
|
CALL EXIT_GEOS5_TPCORE_WINDOW
|
|
#elif defined( GEOS_FP ) && defined( GRID025x03125 )
|
|
CALL EXIT_GEOSFP_TPCORE_WINDOW ! (lzh, 02/01/2015)
|
|
#else
|
|
CALL EXIT_TPCORE
|
|
#endif
|
|
|
|
! Return to calling program
|
|
END SUBROUTINE CLEANUP
|