# gen_co2 — gerador de tabelas de transmissão de CO2 (GFDL LW) do Eta

Gera o `CO2.dat` lido por `etafcst/CONRAD.f90` (via GRADFS) para **qualquer
estrutura vertical** (deta/LM/PT), no formato/naming do suporte:
`co2.${LM}_${PT}mb_${ppm}ppm` (o `Eta_fix.sh_Templ` seleciona por
`${LM}_${PT}mb_${co2ppm}`).

## Uso
```bash
make                                  # gfortran
./gen_co2.x <deta> <PT_hPa> <ppm> <saida> [pscale|eta]
# ex.: ./gen_co2.x deta_80_1mb 1.0 330 co2.80_1mb_330ppm
```
Requer no diretório corrente as tabelas-base `tr49t85`, `tr49t67`, `tr67t85`
(109×109, Schwarzkopf–Fels, 3 perfis de T: padrão/±25 K, a 330 ppmv — cópias
incluídas aqui; origem: WRF/run).

## Origem e validação
- `gfdl_co2_kernel.f90` = extração VERBATIM de WRF v4.8
  `phys/module_ra_gfdleta.F` l.7982–9755 (CO2O3 e dependências — o consolidado
  K.Campana/D.Schwarzkopf que "produce a file ... read by subroutine CONRAD").
  Patches: RATIO≠1 liberado; args `RATIN,PSC` no CO2O3; escala de pressão pós-
  CO2PTZ; IWORDSIZE/RWORDSIZE/ERRMESS; shims `wrf_*` no driver.
- **Validação (2026-08-06):** LM=50/PT=25/330 ppm reproduz o
  `co2.50_25mb_330ppm` operacional do CPTEC em precisão de máquina
  (max |Δ| = 3e-5 no STEMP ≈ 1.2e-7 relativo; demais registros ≤ 2e-6).
  Ordem 2-D no arquivo = coluna-major natural (CONRAD lê transposto — legado).

## Concentração (ppm)
- Base das tabelas = 330 ppmv. `ppm` ≠ 330 usa por default o modo **pscale**:
  aproximação Curtis–Godson (amount×broadening ∝ r ⇒ tabela avaliada em r·p),
  aplicada às pressões T41–T44. Para 414 ppm dá ΔT até −0.055 nos caminhos
  longos, monótono — magnitude física correta. Modo `eta` = mecanismo legado
  RAT→COEINT (só limite de linha fraca; ~10× fraco — não usar).
- **ATENÇÃO:** o `co2.50_25mb_414ppm` (e possivelmente o `co2.38_*_414ppm`) do
  suporte CPTEC está **corrompido**: os 6 registros 2-D são idênticos entre si
  e não são transmissividades ([−0.0017,0.0037]), e o STEMP difere do padrão
  US-1976 (que não depende de CO2). Rodadas com `co2ppm=414` leram lixo na LW.
  Regenerar com esta ferramenta antes de usar 414.

## Gerados em 2026-08-06 (instalados em rad_files/)
- `co2.80_1mb{,_330ppm,_414ppm}` — p/ `deta_80_1mb` (LM=80, topo 1 hPa)
- `co2.50_1mb{,_330ppm,_414ppm}` — p/ `deta_50_1mb_new` (LM=50, topo 1 hPa)
  (regerar se o deta correspondente mudar — a tabela depende da estrutura)

## Fora do escopo
Os bins do caminho transiente (`co2_*_L${LM}_*_AllGHGs.bin`, lidos por
CONRAD2 via MODULE_UPDATE_FLDS quando a opção de CO2 transiente está ligada)
existem só para L38/L50 — com LM=80 manter essa opção desligada até produzi-los.
