3 use machine ,
only : kind_phys
7 public :: canopy_mask_init, canopy_mask_run
12 subroutine canopy_mask_init(im, km, nkc, nkt, &
13 claie, cfch, cfrt, cclu, cpopu, & !in:
21 integer,
intent(in) :: nkc, nkt
23 real(kind=kind_phys) :: claie(im), cfch(im), cfrt(im), &
25 real(kind=kind_phys) :: frt_mask(im)
27 character(len=*),
intent(out) :: errmsg
28 integer,
intent(out) :: errflg
43 end subroutine canopy_mask_init
47 subroutine canopy_mask_run (im, km, nkc, nkt, & !in:
48 claie, cfch, cfrt, cclu, cpopu, & !in:
58 integer,
intent(in) :: nkc, nkt
60 real(kind=kind_phys) :: claie(im), cfch(im), cfrt(im), &
62 real(kind=kind_phys) :: frt_mask(im)
64 character(len=*),
intent(out) :: errmsg
65 integer,
intent(out) :: errflg
78 if ( claie(i) .LT. 0.1 &
79 .OR. cfch(i) .LT. 0.5 &
82 .OR. max(0.0, 1.0 - cfrt(i)) .GT. 0.75 &
83 .OR. cpopu(i) .GT. 10000.0 &
84 .OR. (exp(-0.5*claie(i)*cclu(i)) .GT. 0.45 &
85 .AND. cfch(i) .LT. 18.) )
THEN
99 end subroutine canopy_mask_run
101 end module canopy_mask_mod