Latent heat bug in COARE atm/ocn flux routine for CESM

Open Beginner friendly
#684 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
68/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
fortran
Domain
backend

Research direction

Start in cesm/flux_atmocn/flux_atmocn_COARE_mod.F90, reading the conversion at line 189 alongside the temperature-adjusted Le assignment near line 292 and latent heat calculation near line 402. Trace how lat and evap leave COARE, then verify the conversion consistently represents the evaporation flux predicted by COARE using one of the fixes described in the issue.

Written by the indexing model from the issue text.

Description

In the CESM COARE atmosphere-ocean flux calculations, the surface latent heat flux is calculated like so:

hlb=-rhoa * Le * usr * qsr

With the Le variable representing the latent heat of vaporization, and the rest of the terms combining to be the surface evaporation (water vapor mass) flux. In COARE Le is the "constant" latent heat of vaporization with an applied ocean surface temperature adjustment:

Le = loc_latvap - .00237e6_R8 * (ts-273.16_R8)

where loc_latvap is the constant value, and ts is the ocean surface temperature. The latent heat flux (hlb) term is then passed out from COARE, and converted back into an evaporation flux for use by CESM. However, that conversion doesn't use the the temperature-adjusted Le variable, but instead the constant value:

evap(n) = lat(n)/loc_latvap

where lat(n) is the same as hlb. This results in an Le/loc_latvap, or 1 - .00237e6_R8 * (ts-273.16_R8)/loc_latvap, bias in the evaporation flux to CESM relative to what COARE actually predicts.

The fix is either to just pass evap out directly from COARE, or simply use Le instead of loc_latvap in the lat->evap conversion.

Credit goes to Benjamin Barr for confirming the existence of the bug!

Dominant language
Fortran
Stars
36
Forks
106
Avg merge
5d 15h
Merged PRs (30d)
6

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from ESCOMP/CMEPS

All issues in ESCOMP/CMEPS

Similar issues

More Backend & API Design issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.