E3SM-Project / E3SM-Project/scream

ENERGY, keep open: p3 F version has clippings without fixers

Open
#2,196 8 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
79
Forks
54
PR merge metrics
No merged PRs in 30d

Description

In micro_p3_interface.F90 Q tendencies are computed via
```
temp(:ncol,:pver) = th(:ncol,:pver)/exner(:ncol,:pver)
ptend%s(:ncol,:pver) = cpair*( temp(:ncol,:pver) - state%t(:ncol,:pver) )/dtime
ptend%q(:ncol,:pver,1) = ( max(0._rtype,qv(:ncol,:pver) ) - state%q(:ncol,:pver,1) )/dtime
ptend%q(:ncol,:pver,ixcldliq) = ( max(0._rtype,cldliq(:ncol,:pver) ) - state%q(:ncol,:pver,ixcldliq) )/dtime
ptend%q(:ncol,:pver,ixnumliq) = ( max(0._rtype,numliq(:ncol,:pver) ) - state%q(:ncol,:pver,ixnumliq) )/dtime
ptend%q(:ncol,:pver,ixrain) = ( max(0._rtype,rain(:ncol,:pver) ) - state%q(:ncol,:pver,ixrain) )/dtime
ptend%q(:ncol,:pver,ixnumrain) = ( max(0._rtype,numrain(:ncol,:pver)) - state%q(:ncol,:pver,ixnumrain) )/dtime
ptend%q(:ncol,:pver,ixcldice) = ( max(0._rtype,ice(:ncol,:pver) ) - state%q(:ncol,:pver,ixcldice) )/dtime
ptend%q(:ncol,:pver,ixnumice) = ( max(0._rtype,numice(:ncol,:pver) ) - state%q(:ncol,:pver,ixnumice) )/dtime
ptend%q(:ncol,:pver,ixcldrim) = ( max(0._rtype,qm(:ncol,:pver) ) - state%q(:ncol,:pver,ixcldrim) )/dtime
ptend%q(:ncol,:pver,ixrimvol) = ( max(0._rtype,rimvol(:ncol,:pver) ) - state%q(:ncol,:pver,ixrimvol) )/dtime
```
Not clear if this code is ever active, but if it is active with significant values clipped (also, unlikely), then it would lead to mass and energy leaks.

I haven't seen such code in p3 cxx version yet, but since the same code is in v3, scream is probably a better space to talk about it.

I would assume simplest mass and energy fixer for water forms would be enough here.

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.