Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
62 commits
Select commit Hold shift + click to select a range
d65465b
update process generator to compile seasalt process
lwcugb Sep 3, 2025
ea7674c
Merge branch 'feature/cc_restructure' of https://github.com/bbakernoa…
lwcugb Sep 4, 2025
4f3df14
fix core test
lwcugb Sep 6, 2025
6a8e986
update generator for test creation
lwcugb Sep 11, 2025
29f024d
update generator
lwcugb Sep 12, 2025
18b3135
update integration test of the generator.
lwcugb Sep 15, 2025
36f3012
update generation of process integration test
lwcugb Sep 15, 2025
706e56d
update generator for integration test
lwcugb Sep 16, 2025
88995d2
Merge branch 'feature/cc_restructure' of https://github.com/bbakernoa…
lwcugb Sep 16, 2025
c9e4bc9
update core test files
lwcugb Sep 16, 2025
540dd24
update generator
lwcugb Sep 16, 2025
7346a23
add emission mapping to ConfigManager
lwcugb Sep 22, 2025
e8fde6f
update API module
lwcugb Sep 26, 2025
b718cc4
API file update
lwcugb Oct 2, 2025
387affe
delete temp files
lwcugb Oct 2, 2025
e3e7258
update nuopc cap
lwcugb Oct 13, 2025
cb56a74
update NUOPC cap
lwcugb Oct 20, 2025
0dc6f86
Fix ifort compiling error
lwcugb Oct 21, 2025
19fd283
update nuopc layer
lwcugb Oct 27, 2025
d02647f
update nuopc layer
lwcugb Oct 31, 2025
f18b126
emission mapping read bug fix
lwcugb Nov 6, 2025
27a9187
update generator for drydep
lwcugb Nov 15, 2025
64e1d9a
update generator for drydep
lwcugb Nov 20, 2025
c5b872d
add wetdep process
lwcugb Nov 26, 2025
9130454
update wetdep
lwcugb Dec 1, 2025
94423d0
Merge branch 'ufs_develop' into feature/cc_restructure
lwcugb Dec 2, 2025
2ed9d75
clean some files
lwcugb Dec 2, 2025
309067d
fix some edge conditions for drydep
lwcugb Dec 5, 2025
a4793c6
bug fix integration tests
lwcugb Dec 5, 2025
39613f9
bug fix for integration test
lwcugb Dec 5, 2025
7460e73
update generator
lwcugb Dec 6, 2025
0d9fa2e
trimming some files
lwcugb Dec 8, 2025
e5775fa
bug fix
lwcugb Dec 15, 2025
244ecaa
fix unit conversion
lwcugb Dec 15, 2025
c26b2c0
unit conversion fix
lwcugb Dec 15, 2025
4a20517
start adding settling process
lwcugb Dec 17, 2025
1bbb353
update settling process
lwcugb Dec 18, 2025
8c8a2b8
update settling process
lwcugb Dec 18, 2025
c1f5c29
Merge branch 'develop' into feature/cc_restructure
bbakernoaa Dec 19, 2025
12df911
reverse the time stamp changes
lwcugb Dec 19, 2025
ab150c6
remove scheme copy files
lwcugb Dec 19, 2025
5233b45
Add an emission reading module under nuopc
lwcugb Jan 30, 2026
cf16386
update emission read module with diagnostics
lwcugb Feb 2, 2026
0e16285
update emission read module
lwcugb Feb 2, 2026
294070a
update emission read module
lwcugb Feb 2, 2026
fa4e5c1
update emission module
lwcugb Feb 2, 2026
b4de465
update read emission module
lwcugb Feb 2, 2026
fc25460
debug read emission module
lwcugb Feb 2, 2026
435dc7c
pre-commit check
lwcugb Feb 3, 2026
6722a22
debug emission read module
lwcugb Feb 3, 2026
e2f7da9
debug emission read module
lwcugb Feb 4, 2026
d7a7de7
pre-commit check
lwcugb Feb 4, 2026
a05a84c
add SO4chem process from gocart
lwcugb Feb 11, 2026
642c4ed
Merge branch 'develop' of https://github.com/ufs-community/CATChem in…
lwcugb Feb 13, 2026
ff2fed5
pre-commit check
lwcugb Feb 13, 2026
fe4454f
update emission read 3D file
lwcugb Feb 16, 2026
9d74e69
update emission read module
lwcugb Feb 16, 2026
f221ca8
update emission read for oxidants
lwcugb Feb 17, 2026
b6f679f
update so4chem process
lwcugb Feb 17, 2026
f68f4f0
update cmake
lwcugb Feb 17, 2026
d8975e9
update so4chem process
lwcugb Feb 18, 2026
1e803ff
debug so4chem process
lwcugb Feb 19, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,7 @@ if(BUILD_NUOPC)
$<TARGET_FILE:CATChem_process_drydep>
$<TARGET_FILE:CATChem_process_wetdep>
$<TARGET_FILE:CATChem_process_settling>
$<TARGET_FILE:CATChem_process_so4chem>
$<TARGET_FILE:CATChem_core>
$<TARGET_FILE:yaml_interface>
$<TARGET_FILE:catchem_utilities>
Expand Down
173 changes: 173 additions & 0 deletions docs/processes/so4chem/so4chem.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,173 @@
# SO4chem Process

