ESCOMP / ESCOMP/CAM

rad_aer_diag_init, rad_cnst_out only called for climate list: mass per layer/column burden missing for diagnostic list species

Open
#1,578 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
No language data
Stars
91
Forks
183
Avg merge
6d 2m
Merged PRs (30d)
9

Description

### What happened?

Observed CAM code

Grepping for `rad_aer_diag_init` and `rad_cnst_out` shows they are only called for the climate list and not individual diagnostic lists.

The subroutine are wired up for diagnostic lists (`_d1`, `_d2`, ... suffix) but never called.

The following diagnostics would be missing for diagnostic lists
* `m__dN` (mass per layer), `cb_dN` (column burden)
* `m__dN`, `cb__dN` **bulk aerosols only** (MAM and CARMA work)

All other diag list features like radiation are working

### What are the steps to reproduce the bug?

run `git grep -n "rad_cnst_out" cam6_4_181 -- src`

```
cam6_4_181:src/chemistry/aerosol/radiative_aerosol.F90:1198: rad_aer_diag_init
cam6_4_181:src/chemistry/aerosol/radiative_aerosol.F90:1227: call rad_aer_diag_init(bulk_aerosol_list(0))
cam6_4_181:src/physics/cam/aerosol_mmr_cam.F90:38:public :: rad_aer_diag_init
cam6_4_181:src/physics/cam/aerosol_mmr_cam.F90:850:subroutine rad_aer_diag_init(alist)
cam6_4_181:src/physics/cam/aerosol_mmr_cam.F90:897: write(iulog,*) 'rad_aer_diag_init: '//trim(name)//' longer than ', fieldname_len, ' characters'
cam6_4_181:src/physics/cam/aerosol_mmr_cam.F90:898: call endrun('rad_aer_diag_init: name too long: '//trim(name))
cam6_4_181:src/physics/cam/aerosol_mmr_cam.F90:903:end subroutine rad_aer_diag_init
```

```
cam6_4_181:src/physics/cam/rad_constituents.F90:67: rad_cnst_out ! output constituent diagnostics (mass per layer and column burden)
cam6_4_181:src/physics/cam/rad_constituents.F90:428:subroutine rad_cnst_out(list_idx, state, pbuf)
cam6_4_181:src/physics/cam/rad_constituents.F90:448: character(len=*), parameter :: subname = 'rad_cnst_out'
cam6_4_181:src/physics/cam/rad_constituents.F90:479:end subroutine rad_cnst_out
cam6_4_181:src/physics/camrt/radiation.F90:791: use rad_constituents, only: rad_cnst_get_gas, rad_cnst_out
cam6_4_181:src/physics/camrt/radiation.F90:1165: if (write_output) call rad_cnst_out(0, state, pbuf)
cam6_4_181:src/physics/rrtmg/radiation.F90:21:use rad_constituents, only: rad_cnst_get_gas, rad_cnst_out, oldcldoptics, liqcldoptics, icecldoptics
cam6_4_181:src/physics/rrtmg/radiation.F90:1297: call rad_cnst_out(0, state, pbuf)
cam6_4_181:src/physics/rrtmgp/radiation.F90:24:use rad_constituents, only: rad_cnst_out
cam6_4_181:src/physics/rrtmgp/radiation.F90:1217: call rad_cnst_out(0, state, pbuf)
```

### What CAM tag were you using?

cam6_4_181

### What machine were you running CAM on?

CISL machine (e.g. cheyenne)

### What compiler were you using?

Intel

### Path to a case directory, if applicable

_No response_

### Will you be addressing this bug yourself?

Any CAM SE can do this

### Extra info

_No response_

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.