ESCOMP / PUMAS

Parameterization for Unified Microphysics Across Scales
9 stars 12 forks source link

Bug: Fixing crashes with use_hetfrz_classnuc = False #47

Closed andrewgettelman closed 2 years ago

andrewgettelman commented 2 years ago

Current PUMAS code has a bug which is causing crashes when use_hetfrz_classnuc = false (old CAM5 mixed phase ice nucleation).

Identified as a CAM issue: https://github.com/ESCOMP/CAM/issues/641

But the fix is solely within PUMAS: the latest update has uninitialized variables.

The fix is to initialize nnudep and mnudep. Fix is on izumi:

diff /project/amp/andrew/tags/cam6_3_072/src/physics/pumas/micro_pumas_v1.F90 /project/amp/andrew/scam_pumas/mods/hetfrz_fix/micro_pumas_v1.F90 1509a1510,1511

1678a1681,1684

    nnudep(i,k) = 0._r8
    mnudep(i,k) = 0._r8

This prevents a crash in SCAM, and Christina has identified this also solves her problem

@Katetc can you change this and make a new PUMAS tag, then we can ask CAM to pull it in. It will not change answers in the current cam_dev configuration (where use hetfrz_classnuc = true). Thanks!

Katetc commented 2 years ago

Fixed in tag pumas_cam-release_v1.27. I'm going to open a cam PR with the most recent pumas tags now. From my testing so far, the cam tag should not change answers and so should be quick to merge.

Katetc commented 2 years ago

This went very fast! Finished the cam tag cam6_3_075 this morning that brings the PUMAS external up to the most recent one (v1.27) and fixes this bug on cam_development in the dev compsets.