ESCOMP / ESCOMP/CTSM

Add checks for negative precipitation coming from atmosphere

Open
#1,178 13 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Fortran
Stars
352
Forks
361
Avg merge
2d 21h
Merged PRs (30d)
7

Description

### Brief summary of bug

Tony Craig reports the following problem where it seems CTSM will blow up if you give it precipitation that is roundoff level negative.

>
> We've done some more testing and it looks like the h2osoi_liq was blowing up because WRF was sending it tiny negative values in the snowl coupling field. We are looking into what WRF is doing, but these values were typically 10-20 orders of magnitude smaller than the maximum precip values. In other words, it looks like a rounding error in repartitioning of some precip fields in WRF or something like it. We have basically corrected this in the lnd_import_export subroutine by checking for tiny negative values in precip and setting them to zero. There is almost no loss of conservation.
>
> I think a bigger question for us is whether there is a known sensitivity in the CTSM implementation to negative precip (even if tiny). It could be that the implementation assumes it will always be greater than 0 and if it isn't, it leads to an unreasonable solution. That's what appears to be happening, although we will have to look further to confirm.
>

### General bug information

**CTSM version you are using:** ?

**Does this bug cause significantly incorrect results in the model's science?** No

**Configurations affected:**
Coupled to WRF with snowl negative

### Details of bug

wr50a arctic regional grid with WRF and CTSM

### Important output or errors that show the problem

Here's a sample error that Tony got (from either a cold start or with spunup IC)...

> ERROR: In UpdateState_TopLayerFluxes, h2osoi_liq has gone significantly negative
> Bulk/tracer name = bulk
> c, lev_top(c) = 39570 0
> h2osoi_liq_top_orig = 0.000000000000000E+000
> h2osoi_liq = -1.972896852494521E-027
> frac_sno_eff = 8.687570326868314E-002
> qflx_liq_grnd*dtime = -2.270942022066725E-026
> qflx_liqdew_to_top_layer*dtime = 0.000000000000000E+000
> qflx_liqevap_from_top_layer*dtime = 0.000000000000000E+000
> ENDRUN:
> (shr_sys_abort) ERROR: In UpdateState_TopLayerFluxes, h2osoi_liq has gone significantly negative
> (shr_sys_abort) WARNING: calling shr_mpi_abort() and stopping

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.