Skip to content

Latest commit

 

History

History
130 lines (109 loc) · 4.64 KB

DEVEL.org

File metadata and controls

130 lines (109 loc) · 4.64 KB

UNITS! FIX UNITS! Development notes: /discover/nobackup/bweir/GEOS/runs/m2cc-v1_ana CH4 emissions: Negative fluxes lead to different outcomes INITIAL DEVELOPMENT TASK OUTLINE

TODO:

Mass balance Run with a species ‘off’ water vapor feedback CO2 feedback from CO oxidation

Open Questions:

How to control if a species itself is active?

Don’t want to make it ‘implied’, meaning that, for example, a user turns off CO by not including any instances.

How to deal with interconnectivity in mixed species environments? e.g. CH4 on but CO & CO2 off.

Error control

repeat instances

Initialization

Interface

Keep everything runtime controlled. As much as possible.

Config

Read in instances

Convert to list? As a line of entries, it is compact.

Read in passives

What if name in passive list isn’t an instance? Error out. %%%

Masks

Run

Surface

Surface/external fluxes have to be handled carefully

  • fluxes ‘in’ can be added to a specific instance
  • fluxes ‘out’ have to be partitioned evenly over all instances

CO2

Good to go. Rounoff error differences

CO

fPBL is difference between GOCART::CO and GHG. Impacts PBL mixing of biomass emissions

Chemistry

Chem prod goes into residual Chem loss depletes all instances

CO

cvfac is different between GOCART and GHG calls. Due to differences in AIRDEN. OH reaction is good otherwise.

CO

CH4

CO2

Integration

Source terms may deplete individual instance bins But sink terms have to deplete the total (or all bins proportionally)

It makes simple sense:

dC/dt = P - L

P is the linear production rate, and can be applied directly. L is the linear loss rate, but it has to be scaled by C_total

L/C_total = k, so that

dC/dt = P - kC

… EZPZ

So what we need to do is simply set up the prod & loss terms then we can do whatever we want.

Forward Euler

What else?

Diagnostics

Finalize

Features

coupling to other components

using integer indexing to connect instances to other elements (e.g. fluxes, diagnostics)

currently relies on strings. String searches are wet blankets

Testing

CO2

GOCART initializes in mol/mol. GHG initializes in kg/kg This difference leads to differences order of 10 ppb at initialization (Jan20 2023) MW_CO2 is set at 44.0098. MW air is 28.965

There is an issue with passive instances impacting the aggregates. Not sure what the cause is.

1st REVISION DEVELOPMENT OUTLINE Currently in branch ‘activetotal’

CH4

GC-CH4 has 1 run method If, no chem, no photo, no turb/moist – revisit: End Aug 2023 OK from restart if emis & chem off – Don’t convert units from (kg/m2/s-1 to mol/mol/m2/s-1; test the I/O) OK from zero with EDGARv7 emissions

dCH4.nc.noNEGDIST.noDTM.blankRun1:

  • the negative emissions are directly applied to the assoc instance rather than redistributed
  • no DTM
  • RRG’s Run1_ is executed, but does nothing. This synchronizes RRG’s and GOCART’s Run methods. Before, with RRG’s Run1_ commented out, RRG’s Run2_ was being run with GOCART’s Run1_. So maybe a slight met or timing impact

    IT LOOKS LIKE THE ISSUE IS NEGATIVE SURFACE EXCHANGE (surface uptake) ONat is the only source that has negative surface exchange. If I turn ONAT off. dCH4 is very small (O(-11))

<ABANDONED> How to get an option for active/prognostic/independent species total?

<<>> For now, just defined an active total and give it all surface fluxes. Make sure no other instances are active. Requirements

All emissions are added to total

Total has its own P/L computed

The other instances are not summed into the aggregate

This can be done by forcing all instances to be ‘passive’ if active_total is .true. – added this to RRG_GridCompMod::ProcessInstances with the logical ‘isActive’ If a species is declared with activeTotal = .true. all instances other than ‘total’ are set to ‘passive’. This bypasses any aggregation activity by util_aggregate(). – NOTE: this also diables the utility of the *.residual instance. This will no longer initialize the fields. Users will have to define a restart field for the total instance … currently the total instance name is simply the name of the gas, e.g. CO, CO2, or CH4 Current Status

Going to scrub ‘aggregate’ from the system and make ‘total’ a default instance