25 subroutine prec_scops(npoints,nlev,ncol,ls_p_rate,cv_p_rate,
35 INTEGER i,
j,ilev,ibox,cv_col
37 REAL ls_p_rate(npoints,nlev),cv_p_rate(npoints,nlev)
39 REAL frac_out(npoints,
ncol,nlev)
44 REAL prec_frac(npoints,
ncol,nlev)
50 INTEGER flag_ls, flag_cv
51 INTEGER frac_out_ls(npoints,
ncol),frac_out_cv(npoints,
ncol)
55 if (cv_col .eq. 0) cv_col=1
60 prec_frac(
j,ibox,ilev) = 0
72 if (frac_out(
j,ibox,ilev) .eq. 1)
then
75 if (frac_out(
j,ibox,ilev) .eq. 2)
then
79 if (flag_ls .eq. 1)
then
82 if (flag_cv .eq. 1)
then
93 if (ls_p_rate(
j,1) .gt. 0.)
then
95 if (frac_out(
j,ibox,1) .eq. 1)
then
96 prec_frac(
j,ibox,1) = 1
100 if (flag_ls .eq. 0)
then
102 if (frac_out(
j,ibox,2) .eq. 1)
then
103 prec_frac(
j,ibox,1) = 1
108 if (flag_ls .eq. 0)
then
110 if (frac_out_ls(
j,ibox) .eq. 1)
then
111 prec_frac(
j,ibox,1) = 1
116 if (flag_ls .eq. 0)
then
119 prec_frac(
j,ibox,1) = 1
125 if (cv_p_rate(
j,1) .gt. 0.)
then
127 if (frac_out(
j,ibox,1) .eq. 2)
then
128 if (prec_frac(
j,ibox,1) .eq. 0)
then
129 prec_frac(
j,ibox,1) = 2
131 prec_frac(
j,ibox,1) = 3
136 if (flag_cv .eq. 0)
then
138 if (frac_out(
j,ibox,2) .eq. 2)
then
139 if (prec_frac(
j,ibox,1) .eq. 0)
then
140 prec_frac(
j,ibox,1) = 2
142 prec_frac(
j,ibox,1) = 3
148 if (flag_cv .eq. 0)
then
150 if (frac_out_cv(
j,ibox) .eq. 1)
then
151 if (prec_frac(
j,ibox,1) .eq. 0)
then
152 prec_frac(
j,ibox,1) = 2
154 prec_frac(
j,ibox,1) = 3
160 if (flag_cv .eq. 0)
then
162 if (prec_frac(
j,ibox,1) .eq. 0)
then
163 prec_frac(
j,ibox,1) = 2
165 prec_frac(
j,ibox,1) = 3
183 if (ls_p_rate(
j,ilev) .gt. 0.)
then
185 if ((frac_out(
j,ibox,ilev) .eq. 1) .or.
186 & ((prec_frac(
j,ibox,ilev-1) .eq. 1)
187 & .or. (prec_frac(
j,ibox,ilev-1) .eq. 3)))
then
188 prec_frac(
j,ibox,ilev) = 1
192 if ((flag_ls .eq. 0) .and. (ilev .lt. nlev))
then
194 if (frac_out(
j,ibox,ilev+1) .eq. 1)
then
195 prec_frac(
j,ibox,ilev) = 1
200 if (flag_ls .eq. 0)
then
202 if (frac_out_ls(
j,ibox) .eq. 1)
then
203 prec_frac(
j,ibox,ilev) = 1
208 if (flag_ls .eq. 0)
then
211 prec_frac(
j,ibox,ilev) = 1
216 if (cv_p_rate(
j,ilev) .gt. 0.)
then
218 if ((frac_out(
j,ibox,ilev) .eq. 2) .or.
219 & ((prec_frac(
j,ibox,ilev-1) .eq. 2)
220 & .or. (prec_frac(
j,ibox,ilev-1) .eq. 3)))
then
221 if (prec_frac(
j,ibox,ilev) .eq. 0)
then
222 prec_frac(
j,ibox,ilev) = 2
224 prec_frac(
j,ibox,ilev) = 3
229 if ((flag_cv .eq. 0) .and. (ilev .lt. nlev))
then
231 if (frac_out(
j,ibox,ilev+1) .eq. 2)
then
232 if (prec_frac(
j,ibox,ilev) .eq. 0)
then
233 prec_frac(
j,ibox,ilev) = 2
235 prec_frac(
j,ibox,ilev) = 3
241 if (flag_cv .eq. 0)
then
243 if (frac_out_cv(
j,ibox) .eq. 1)
then
244 if (prec_frac(
j,ibox,ilev) .eq. 0)
then
245 prec_frac(
j,ibox,ilev) = 2
247 prec_frac(
j,ibox,ilev) = 3
253 if (flag_cv .eq. 0)
then
255 if (prec_frac(
j,ibox,ilev) .eq. 0)
then
256 prec_frac(
j,ibox,ilev) = 2
258 prec_frac(
j,ibox,ilev) = 3