Discussion about modeling ice with ROMS
5 posts • Page 1 of 1
Hi Kate, thanks for your answer. It is just an interesting question for me. Because I read a paper about mpdata method, and said that is much better than others. So I want to know how better it can be. And in the original formula, there is no iAr, it should be added by the developer, so I want to get the answer
Thus you learn that I am not the developer, but merely someone who has used this code. I could probably figure it out given sufficient time and energy, but my priorities are currently elsewhere. I have asked the developer of ice_smolar to view this thread.
And we have an answer:
It has been a long time since I looked at this. It looks like on line 843 in ice_smolar.h, iAr(i,j) should be replaced with pm(i,j)*pn(i,j) .
#define ICE_SMOLAR activates the ice_smolar.h code, but if #define ICE_UPWIND is used, then just 1st order upwind differencing is used for advection. If ICE_UPWIND is undefined while ICE_SMOLAR is defined, then you get the anti-diffusive step of MPDATA after the upwind differencing is applied. Like you, I have been defining both ICE_SMOLAR and ICE_UPWIND, since I find the extra bit of numerical diffusion beneficial to the ice dynamics (and it avoids the need to apply ICE_SMOOTH smoothing).