3 |
|
|
4 |
#include "FIZHI_OPTIONS.h" |
#include "FIZHI_OPTIONS.h" |
5 |
subroutine swrio (nymd,nhms,bi,bj,ndswr,myid,istrip,npcs, |
subroutine swrio (nymd,nhms,bi,bj,ndswr,myid,istrip,npcs, |
6 |
. low_level,mid_level, |
. low_level,mid_level,im,jm,lm, |
7 |
. pz,plz,plze,dpres,pkht,pkz,tz,qz,oz,co2, |
. pz,plz,plze,dpres,pkht,pkz,tz,qz,oz,co2, |
8 |
. albvisdr,albvisdf,albnirdr,albnirdf, |
. albvisdr,albvisdf,albnirdr,albnirdf, |
9 |
. dtradsw,dtswclr,radswg,swgclr, |
. dtradsw,dtswclr,radswg,swgclr, |
10 |
. fdifpar,fdirpar,osr,osrclr, |
. fdifpar,fdirpar,osr,osrclr, |
11 |
. im,jm,lm,ptop, |
. ptop,nswcld,cldsw,cswmo,nswlz,swlz, |
|
. nswcld,cldsw,cswmo,nswlz,swlz, |
|
12 |
. lpnt,imstturb,qliqave,fccave,landtype,xlats,xlons) |
. lpnt,imstturb,qliqave,fccave,landtype,xlats,xlons) |
13 |
|
|
14 |
implicit none |
implicit none |
238 |
enddo |
enddo |
239 |
enddo |
enddo |
240 |
enddo |
enddo |
241 |
ncldras = ncldras + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) ncldras = ncldras + 1 |
242 |
endif |
endif |
243 |
|
|
244 |
if( icldtot.gt.0 ) then |
if( icldtot.gt.0 ) then |
250 |
enddo |
enddo |
251 |
enddo |
enddo |
252 |
enddo |
enddo |
253 |
ncldtot = ncldtot + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) ncldtot = ncldtot + 1 |
254 |
endif |
endif |
255 |
|
|
256 |
if( icldlow.gt.0 ) then |
if( icldlow.gt.0 ) then |
259 |
qdiag(i,j,icldlow,bi,bj) = qdiag(i,j,icldlow,bi,bj) + cldlow(i,j) |
qdiag(i,j,icldlow,bi,bj) = qdiag(i,j,icldlow,bi,bj) + cldlow(i,j) |
260 |
enddo |
enddo |
261 |
enddo |
enddo |
262 |
ncldlow = ncldlow + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) ncldlow = ncldlow + 1 |
263 |
endif |
endif |
264 |
|
|
265 |
if( icldmid.gt.0 ) then |
if( icldmid.gt.0 ) then |
268 |
qdiag(i,j,icldmid,bi,bj) = qdiag(i,j,icldmid,bi,bj) + cldmid(i,j) |
qdiag(i,j,icldmid,bi,bj) = qdiag(i,j,icldmid,bi,bj) + cldmid(i,j) |
269 |
enddo |
enddo |
270 |
enddo |
enddo |
271 |
ncldmid = ncldmid + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) ncldmid = ncldmid + 1 |
272 |
endif |
endif |
273 |
|
|
274 |
if( icldhi.gt.0 ) then |
if( icldhi.gt.0 ) then |
277 |
qdiag(i,j,icldhi,bi,bj) = qdiag(i,j,icldhi,bi,bj) + cldhi(i,j) |
qdiag(i,j,icldhi,bi,bj) = qdiag(i,j,icldhi,bi,bj) + cldhi(i,j) |
278 |
enddo |
enddo |
279 |
enddo |
enddo |
280 |
ncldhi = ncldhi + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) ncldhi = ncldhi + 1 |
281 |
endif |
endif |
282 |
|
|
283 |
if( ilzrad.gt.0 ) then |
if( ilzrad.gt.0 ) then |
289 |
enddo |
enddo |
290 |
enddo |
enddo |
291 |
enddo |
enddo |
292 |
nlzrad = nlzrad + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) nlzrad = nlzrad + 1 |
293 |
endif |
endif |
294 |
|
|
295 |
c Albedo Diagnostics |
c Albedo Diagnostics |
301 |
. albvisdr(i,j) |
. albvisdr(i,j) |
302 |
enddo |
enddo |
303 |
enddo |
enddo |
304 |
nalbvisdr = nalbvisdr + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) nalbvisdr = nalbvisdr + 1 |
305 |
endif |
endif |
306 |
|
|
307 |
if( ialbvisdf.gt.0 ) then |
if( ialbvisdf.gt.0 ) then |
311 |
. albvisdf(i,j) |
. albvisdf(i,j) |
312 |
enddo |
enddo |
313 |
enddo |
enddo |
314 |
nalbvisdf = nalbvisdf + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) nalbvisdf = nalbvisdf + 1 |
315 |
endif |
endif |
316 |
|
|
317 |
if( ialbnirdr.gt.0 ) then |
if( ialbnirdr.gt.0 ) then |
321 |
. albnirdr(i,j) |
. albnirdr(i,j) |
322 |
enddo |
enddo |
323 |
enddo |
enddo |
324 |
nalbnirdr = nalbnirdr + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) nalbnirdr = nalbnirdr + 1 |
325 |
endif |
endif |
326 |
|
|
327 |
if( ialbnirdf.gt.0 ) then |
if( ialbnirdf.gt.0 ) then |
331 |
. albnirdf(i,j) |
. albnirdf(i,j) |
332 |
enddo |
enddo |
333 |
enddo |
enddo |
334 |
nalbnirdf = nalbnirdf + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) nalbnirdf = nalbnirdf + 1 |
335 |
endif |
endif |
336 |
|
|
337 |
C Compute Optical Thicknesses and Diagnostics |
C Compute Optical Thicknesses and Diagnostics |
356 |
enddo |
enddo |
357 |
enddo |
enddo |
358 |
enddo |
enddo |
359 |
ntauave = ntauave + 1 |
if ( (bi.eq.1) .and. (bj.eq.1) ) ntauave = ntauave + 1 |
360 |
endif |
endif |
361 |
|
|
362 |
if( itaucld.gt.0 ) then |
if( itaucld.gt.0 ) then |
1030 |
c-----include the pre-computed table for cai |
c-----include the pre-computed table for cai |
1031 |
|
|
1032 |
#include "cai-dat.h" |
#include "cai-dat.h" |
1033 |
c save caib,caif |
save caib,caif |
1034 |
|
|
1035 |
|
|
1036 |
c-----clouds within each of the high, middle, and low clouds are |
c-----clouds within each of the high, middle, and low clouds are |
1543 |
enddo |
enddo |
1544 |
enddo |
enddo |
1545 |
|
|
1546 |
c call cldflx (m,n,np,ict,icb,cc,rr,tt,td,rs,ts, |
call cldflx (m,n,np,ict,icb,cc,rr,tt,td,rs,ts, |
1547 |
c * fclr,fall,fsdir,fsdif) |
* fclr,fall,fsdir,fsdif) |
1548 |
|
|
1549 |
do k= 1, np+1 |
do k= 1, np+1 |
1550 |
do j= 1, n |
do j= 1, n |
1914 |
fsdif(i,j) = 0. |
fsdif(i,j) = 0. |
1915 |
enddo |
enddo |
1916 |
enddo |
enddo |
1917 |
c call cldflx (m,n,np,ict,icb,cc,rr,tt,td,rs,ts, |
call cldflx (m,n,np,ict,icb,cc,rr,tt,td,rs,ts, |
1918 |
c * fclr,fall,fsdir,fsdif) |
* fclr,fall,fsdir,fsdif) |
1919 |
|
|
1920 |
do k= 1, np+1 |
do k= 1, np+1 |
1921 |
do j= 1, n |
do j= 1, n |