Scheduled Downtime
On Tuesday 24 October 2023 @ 5pm MT the forums will be in read only mode in preparation for the downtime. On Wednesday 25 October 2023 @ 5am MT, this website will be down for maintenance and expected to return online later in the morning.
Normal Operations
The forums are back online with normal operations. If you notice any issues or errors related to the forums, please reach out to help@ucar.edu

Which subroutine in physpkg.f90 should be modified to change DTCOND?

Hi all,

I wang to do sensitivity experiments by modifying latent heating using the CAM4 in CEMS1.2.0, that is, I want to modify DTCOND, but I don't know which subroutine in physpkg.f90 should be modified specifically.Are the following four sections modified: convect_shallow_tend, convect_deep_tend, Stratiform_tend, and macrop_tend?Or should other subroutines be modified?

Thanks very much!
 

brianpm

Active Member
In CAM4, I believe that DTCOND is decomposed as
DTCOND = [DRYADJDT] + [ZMTOTDT] + [CMFTOTDT] + [PCWDT]
where
[ZMTOTDT] = ZMDT + EVAPTZM + ZMMTT
[CMFTOTDT] = CMFDT + EVAPTCM
[PCWDT] = HPROGCLD/CPAIR + HSED/CPAIR
and CPAIR = 1.00464e3 J/(kg K), and the bold values indicate that these can be directly written to the history files.

There are many potential ways to modify the latent heating. One way which we tried a few years ago was to subtract each parameterization's tendency from the state at the end of the physics. That amounted to instantaneously removing DTCOND at the end of the timestep. The trade-off is that doing that that way allows all the physics processes to work (e.g., making clouds, doing radiative heating, condensing/evaporating, etc) as if everything were "normal," but then to remove the heating associated with the moist physics (deep, shallow, stratiform, microphysics). You might have already tried to directly modify the latent heat of vaporization and/or sublimation; if so, you probably noticed that the model crashes with very small values. That makes sense because L ends up in the denominator of lots of expressions along they way. Another approach would be to stop each parameterization from changing the temperature by modifying physics_update or something similar to that. This would stop the parameterizations from receiving the updated state from the previous parameterization (similar to process splitting the schemes); you'd have to decide what to do about moisture effects etc.
 
Top