**Process Type:** Chemistry
**Description:** Process for computing chemical production of sulfate from SO2 oxidation
**Author:** Wei Li
**Generated:** 2026-02-11T13:30:17.419277

## Overview

The SO4chem process implements Process for computing chemical production of sulfate from SO2 oxidation. This process provides a modular, extensible framework for chemistry calculations within the CATChem chemical transport model.

## Available Schemes

### GOCART Scheme

**Name:** `gocart`
**Description:** GOCART SO2 to SO4 production scheme
**Author:** Wei Li
**Reference:** GOCART2G process library SulfateChemDriver function
#### Parameters

| Parameter | Default | Range | Description |
|-----------|---------|--------|-------------|
| `update_so2` | True | - | whether to update SO2 concentration based on chemical production/loss |

#### Required Meteorological Fields

- `T` - Meteorological field required for scheme computation
- `CLDF` - Meteorological field required for scheme computation
- `DELP` - Meteorological field required for scheme computation
- `TSTEP` - Meteorological field required for scheme computation
- `AIRDEN` - Meteorological field required for scheme computation
- `PMID` - Meteorological field required for scheme computation
- `Z` - Meteorological field required for scheme computation
- `Z0H` - Meteorological field required for scheme computation
- `USTAR` - Meteorological field required for scheme computation
- `PBLH` - Meteorological field required for scheme computation
- `HFLUX` - Meteorological field required for scheme computation
- `LWI` - Meteorological field required for scheme computation
- `LAT` - Meteorological field required for scheme computation
- `LON` - Meteorological field required for scheme computation



## Process Interface

### Species

The so4chem process operates on the following chemical species:

- `h2o2`
- `oh`
- `no3`
- `dms`
- `so2`
- `so4`
- `msa`

### Required Inputs



### Process Diagnostics

| Diagnostic | Units | Description |
|------------|-------|-------------|
| `Production_rate_per_species_per_level` | kg/kg/s | Production rate (DMS to SO2, DMS to MSA, SO2 to SO4) per species per level |

## Usage

### Basic Integration

```fortran
use SO4chemProcessCreator_Mod
use SO4chemCommon_Mod

! Create process instance
type(SO4chemProcess_t) :: process
call create_so4chem_process(process, config_data)

! Use process in model time step
call process%run(state, dt)
```

### Scheme Selection

The process supports multiple schemes. Select your desired scheme:

```fortran
! Use GOCART scheme
process%scheme_name = "gocart"
```

## Implementation Details

### Pure Science Kernels

Each scheme is implemented as a pure science kernel with no infrastructure dependencies:

```fortran
! GOCART scheme
pure subroutine compute_gocart( &
num_layers, num_species, params, &
T, & CLDF, & DELP, & TSTEP, & AIRDEN, & PMID, & Z, & Z0H, & USTAR, & PBLH, & HFLUX, & LWI, & LAT, & LON, &
species_conc, emission_flux)
```

### Host Model Responsibilities

The host model (CATChem infrastructure) handles:

- Parameter initialization and validation
- Input array validation and error handling
- Memory management and array allocation
- Integration with model time stepping
- Diagnostic output management

## Configuration

### YAML Configuration Example

```yaml
processes:
so4chem:
enabled: true
scheme: "gocart"
parameters:
update_so2: True
diagnostics:
enabled: true
output_frequency: "daily"
```

## Technical Specifications

- **Parallelization:** Column
- **Memory Requirements:** Low
- **Timestep Dependency:** Independent
- **Multiphase Support:** No
- **Size Bin Support:** No
- **Vectorization:** Supported

## Files Generated

### Source Code
- `src/process/so4chem/ProcessSO4chemInterface_Mod.F90` - Main process interface
- `src/process/so4chem/SO4chemCommon_Mod.F90` - Common types and parameters
- `src/process/so4chem/SO4chemProcessCreator_Mod.F90` - Process factory
- `src/process/so4chem/schemes/SO4chemScheme_GOCART_Mod.F90` - GOCART SO2 to SO4 production scheme

### Tests
- `tests/process/so4chem/unit/` - Unit tests
- `tests/process/so4chem/integration/` - Integration tests

### Documentation
- `docs/processes/so4chem/so4chem.md` - This documentation

## Contributing

When modifying or extending this process:

1. **Science Changes:** Modify the scheme modules in `schemes/`
2. **Interface Changes:** Update the main interface module
3. **New Schemes:** Add new scheme modules and update the creator
4. **Tests:** Add corresponding unit and integration tests
5. **Documentation:** Update this documentation file

## References

- GOCART: GOCART2G process library SulfateChemDriver function

---
*This documentation was automatically generated by the CATChem Process Generator on 2026-02-11T13:30:17.419277*
Loading