about iAr in ice_smolar.h

Discussion about modeling ice with ROMS

Moderators: arango, robertson

Post Reply
Message
Author
jackdai
Posts: 2
Joined: Thu Dec 20, 2012 8:58 pm
Location: UCLA

about iAr in ice_smolar.h

#1 Post by jackdai » Mon Jul 22, 2013 4:28 pm

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

User avatar
kate
Posts: 3683
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

Re: about iAr in ice_smolar.h

#2 Post by kate » Mon Jul 22, 2013 4:40 pm

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.

jackdai
Posts: 2
Joined: Thu Dec 20, 2012 8:58 pm
Location: UCLA

Re: about iAr in ice_smolar.h

#3 Post by jackdai » Mon Jul 22, 2013 5:04 pm

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 :D

User avatar
kate
Posts: 3683
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

Re: about iAr in ice_smolar.h

#4 Post by kate » Mon Jul 22, 2013 5:14 pm

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.

User avatar
kate
Posts: 3683
Joined: Wed Jul 02, 2003 5:29 pm
Location: IMS/UAF, USA

Re: about iAr in ice_smolar.h

#5 Post by kate » Mon Jul 22, 2013 5:24 pm

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!

Post Reply