213 |
dragv(i,j,L) = sign( min(0.006,abs(dragv(i,j,L))),dragv(i,j,L) ) |
dragv(i,j,L) = sign( min(0.006,abs(dragv(i,j,L))),dragv(i,j,L) ) |
214 |
dragt(i,j,L) = -( uz(i,j,L)*dragu(i,j,L)+vz(i,j,L)*dragv(i,j,L) ) |
dragt(i,j,L) = -( uz(i,j,L)*dragu(i,j,L)+vz(i,j,L)*dragv(i,j,L) ) |
215 |
. *cpinv |
. *cpinv |
216 |
c dudt(i,j,L) = dudt(i,j,L) + dragu(i,j,L) |
dudt(i,j,L) = dudt(i,j,L) + dragu(i,j,L) |
217 |
c dvdt(i,j,L) = dvdt(i,j,L) + dragv(i,j,L) |
dvdt(i,j,L) = dvdt(i,j,L) + dragv(i,j,L) |
218 |
c dtdt(i,j,L) = dtdt(i,j,L) + dragt(i,j,L)/pkz(i,j,L) |
dtdt(i,j,L) = dtdt(i,j,L) + dragt(i,j,L)*pz(i,j)/pkz(i,j,L) |
219 |
enddo |
enddo |
220 |
enddo |
enddo |
221 |
enddo |
enddo |
414 |
do l = 2,Lm |
do l = 2,Lm |
415 |
do i = 1,irun |
do i = 1,irun |
416 |
roiave = ( 1./ro(i,L-1) + 1./ro(i,L) )*0.5 |
roiave = ( 1./ro(i,L-1) + 1./ro(i,L) )*0.5 |
417 |
dz(i,L) = agrav*roiave*( pl(i,Lm+1-L-1)-pl(i,Lm+1-L) ) |
dz(i,L) = agrav*roiave*( pl(i,Lm+2-L)-pl(i,Lm+1-L) ) |
418 |
enddo |
enddo |
419 |
enddo |
enddo |
420 |
|
|
433 |
|
|
434 |
do i = 1,irun |
do i = 1,irun |
435 |
do L = 1,nbase(i)-1 |
do L = 1,nbase(i)-1 |
436 |
robar(i) = robar(i) + ro(i,L) * (ple(i,Lm+1-L)-ple(i,Lm+1-L+1)) |
robar(i) = robar(i) + ro(i,L) * (ple(i,Lm+2-L)-ple(i,Lm+1-L)) |
437 |
ubar(i) = ubar(i) + u(i,Lm+1-L) * (ple(i,Lm+1-L)-ple(i,Lm+1-L+1)) |
ubar(i) = ubar(i) + u(i,Lm+1-L) * (ple(i,Lm+2-L)-ple(i,Lm+1-L)) |
438 |
vbar(i) = vbar(i) + v(i,Lm+1-L) * (ple(i,Lm+1-L)-ple(i,Lm+1-L+1)) |
vbar(i) = vbar(i) + v(i,Lm+1-L) * (ple(i,Lm+2-L)-ple(i,Lm+1-L)) |
439 |
enddo |
enddo |
440 |
enddo |
enddo |
441 |
|
|
442 |
do i = 1,irun |
do i = 1,irun |
443 |
robar(i) = robar(i)/(ple(i,Lm)-ple(i,Lm+1-nbase(i))) * 100.0 |
robar(i) = robar(i)/(ps(i)-ple(i,Lm+1-nbase(i)-1)) * 100.0 |
444 |
ubar(i) = ubar(i)/(ple(i,Lm)-ple(i,Lm+1-nbase(i))) |
ubar(i) = ubar(i)/(ps(i)-ple(i,Lm+1-nbase(i)-1)) |
445 |
vbar(i) = vbar(i)/(ple(i,Lm)-ple(i,Lm+1-nbase(i))) |
vbar(i) = vbar(i)/(ps(i)-ple(i,Lm+1-nbase(i)-1)) |
446 |
|
|
447 |
speed(i) = sqrt( ubar(i)*ubar(i) + vbar(i)*vbar(i) ) |
speed(i) = sqrt( ubar(i)*ubar(i) + vbar(i)*vbar(i) ) |
448 |
ang(i) = atan2(vbar(i),ubar(i)) |
ang(i) = atan2(vbar(i),ubar(i)) |
469 |
enddo |
enddo |
470 |
do i = 1,irun |
do i = 1,irun |
471 |
do l = 2,nbase(i) |
do l = 2,nbase(i) |
472 |
nbar(i) = nbar(i) + bv(i,L)*(pl(i,Lm+1-L-1)-pl(i,Lm+1-L)) |
nbar(i) = nbar(i) + bv(i,L)*(pl(i,Lm+2-L)-pl(i,Lm+1-L)) |
473 |
enddo |
enddo |
474 |
enddo |
enddo |
475 |
|
|
658 |
|
|
659 |
do i = 1,irun |
do i = 1,irun |
660 |
do l = nthin(i)+1,Lm |
do l = nthin(i)+1,Lm |
661 |
coef = -grav*ple(i,Lm+1)/dpres(i,Lm+1-L) |
coef = -grav*ps(i)/dpres(i,Lm+1-L) |
662 |
dudt(i,Lm+1-L) = coef*(xtens(i,L+1)-xtens(i,L)) |
dudt(i,Lm+1-L) = coef*(xtens(i,L+1)-xtens(i,L)) |
663 |
dvdt(i,Lm+1-L) = coef*(ytens(i,L+1)-ytens(i,L)) |
dvdt(i,Lm+1-L) = coef*(ytens(i,L+1)-ytens(i,L)) |
664 |
enddo |
enddo |
667 |
c Momentum change near the surface |
c Momentum change near the surface |
668 |
c -------------------------------- |
c -------------------------------- |
669 |
do i = 1,irun |
do i = 1,irun |
670 |
coef = grav*ple(i,Lm+1)/(ple(i,Lm+1-nthin(i))-ple(i,Lm+1)) |
coef = grav*ps(i)/(ple(i,Lm+1-nthin(i))-ple(i,Lm+1)) |
671 |
dudt(i,Lm) = coef*(xtens(i,nthin(i)+1)-xtens(i,1)) |
dudt(i,Lm) = coef*(xtens(i,nthin(i)+1)-xtens(i,1)) |
672 |
dvdt(i,Lm) = coef*(ytens(i,nthin(i)+1)-ytens(i,1)) |
dvdt(i,Lm) = coef*(ytens(i,nthin(i)+1)-ytens(i,1)) |
673 |
enddo |
enddo |