Dear all,
I'm trying to force my model with an analytical surface heat flux (which by itself works fine),
and a surface V-wind component of 10 m/s. However, I don't want to use the bulk flux algorithm,
as that would alter my surface heat flux forcing (right?). Therefore, I'm not defining ANA_WINDS.
So in order to add winds to my model, I'm setting svstr in ana_smflux.h to:
tau/rho_air = Cd * V^2 = (1.1e-3)*(100 m2/s2) = 0.1100 m2/s2
However, this causes my model to blow up after only a few time steps (i.e. basically immediately).
Is there something obvious I'm missing?
The blow up occurs at the surface layer, and the CFL violations are Cv = 2.803308E1, Cw = 4.738362E0
Thank you very much!
-aryan
Random model info:
N= 30 layers
dx = dx = 10 m
dt = 5 seconds
Domain = idealized (alongshore uniform) wedge shape, w/ bottom slope of 0.03
1000 m alongshore X 5000 m cross-shore; onshore depth = 1 m, offshore depth = 153 m
Linear drag (UVLDRAG) w/ rdrg = 3d-4 m/s
Offshore boundaries: FS = Chapman, 2D Mom'tm = Shchepetkin, 3D Mom'tum & Tracers = RadNud, TKE = Gradient
Alongshore BC's = all periodic
Onshore BC's = all closed
Simulation begins w/ uniform temperature & salinity fields, quiescent velocities
Analytical Surface Winds...no Bulk Flux
-
- Posts: 54
- Joined: Wed Jan 07, 2015 2:48 pm
- Location: University of California, Irvine
Re: Analytical Surface Winds...no Bulk Flux
I think you need tau over ocean density, not air density.
-
- Posts: 54
- Joined: Wed Jan 07, 2015 2:48 pm
- Location: University of California, Irvine
Re: Analytical Surface Winds...no Bulk Flux
Thank you for the quick reply, Kate.
Would using seawater density make a difference, since all I'm doing is
setting the value of Cd*V^2 to svstr?
Thanks,
-aryan
Would using seawater density make a difference, since all I'm doing is
setting the value of Cd*V^2 to svstr?
Thanks,
-aryan
Re: Analytical Surface Winds...no Bulk Flux
Just look at bulk_flux.F - it sets sustr to Taux/rho0.
Re: Analytical Surface Winds...no Bulk Flux
I actually have a simplified bulk_flux lying around:
Code: Select all
!
! Compute kinematic, surface wind stress (m2/s2).
!
cff = log(blk_ZW(ng)/10._r8)/vonKar
DO j=Jstr-1,JendR
DO i=Istr-1,IendR
Wspeed(i)=SQRT(Uwind(i,j)*Uwind(i,j)+Vwind(i,j)*Vwind(i,j))
U10(i) = Wspeed(i)/(1 + cff*sqrt(1.15e-3_r8))
U10o(i)=0.0_r8
diff(i) = abs(U10(i)-U10o(i))
Cd(i)=0.0_r8
END DO
DO while (maxval(diff(Istr-1:IendR)) > tol)
DO i=Istr-1,IendR
U10o(i) = u10(i)
IF (U10o(i) .lt. 10.15) THEN
Cd(i) = 1.15e-3_r8
ELSE
Cd(i) = 4.9e-4_r8 + 6.5e-5*U10o(i)
END IF
U10(i) = Wspeed(i)/(1+cff*sqrt(Cd(i)))
diff(i) = abs(U10(i)-U10o(i))
END DO
END DO
DO i=Istr-1,IendR
Taux(i,j) = rho_air*Cd(i)*U10(i)*Uwind(i,j)
Tauy(i,j) = rho_air*Cd(i)*U10(i)*Vwind(i,j)
END DO
END DO
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
END DO
END DO
DO j=Jstr,JendR
DO i=IstrR,IendR
svstr(i,j)=cff*(Tauy(i,j-1)+Tauy(i,j))
# ifdef MASKING
svstr(i,j)=svstr(i,j)*vmask(i,j)
# endif
END DO
END DO
-
- Posts: 54
- Joined: Wed Jan 07, 2015 2:48 pm
- Location: University of California, Irvine
Re: Analytical Surface Winds...no Bulk Flux
Oh boy do I feel like a dummy; I see my error.
As usual, thank you very much for your help Kate!
Best,
-aryan
As usual, thank you very much for your help Kate!
Best,
-aryan