@paogorman comments:
Another issue to think about is the small inconsistencies between SAM and CAM qsat (note CAM qsat is set in wv_saturation.f90). If the timestep is large, this is not much of a problem. But for smaller timesteps (e.g. if we subcycle), we can run into a problem because our approach is to:
- call the NN to update q
- convert back to qv,qc,qi
- calculate the tendency as the change in qv,qc,qi from before the NN call.
But in cloudy air this change will include an adjustment from CAM to SAM qsat, and this could be large when divided by a small timestep.
One option to deal with this problem is to call an extra conversion back from q to qv, qc, qi prior to the NN call.
Then the changes in qv, qc, qi can only result from the NN tendencies:
! Convert CAM Moistures and tabs to SAM q and t
call CAM_var_conversion(qv_sam, qc_sam, qi_sam, q_sam, tabs_sam, t_sam)
! Extra conversion to make qv, qc, qi consistent with SAM saturation
call SAM_var_conversion(t_sam, q_sam, tabs_sam, qv_sam, qc_sam, qi_sam)
@paogorman comments:
Another issue to think about is the small inconsistencies between SAM and CAM qsat (note CAM qsat is set in wv_saturation.f90). If the timestep is large, this is not much of a problem. But for smaller timesteps (e.g. if we subcycle), we can run into a problem because our approach is to:
But in cloudy air this change will include an adjustment from CAM to SAM qsat, and this could be large when divided by a small timestep.
One option to deal with this problem is to call an extra conversion back from q to qv, qc, qi prior to the NN call.
Then the changes in qv, qc, qi can only result from the NN tendencies: