Main menu


A potential bug for variable DP_CLD

2 posts / 0 new
Last post
A potential bug for variable DP_CLD

After a short discussion with Dr. Andrew Gettelman, he suggested me to post my description below.


I dig into the variable DP_CLD in CESM2_1 CAM6.


I guess there should be a bug somewhere in CESM2_1. Let me show you why.


DP_CLD is called outfld in [subroutine cldfrc] in [cloud_fraction.F90]. The variable for output DP_CLD is calculated as [deepcu] which is calculated based on mass flux in [subroutine cldfrc].  Then [subroutine cldfrc] is called by [subroutine macrop_driver_tend] which is called in [physpkg.F90].

But the only condition met to call [macrop_driver_tend] is it is not using CLUBB.

Therefore, in default CESM2_1, CLUBB is default setting. That means in default CESM2_1, [macrop_driver_tend] is not called. [clubb_tend_cam] is called instead. That indicates [subroutine cldfrc] is not called and DP_CLD is not called  outfld (The only place to call outfld DP_CLD is in [subroutine cldfrc].).

In CLUBB scheme, [deepcu] is also calculated based on convective mass flux. But in CLUBB scheme, [deepcu] is never called outfld.


But very wired, no error message pops up and DP_CLD can be output though its value is zero everywhere.

I am pretty sure an error should appear when I put DP_CLD in the namelist to output it but the original code to call outfld is not called.

I encountered a very similar error before. When I tried to output a variable which is calculated in RK stratiform scheme while MG stratiform scheme is used.

There should be an error.


Just let you know and maybe some one responsible for this should fix/improve this.

This helps user (like me) have a sense that this variable cannot be used and offer a warning that this variable should be avoided, or be more careful to use this variable.




Lin Lin
University of Wyoming


I agree that this is a bug.  cldfrc_init issues an addfld call for DP_CLD
which puts it in the master field list.  That's why there is no error when
DP_CLD is requested for output.  Since clubb_tend_cam computes this
variable it should also issue the outfld call to put the values in the
history buffers.  But the outfld call is missing and so the history buffers
contain zeros.

Thanks for pointing out the problem.  We'll fix it for the next release.

Log in or register to post comments

Who's new

  • bxz125@...
  • yixiaozhang@...
  • dongxia.yang@...
  • 2017301110179@...
  • zhangpengcheng@...