44 integer :: i,Nlevels,Npoints
45 real :: pfull(gbx%npoints, gbx%nlevels)
46 real :: phalf(gbx%npoints, gbx%nlevels + 1)
47 real :: qv(gbx%npoints, gbx%nlevels)
48 real :: cc(gbx%npoints, gbx%nlevels)
49 real :: conv(gbx%npoints, gbx%nlevels)
50 real :: dtau_s(gbx%npoints, gbx%nlevels)
51 real :: dtau_c(gbx%npoints, gbx%nlevels)
52 real :: at(gbx%npoints, gbx%nlevels)
53 real :: dem_s(gbx%npoints, gbx%nlevels)
54 real :: dem_c(gbx%npoints, gbx%nlevels)
55 real :: frac_out(gbx%npoints, gbx%ncolumns, gbx%nlevels)
56 integer :: sunlit(gbx%npoints)
61 pfull = gbx%p(:,nlevels:1:-1)
63 phalf(:,2:nlevels+1) = gbx%ph(:,nlevels:1:-1)
64 qv = gbx%sh(:,nlevels:1:-1)
65 cc = 0.999999*gbx%tca(:,nlevels:1:-1)
66 conv = 0.999999*gbx%cca(:,nlevels:1:-1)
67 dtau_s = gbx%dtau_s(:,nlevels:1:-1)
68 dtau_c = gbx%dtau_c(:,nlevels:1:-1)
69 at = gbx%T(:,nlevels:1:-1)
70 dem_s = gbx%dem_s(:,nlevels:1:-1)
71 dem_c = gbx%dem_c(:,nlevels:1:-1)
72 frac_out(1:npoints,:,1:nlevels) = sgx%frac_out(1:npoints,:,nlevels:1:-1)
73 sunlit = int(gbx%sunlit)
74 call icarus(0,0,gbx%npoints,sunlit,gbx%nlevels,gbx%ncolumns, &
75 pfull,phalf,qv,cc,conv,dtau_s,dtau_c, &
76 gbx%isccp_top_height,gbx%isccp_top_height_direction, &
77 gbx%isccp_overlap,frac_out, &
78 gbx%skt,gbx%isccp_emsfc_lw,at,dem_s,dem_c,y%fq_isccp,y%totalcldarea, &
79 y%meanptop,y%meantaucld,y%meanalbedocld, &
80 y%meantb,y%meantbclr,y%boxtau,y%boxptop)
84 y%fq_isccp(:,:,:) = y%fq_isccp(:,:,7:1:-1)
90 where ((y%totalcldarea > 1.0-1.e-5) .and. (y%totalcldarea < 1.0+1.e-5))
subroutine cosp_isccp_simulator(gbx, sgx, y)
subroutine icarus(debug, debugcol, npoints, sunlit, nlev, ncol, pfull, phalf, qv, cc, conv, dtau_s, dtau_c, top_height, top_height_direction, overlap, frac_out, skt, emsfc_lw, at, dem_s, dem_c, fq_isccp, totalcldarea, meanptop, meantaucld, meanalbedocld, meantb, meantbclr, boxtau, boxptop)