Hi,there is a variability in ice model -- iAr, seems it only appears in ice_smolar.h, but can you tell me, what it stands for, and how to choose the value.
Best
about iAr in ice_smolar.h
Re: about iAr in ice_smolar.h
That code is protected by "#ifndef ICE_UPWIND" and I have always run with ICE_UPWIND defined. Have you tried that or do you have some reason not to? Still, it's a good question.
Re: about iAr in ice_smolar.h
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
Re: about iAr in ice_smolar.h
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.
Re: about iAr in ice_smolar.h
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).
Good catch!