53 |
integer Lbot(im1:im2,jm1:jm2,Nsx,Nsy) |
integer Lbot(im1:im2,jm1:jm2,Nsx,Nsy) |
54 |
|
|
55 |
_RL weights(im1:im2,jm1:jm2,lmphy) |
_RL weights(im1:im2,jm1:jm2,lmphy) |
56 |
|
_RL pphy(im1:im2,jm1:jm2,lmphy) |
57 |
_RL dpkedyn, dpkephy, windsum, qd |
_RL dpkedyn, dpkephy, windsum, qd |
58 |
integer i,j,L,Lout1,Lout2,Lphy |
integer i,j,L,Lout1,Lout2,Lphy |
59 |
_RL getcon, kappa |
_RL getcon, kappa |
60 |
|
|
61 |
kappa = getcon('KAPPA') |
kappa = getcon('KAPPA') |
62 |
|
|
63 |
|
C define physics grid mid level pressures |
64 |
|
do Lphy = 1,lmphy |
65 |
|
do j = jdim1,jdim2 |
66 |
|
do i = idim1,idim2 |
67 |
|
pphy(i,j,Lphy) = |
68 |
|
. (pephy(i,j,Lphy,bi,bj)+pephy(i,j,Lphy+1,bi,bj))/2. |
69 |
|
enddo |
70 |
|
enddo |
71 |
|
enddo |
72 |
|
|
73 |
c do loop for all dynamics (input) levels |
c do loop for all dynamics (input) levels |
74 |
do L = 1,lmdyn |
do L = 1,lmdyn |
75 |
c do loop for all grid points |
c do loop for all grid points |
85 |
endif |
endif |
86 |
Lout2 = nlperdyn(i,j,L,bi,bj) |
Lout2 = nlperdyn(i,j,L,bi,bj) |
87 |
c for U and V fields, need to compute for the weights: |
c for U and V fields, need to compute for the weights: |
88 |
|
cinterp1 dpkedyn = (pedyn(i,j,L,bi,bj)**kappa)- |
89 |
|
cinterp1 (pedyn(i,j,L+1,bi,bj)**kappa) |
90 |
|
dpkedyn = pedyn(i,j,L,bi,bj)-pedyn(i,j,L+1,bi,bj) |
91 |
if(flg.eq.1)then |
if(flg.eq.1)then |
|
cinterp1 dpkedyn = (pedyn(i,j,L,bi,bj)**kappa)- |
|
|
cinterp1 (pedyn(i,j,L+1,bi,bj)**kappa) |
|
|
dpkedyn = pedyn(i,j,L,bi,bj)-pedyn(i,j,L+1,bi,bj) |
|
92 |
windsum = 0. |
windsum = 0. |
93 |
do Lphy = Lout1+1,Lout2 |
do Lphy = Lout1+1,Lout2 |
94 |
cinterp1 dpkephy = (pephy(i,j,Lphy,bi,bj)**kappa)- |
cinterp1 dpkephy = (pephy(i,j,Lphy,bi,bj)**kappa)- |
102 |
weights(i,j,Lphy) = 1. |
weights(i,j,Lphy) = 1. |
103 |
if( (flg.eq.1).and.(windsum.ne.0.) ) |
if( (flg.eq.1).and.(windsum.ne.0.) ) |
104 |
. weights(i,j,Lphy)=windphy(i,j,Lphy,bi,bj)/windsum |
. weights(i,j,Lphy)=windphy(i,j,Lphy,bi,bj)/windsum |
105 |
|
if( (flg.eq.2) .and. (pedyn(i,j,L,bi,bj).lt.10000.)) then |
106 |
|
weights(i,j,Lphy) = |
107 |
|
. (qd-5. + (10.*(pedyn(i,j,L,bi,bj)-pphy(i,j,Lphy))/dpkedyn))/qd |
108 |
|
elseif( (flg.eq.2) .and. (pedyn(i,j,L,bi,bj).ge.10000.)) then |
109 |
|
weights(i,j,Lphy) = 1. |
110 |
|
endif |
111 |
qphy(i,j,Lphy,bi,bj) = qd * weights(i,j,Lphy) |
qphy(i,j,Lphy,bi,bj) = qd * weights(i,j,Lphy) |
112 |
enddo |
enddo |
113 |
endif |
endif |