geoschem / geos-chem

GEOS-Chem "Science Codebase" repository. Contains GEOS-Chem science routines, run directory generation scripts, and interface code. This repository is used as a submodule within the GCClassic and GCHP wrappers, as well as in other modeling contexts (external ESMs).
http://geos-chem.org
Other
164 stars 156 forks source link

[QUESTION]Why not all speciated AOD output from GC 12.2.1? #81

Closed FeiYao-Edinburgh closed 4 years ago

FeiYao-Edinburgh commented 4 years ago

It might be a stupid question but I have been really bothered. I have run GC 12.2.1 and would like to collect different components of AOD. However, I found that I can only collect an incomplete list of speciated AOD, see the following BPCH diagnostics for example. I wonder why nitrate AOD, SOA AOD are missing? Do they contribute so small that we can ignore them? Similar to my previous question, does OC mean POA if complexSOA_SVPOA? Or does OC include all POA and SOA? I feel it would be great to let the AOD have the same or more (dur to PM diameter issue) number of components compared to that of PM? BTW, I do not think you provide a TotalAOD diagnostic? I think I need to sum all AOD components to obtain that, necessitating the complete list of speciated AOD including nitrate AOD and SOA AOD?

Data variables:
    OD_MAP_S_OPSO4550  (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPBC550   (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPOC550   (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPSSa550  (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPSSc550  (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPD       (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPD1550   (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPD2550   (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPD3550   (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPD4550   (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPD5550   (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPD6550   (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
    OD_MAP_S_OPD7550   (lon, lat, lev) float32 dask.array<shape=(144, 91, 47), chunksize=(144, 91, 47)>
yantosca commented 4 years ago

I don't know why the nitrate AOD and SOA AOD are missing. The ND21 bpch diagnostic was written a long time ago so maybe it is incomplete. Again, that would be a topic for the Aerosols Working Group.

FeiYao-Edinburgh commented 4 years ago

I don't know why the nitrate AOD and SOA AOD are missing.

They are just not completely disaggregated, said Aerosols Working Group. More specifically, the "sulfate" AOD includes sulfate, nitrate, and ammonium. The "OC" AOD should include POA and SOA. Therefore, I need to edit the aerosol_mod.F module to split them up if I want to obtain all of the speciated AOD. I have gone through aerosol_mod.F for a while, but I still find difficult to know where to start. Could you please give me more specific steps on how to split the AODHygWL1_<spcname> diagnostics so that they contain SO4 (SO4, NH4, NIT), BC, OC(POA, SOA), SALA, SALC? I believe a guide like Adding_new_History_diagnostics is surely enough. This also helps me confirm what I am doing is right. Many thanks!

yantosca commented 4 years ago

The bpch diagnostics were written by members of the GEOS-Chem community many years ago. When we added the netCDF diagnostics, we attempted to only replicate the existing bpch diagnostics and not add any new functionality.

Typically what you would do is to add new fields into the Headers/state_diag_mod.F90 object. You can follow what is done for the existing diagnostics. Then you would have to modify aerosol_mod.F to copy into the state diag fields the quantities that you want.

This is more of a scientific question and as such you might need to further collaborate with the Aerosols Working Group.