Changes between Initial Version and Version 1 of Ticket #1180, comment 6
 Timestamp:
 20180621T18:21:44+02:00 (3 years ago)
Legend:
 Unmodified
 Added
 Removed
 Modified

Ticket #1180, comment 6
initial v1 10 10 since the diffusive flux can be expressed as ahm * ( dT/dx  uslope * dT/dz ), the problem arises because dT/dx  uslope * dT/dz < 0 (I am assuming here that all terms are > 0) which translates into the condition: 11 11 12 (dT/dx) / (dT/dz) < uslope <==> slope(T) < slope(rho). The solution is to reduce the term uslope * dT/dz so that it does not exceed dT/dx (same in ydirection).12 (dT/dx) / (dT/dz) < uslope <==> slope(T) < slope(rho). The solution is to reduce the term uslope * dT/dz so that it does not exceed dT/dx (same in ydirection). 13 13 14 This does the job very well. It is just a question to figure if the fix is to be applied to the whole column or just the bottom.14 This does the job very well. It is just a question to figure if the fix is to be applied to the whole column or just the bottom. 15 15 16 16 17 17 2) limit the density slope in ldfslp.F90 assuming some safety factor that translates density slope to tracer slope. In this case, the constrain is to make sure that the slope is flatter that allowed by local resolution, assuming that diT~dkT: uslope < safety_factor * e3u/e1u, or terms of gradients: 18 18 19 drho/dz <   drho/dx  e1u / e3u / safety_factor < 0.19 drho/dz <   drho/dx  e1u / e3u / safety_factor < 0. 20 20 21 I translated that in fortran as:21 I translated that in fortran as: 22 22 23 {{{#!f 23 24 zbu = MIN( zbu, 100._wp* ABS( zau ) ,  invalpslp * e1u(ji,jj) / fse3u(ji,jj,jk) * ABS( zau ) ) 24 25 zbv = MIN( zbv, 100._wp* ABS( zav ) ,  invalpslp * e2v(ji,jj) / fse3v(ji,jj,jk) * ABS( zav ) ) 26 }}} 25 27 26 Hence, the limitation will be even more stringent for thinner grid cells in the vertical, which is the case with partial steps at the bottom. [yes, the overshoot problem is more acute with thinner partial cells]28 Hence, the limitation will be even more stringent for thinner grid cells in the vertical, which is the case with partial steps at the bottom. [yes, the overshoot problem is more acute with thinner partial cells] 27 29 28 This works in my case with safety factor of 0.1 or 0.5, even when the limitation is only applied to the bottom cells. It would be more numerically rigorous to make sure that the slope is lower than any of the tracers, but that would involve a lot more computations and the spirit of the density slope would be lost...30 This works in my case with safety factor of 0.1 or 0.5, even when the limitation is only applied to the bottom cells. It would be more numerically rigorous to make sure that the slope is lower than any of the tracers, but that would involve a lot more computations and the spirit of the density slope would be lost... 29 31 30 32 31 [Note: I am not sure I get the rationale for the limiter "7.e+3_wp/fse3u(ji,jj,jk)* ABS( zau )". it seems to be based on some fixed ratio of ah to horizontal resolution, but dt varies also with the resolution, not clear that it is universal... Anyway it does not kick in in my case, so not stringent enough]33 [Note: I am not sure I get the rationale for the limiter "7.e+3_wp/fse3u(ji,jj,jk)* ABS( zau )". it seems to be based on some fixed ratio of ah to horizontal resolution, but dt varies also with the resolution, not clear that it is universal... Anyway it does not kick in in my case, so not stringent enough] 32 34 33 35