Files
2018-08-28 00:33:48 -04:00

184 lines
6.2 KiB
C

!$Id: define_adj.h,v 1.12 2012/08/10 22:08:22 nicolas Exp $
!******************************************************************************
! Include file "define_adj.h" specifies C-preprocessor "switches" that are
! used to include or exclude certain sections of ADJOINT code, mostly for
! controlling observation datasets used. The reason they are pre-processor
! switches instead of logical flags is so that we can omit the code which
! requires installation of hdf libaries and such. All are independent of
! each other, but not of simulation and tracer type
! (adj_group, 6/08/09)
!
! List of "Switches"
! ===========================================================================
! (1 ) TES_NH3_OBS : Use NH3 data from TES
! (2 ) PM_ATTAINMENT : Compute PM attainment
! (3 ) SOMO35_ATTAINMENT : Compute ozone attainment
! (4 ) SCIA_KNMI_NO2_OBS : Use NO2 obs from SCIA KNMI retrieval
! (5 ) IMPROVE_SO4_NIT_OBS : Use sulfate-nitrate from IMPROVE network
! (6 ) CASTNET_NH4_OBS : Use amonia from CASTNET network
! (7 ) TES_O3_OBS : Use O3 obs from TES
! (8 ) SCIA_DAL_NO2_OBS : Use NO2 obs from SCIA Dalhousie retrieval
! (9 ) SCIA_DAL_SO2_OBS : Use SO2 obs from SCIA Dalhousie retrieval
! (10) MOPITT_V3_CO_OBS : Use v3 CO obs from MOPITT
! (11) MOPITT_V4_CO_OBS : Use v4 CO obs from MOPITT
! (12) SCIA_BRE_CO_OBS : Use CO obs from SCIA Bremen retrieval
! (13) AIRS_CO_OBS : Use CO obs from AIRS (UMBC) retrieval
! (14) PSEUDO_OBS : Generate pseudo obs if no data selected
! (15) LOG_OPT : Optimized log of scaling factors
! (16) SOMO35_ATTAINMENT : Ozone attainment
! (17) PM_ATTAINMENT : PM attainment
! (18) LIDORT : Online radiative forcing calculations
! (19) GOSAT_CO2_OBS : Use CO2 obs from GOSAT retrieval
! (20) MODIS_AOD_OBS : Use AOD obs from MODIS
! (21) IMPROVE_BC_OC_OBS : Use BC and OC aerosol obs from IMPROVE
! (22) MOPITT_V5_CO_OBS : Use v5 CO obs form MOPITT
! (23) MOPITT_V6_CO_OBS : Use v6 CO obs form MOPITT
! (24) MOPITT_V7_CO_OBS : Use v7 CO obs form MOPITT
! (25) TES_O3_IRK : Use radiative kernels for TES O3
! (26) OMI_SO2_OBS : Use OMI L3 SO2
!
! NOTES:
! (1 ) Replace MOPITT_IR_CO_OBS with MOPITT_V3_CO_OBS and MOPITT_V4_CO_OBS
! (zhe, dkh, 02/04/11)
! (2 ) Add MODIS_AOD_OBS (xxu, dkh, 01/09/12, adj32_011)
! (3 ) Addd IMPROVE_BC_OC_OBS (yhmao, dkh/ 01/16/12, adj32_013)
! (4 ) Add MOPITT_V5_CO_OBS (zhej, dkh, 01/16/12, adj32_016)
! (5 ) Add CH4 obs operators (kjw, dkh, 02/12/12, adj32_023)
! (6 ) Add MOPIT_V6_CO_OBS and drop support for MOPITT v3 and v4 (zhe, dkh 06/2015)
!******************************************************************************
!
!==============================================================================
! Undefine all "switches" so that they cannot be accidentally reset
!==============================================================================
#undef TES_NH3_OBS
#undef PM_ATTAINMENT
#undef SOMO35_ATTAINMENT
#undef SCIA_KNMI_NO2_OBS
#undef IMPROVE_SO4_NIT_OBS
#undef CASTNET_NH4_OBS
#undef TES_O3_OBS
#undef TES_O3_IRK
#undef SCIA_DAL_NO2_OBS
#undef SCIA_DAL_SO2_OBS
#undef SCIA_BRE_CO_OBS
#undef AIRS_CO_OBS
#undef GOSAT_CO2_OBS
#undef PM_ATTAINMENT
#undef SOMO35_ATTAINMNET
#undef PSEUDO_OBS
#undef LOG_OPT
#undef LIDORT
#undef LBKCOV_ERR
! (xxu, dkh, 01/09/12, adj32_011)
#undef MODIS_AOD_OBS
! (yhmao, dkh, 01/13/12, adj32_013)
#undef IMPROVE_BC_OC_OBS
! (zhej, dkh, 01/16/12, adj32_016)
#undef MOPITT_V5_CO_OBS
#undef MOPITT_V6_CO_OBS
! (kjw, dkh, 02/12/12, adj32_023)
#undef TES_CH4_OBS
#undef SCIA_CH4_OBS
#undef MEM_CH4_OBS
#undef LEO_CH4_OBS
#undef GEOCAPE_CH4_OBS
#undef OSIRIS_OBS
!mkeller
#undef OMI_NO2_OBS
! ( ywang, 04/21/15)
#undef OMI_SO2_OBS
!xzhang:
#undef OMI_CH2O_OBS
#undef MLS_O3_OBS
#undef MLS_HNO3_OBS
#undef OSIRIS_NO2_OBS
#undef IASI_CO_OBS
#undef IASI_O3_OBS
!----------CO observations------
! pick any combination
! => MOPITT CO
! => MOPITT v5
! => MOPITT v6
! => MOPITT v7
! => AIRS CO
! => SCIA Bremen CO
!#define MOPITT_V5_CO_OBS 'MOPITT_V5_CO_OBS'
!#define MOPITT_V6_CO_OBS 'MOPITT_V6_CO_OBS'
!#define MOPITT_V7_CO_OBS 'MOPITT_V7_CO_OBS'
!#define IASI_CO_OBS 'IASI_CO_OBS'
!#define AIRS_CO_OBS 'AIRS_CO_OBS'
!#define SCIA_BRE_CO_OBS 'SCIA_BRE_CO_OBS'
!---------aerosol-related----------
!NH3 observations
! = > TES_NH3_OBS
!SO2 observations
! => SCIA_DAL_SO2_OBS
!Aerosol observations
! => PM_ATTAINMENT
! => IMPROVE_SO4_NIT_OBS
! => IMPROVE_BC_OC_OBS
! => CASTNET_NH4_OBS
!#define TES_NH3_OBS 'TES_NH3_OBS'
!#define SCIA_DAL_SO2_OBS 'SCIA_DAL_SO2_OBS'
!#define PM_ATTAINMENT 'PM_ATTAINMENT'
!#define IMPROVE_SO4_NIT_OBS 'IMPROVE_SO4_NIT_OBS'
!#define IMPROVE_BC_OC_OBS 'IMPROVE_BC_OC_OBS'
!#define CASTNET_NH4_OBS 'CASTNET_NH4_OBS'
!#define MODIS_AOD_OBS 'MODIS_AOD_OBS'
!--------ozone-related--------------
! => SOMO35_ATTAINMENT
! => TES O3
! => TES O3 IRKs
!#define SOMO35_ATTAINMENT 'SOMO35_ATTAINMENT'
#define TES_O3_OBS 'TES_O3_OBS'
!#define TES_O3_IRK 'TES_O3_IRK'
!#define OSIRIS_OBS 'OSIRIS_OBS'
!#define IASI_O3_OBS 'IASI_O3_OBS'
!-------CH4 Observations------------
! => TES CH4
! => SCIA CH4
! => MEM CH4
! => Generic LEO instrument CH4
! => GEOCAPE CH4
!#define TES_CH4_OBS 'TES_CH4_OBS'
!#define SCIA_CH4_OBS 'SCIA_CH4_OBS'
!#define MEM_CH4_OBS 'MEM_CH4_OBS'
!#define LEO_CH4_OBS 'LEO_CH4_OBS'
!#define GEOCAPE_CH4_OBS 'GEOCAPE_CH4_OBS'
!-------NO2 observations------------
! => SCIA_KNMI_NO2_OBS
! => SCIA_DAL_NO2_OBS
!#define SCIA_KNMI_NO2_OBS 'SCIA_KNMI_NO2_OBS'
!#define SCIA_DAL_NO2_OBS 'SCIA_DAL_NO2_OBS'
!-------OMI NO2 tropospheric columns
!#define OMI_NO2_OBS 'OMI_NO2_OBS'
!-------CO2 observations------------
! => GOSAT_CO2_OBS
!#define GOSAT_CO2_OBS
!-------SO2 observations------------
! => OMI_SO2_OBS
!#define OMI_SO2_OBS 'OMI_SO2_OBS'
!------other options-----------------
!#define PSEUDO_OBS 'PSEUDO_OBS'
!#define LOG_OPT 'LOG_OPT'
!#define LIDORT 'LIDORT'
!#define LBFGS_INV 'LBFGS_INV'
!#define LBKCOV_ERR 'LBKCOV_ERR'
!xzhang:
!#define OMI_CH2O_OBS 'OMI_CH2O_OBS'
#define MLS_O3_OBS 'MLS_O3_OBS'
!#define MLS_HNO3_OBS 'MLS_HNO3_OBS'
!#define OSIRIS_NO2_OBS 'OSIRIS_NO2_OBS'