35 |
|
|
36 |
integer i, j |
integer i, j |
37 |
|
|
38 |
if(klev.eq.Nr)then |
if(klev.eq.Nr .or. rC(klev).lt.1000.)then |
39 |
rayleighdrag = 1./(31.*86400.*2.) |
rayleighdrag = 1./(31.*86400.*2.) |
40 |
else |
else |
41 |
rayleighdrag = 0. |
rayleighdrag = 0. |
84 |
|
|
85 |
integer i, j |
integer i, j |
86 |
|
|
87 |
if(klev.eq.Nr)then |
if(klev.eq.Nr .or. rC(klev).lt.1000.)then |
88 |
rayleighdrag = 1./(31.*86400.*2.) |
rayleighdrag = 1./(31.*86400.*2.) |
89 |
else |
else |
90 |
rayleighdrag = 0. |
rayleighdrag = 0. |
132 |
|
|
133 |
integer i, j |
integer i, j |
134 |
|
|
135 |
if(klev.eq.Nr)then |
if(klev.eq.Nr .or. rC(klev).lt.1000.)then |
136 |
cp = getcon('CP') |
cp = getcon('CP') |
137 |
kappa = getcon('KAPPA') |
kappa = getcon('KAPPA') |
138 |
pNrkappa = (rC(Nr)/100000.)**kappa |
pNrkappa = (rC(klev)/100000.)**kappa |
139 |
rayleighdrag = 1./((31.*86400.*2.)*(pNrkappa*cp)) |
rayleighdrag = 1./((31.*86400.*2.)*(pNrkappa*cp)) |
140 |
else |
else |
141 |
rayleighdrag = 0. |
rayleighdrag = 0. |
145 |
do i=iMin,iMax |
do i=iMin,iMax |
146 |
gT(i,j,kLev,bi,bj) = maskC(i,j,kLev,bi,bj) |
gT(i,j,kLev,bi,bj) = maskC(i,j,kLev,bi,bj) |
147 |
. *( gT(i,j,kLev,bi,bj) + gthphy(i,j,kLev,bi,bj) ) |
. *( gT(i,j,kLev,bi,bj) + gthphy(i,j,kLev,bi,bj) ) |
148 |
. + rayleighdrag * |
. + rayleighdrag * 0.5 * |
149 |
. (maskW(i,j,kLev,bi,bj)*uVel(i,j,kLev,bi,bj)*uVel(i,j,kLev,bi,bj)+ |
. (maskW(i,j,kLev,bi,bj)*uVel(i,j,kLev,bi,bj)*uVel(i,j,kLev,bi,bj)+ |
150 |
. maskS(i,j,kLev,bi,bj)*vVel(i,j,kLev,bi,bj)*vVel(i,j,kLev,bi,bj)) |
. maskW(i+1,j,kLev,bi,bj)* |
151 |
|
. uVel(i+1,j,kLev,bi,bj)*uVel(i+1,j,kLev,bi,bj)+ |
152 |
|
. maskS(i,j,kLev,bi,bj)*vVel(i,j,kLev,bi,bj)*vVel(i,j,kLev,bi,bj)+ |
153 |
|
. maskS(i,j+1,kLev,bi,bj)* |
154 |
|
. vVel(i,j+1,kLev,bi,bj)*vVel(i,j+1,kLev,bi,bj)) |
155 |
enddo |
enddo |
156 |
enddo |
enddo |
157 |
|
|