Skip to content

Commit 92fe57d

Browse files
committed
Adding fixed wind speed fluxes
1 parent 17ae590 commit 92fe57d

File tree

3 files changed

+26
-16
lines changed

3 files changed

+26
-16
lines changed

params.f90

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -150,5 +150,9 @@ module params
150150
logical :: doradtendency = .false.
151151
real :: troptend = 1.5 ! Convective tendency in Pauluis & Garner [2006]
152152

153+
! Option to fix wind speed used in calculation of bulk surface fluxes
154+
! Taken from Peter Blossey's version of SAM
155+
logical :: dobulksfcflx = .false.
156+
real :: bulksfcflx_u = 0.
153157

154158
end module params

setparm.f90

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,8 @@ subroutine setparm
4848
! Parameters added by Kuang Lab at Harvard
4949
NAMELIST /KUANG_PARAMS/ dompiensemble, &
5050
dolayerperturb, tperturbi, qperturbi, tperturbA, qperturbA, &
51-
doradtendency, troptend
51+
doradtendency, troptend, &
52+
dobulksfcflx, bulksfcflx_u
5253

5354
!bloss: Create dummy namelist, so that we can figure out error code
5455
! for a mising namelist. This lets us differentiate between

surface.f90

Lines changed: 20 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,26 @@ subroutine surface()
3535

3636
if(landmask(i,j).eq.0) then
3737

38-
u_h = 0.5*(u(i+1,j,1)+u(i,j,1)) + ug
39-
v_h = 0.5*(v(i,j+YES3D,1)+v(i,j,1)) + vg
40-
ta_h = tabs(i,j,1)
41-
q_h = qv(i,j,1)
42-
t_h = tabs(i,j,1)*prespot(1)
43-
t_s = (sstxy(i,j)+t00)*prespoti(1)
44-
q_s = salt_factor*qsatw(sstxy(i,j)+t00,presi(1))
45-
46-
call oceflx(rho(1), u_h, v_h, ta_h, q_h, t_h, z(1)-zi(1), t_s, q_s, &
47-
fluxt0, fluxq0, taux0, tauy0)
48-
49-
fluxbu(i,j) = taux0/rho(1)
50-
fluxbv(i,j) = tauy0/rho(1)
51-
fluxbt(i,j) = fluxt0
52-
fluxbq(i,j) = fluxq0
38+
u_h = 0.5*(u(i+1,j,1)+u(i,j,1)) + ug
39+
v_h = 0.5*(v(i,j+YES3D,1)+v(i,j,1)) + vg
40+
ta_h = tabs(i,j,1)
41+
q_h = qv(i,j,1)
42+
t_h = tabs(i,j,1)*prespot(1)
43+
t_s = (sstxy(i,j)+t00)*prespoti(1)
44+
q_s = salt_factor*qsatw(sstxy(i,j)+t00,presi(1))
45+
46+
if (dobulksfcflx) then
47+
call oceflx(rho(1), u_h, v_h, ta_h, q_h, t_h, z(1)-zi(1), t_s, q_s, &
48+
fluxt0, fluxq0, taux0, tauy0)
49+
else
50+
call oceflx(rho(1), bulksfcflx_u, 0, ta_h, q_h, t_h, z(1)-zi(1), t_s, q_s, &
51+
fluxt0, fluxq0, taux0, tauy0)
52+
endif
53+
54+
fluxbu(i,j) = taux0/rho(1)
55+
fluxbv(i,j) = tauy0/rho(1)
56+
fluxbt(i,j) = fluxt0
57+
fluxbq(i,j) = fluxq0
5358

5459
end if
5560

0 commit comments

Comments
 (0)