56 |
c Require 12 (or 15) levels near the surface (300 mb worth) for fizhi. |
c Require 12 (or 15) levels near the surface (300 mb worth) for fizhi. |
57 |
c the dp's are in the dptry arrays: |
c the dp's are in the dptry arrays: |
58 |
integer ntry,ntry10,ntry40 |
integer ntry,ntry10,ntry40 |
59 |
data ntry10 /12/ |
parameter (ntry10 = 12) |
60 |
data ntry40 /15/ |
parameter (ntry40 = 12) |
61 |
_RL dptry(15),dptry10(12),dptry40(15) |
_RL dptry(15),dptry10(ntry10),dptry40(ntry40) |
62 |
|
_RL bot_thick,bot_thick40 |
63 |
_RL dptry_accum(15) |
_RL dptry_accum(15) |
64 |
data dptry10/300.000,600.000,1000.000,1400.000,1700.000,2500.000, |
data dptry10/300.000,600.000,1000.000,1400.000,1700.000,2500.000, |
65 |
. 2500.000,2500.000,2500.000,5000.000,5000.000,5000.000/ |
. 2500.000,2500.000,2500.000,5000.000,5000.000,5000.000/ |
66 |
data dptry40/300.000,600.000,1000.000,1400.000,1700.000, |
data dptry40/300.000,600.000, 800.000, 800.000,1250.000, |
67 |
. 2500.000,2500.000,2500.000,2500.000,2500.000,2500.000, |
. 1250.000,2500.000,2500.000,2500.000,2500.000,2500.000, |
68 |
. 2500.000,2500.000,2500.000,2500.000/ |
. 2500.000/ |
69 |
|
data bot_thick40/20000.000/ |
70 |
_RL deltap, dpstar_accum |
_RL deltap, dpstar_accum |
71 |
integer nlbotmax, nstart, nlevs, nlphys, ndone |
integer nlbotmax, nstart, nlevs, nlphys, ndone |
|
integer nextra |
|
72 |
c |
c |
73 |
if( (Nr.eq.10) .or. (Nr.eq.20) ) then |
if( (Nr.eq.10) .or. (Nr.eq.20) ) then |
74 |
ntry = ntry10 |
ntry = ntry10 |
75 |
|
bot_thick = bot_thick40 |
76 |
do L = 1,ntry |
do L = 1,ntry |
77 |
dptry(L) = dptry10(L) |
dptry(L) = dptry10(L) |
78 |
enddo |
enddo |
79 |
elseif(Nr.eq.40) then |
elseif((Nr.eq.40).or.(Nr.eq.46)) then |
80 |
ntry = ntry40 |
ntry = ntry40 |
81 |
|
bot_thick = bot_thick40 |
82 |
do L = 1,ntry |
do L = 1,ntry |
83 |
dptry(L) = dptry40(L) |
dptry(L) = dptry40(L) |
84 |
enddo |
enddo |
87 |
stop |
stop |
88 |
endif |
endif |
89 |
c |
c |
|
nextra = ntry |
|
|
c |
|
90 |
do L = 1,Nr |
do L = 1,Nr |
91 |
do j = j1,j2 |
do j = j1,j2 |
92 |
do i = i1,i2+1 |
do i = i1,i2+1 |
103 |
dpstar_accum = 0. |
dpstar_accum = 0. |
104 |
do L = 1,Nr |
do L = 1,Nr |
105 |
dpstar_accum = dpstar_accum + drF(L) |
dpstar_accum = dpstar_accum + drF(L) |
106 |
if(dpstar_accum.le.30000.) nlevs = nlevs+1 |
if(dpstar_accum.le.bot_thick) nlevs = nlevs+1 |
107 |
enddo |
enddo |
108 |
numlevphys = Nr - nlevs + ntry + 1 |
numlevphys = Nr - nlevs + ntry + 1 |
109 |
c |
c |