Sea Ice Question (wind-water momentum transfer?)

Discussion about modeling ice with ROMS

Moderators: arango, robertson

Post Reply
Message
Author
bwhite
Posts: 2
Joined: Mon Aug 14, 2006 2:21 pm
Location: University of Minnesota

Sea Ice Question (wind-water momentum transfer?)

#1 Unread post by bwhite »

Hi-

I am working on a ROMS model for a large freshwater lake and have recently implemented sea ice in my model. I've noticed some odd behavior while testing things out in a simple 5 by 5 by 20 grid. My model run begins in early June (latitude 48 N). I've set minimum ice concentration to 0.00. Despite the lack of ice a model run with sea ice implemented and a model run without sea ice implemented show distinctly different behavior during the first summer. I'm thinking that they should look identical until the run with sea ice is actually affected by ice (i.e. the first winter). Unlike the run without ice, my run with sea ice shows little or no momentum transfer from winds to surface water until ice forms in the winter (?). The model run with ice shows relatively high surface water temperatures during the first summer, but relatively little of this energy is translated to deeper waters. Also, you do not see the fall turn-over driven spike in temperature in deeper water which does occur in the run without ice.

Any suggestions as to why there is so little wind-surface water momentum transfer despite the supposed lack of ice during the beginning of the run? Or what else might be causing the weird behavior I'm seeing?

Thanks!

Brooke

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

#2 Unread post by kate »

It sounds like a bug. You don't say which sea ice you are using or where it came from. Details?

bwhite
Posts: 2
Joined: Mon Aug 14, 2006 2:21 pm
Location: University of Minnesota

#3 Unread post by bwhite »

By which sea ice I'm using I assume you mean code version? I'm using ROMS 3.1. The header in the ice.in file says 'version 2.0' though I'm not sure if that's referring to the version of the sea ice code or is a remnant of when the sea code was included with ROMS 2.0.

I received the code with sea ice module from Jay Austin who believes he obtained it from you, Kate.

I hope that's the info you're looking for! :)

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

#4 Unread post by kate »

Yes, that's what I wanted to know. Now, did you turn on BULK_FLUX and ICE_BULK_FLUX? Do you know if he's keeping up with my svn site or is this something from a while ago? Either way, the ice code hasn't been vetted by Hernan and my ICE_BULK_FLUX won't work with OpenMP.

msd
Posts: 17
Joined: Fri Jun 27, 2003 10:10 pm
Location: CCPO/ODU, USA

Re: Sea Ice Question (wind-water momentum transfer?)

#5 Unread post by msd »

The version of the sea ice code that I have did have a bug in the wind/open water momentum transfer, but only if you're using BULK_FLUX to calculate the wind stress for the open water from wind speed.

In ice_vbc.F, sustr_aw and svstr_aw are assumed to be in N/m^2 and are divided by rho0 to get to the needed m^2/s^2 for the total (ice and wind) stress on the water. I assume that when one is reading in NCEP (or other) fluxes, the stress is given N/m^2 and this is fine. However, in bulk_flux.F, where the sustr_aw and svstr_aw are set if you're not reading in stresses:

Code: Select all

!
!  Compute kinematic, surface wind stress (m2/s2).
!
       cff=0.5_r8/rho0
       DO j=JstrR,JendR
         DO i=Istr,IendR
           sustr(i,j)=cff*(Taux(i-1,j)+Taux(i,j))
# ifdef MASKING
           sustr(i,j)=sustr(i,j)*umask(i,j)
# endif
# ifdef ICE_MODEL
           sustr_aw(i,j) = sustr(i,j)
# endif
         END DO
       END DO
sustr(i,j) is already in units of m^2/s^2 (the Taux that it's calculated from is in N/m^2). So, if you're using the sea ice and calculating the open water stress from bulk_flux.F, the open water portion of the total stress on the water will be too low by a factor of rho0. The wind stresses on the ice are still fine.

I've just simply fixed this by multiplying sustr_aw by rho0 in the bulk_flux.F code so that I didn't have to mess with the ice code. Paul Budgell knows about this and (I believe) has fixed it in his current release. I don't know what version you have, but this sounds like it could be the problem.

Good luck.

Post Reply