37 USE yomhook
,ONLY : lhook, dr_hook
38 USE parkind1
,ONLY : jprb
45 REAL,
DIMENSION(:),
INTENT(IN) :: pdir_sw
46 REAL,
DIMENSION(:),
INTENT(IN) :: psca_sw
47 REAL,
DIMENSION(:),
INTENT(IN) :: pzenith
48 REAL,
DIMENSION(:),
INTENT(OUT) :: pf1_o_b
52 REAL,
DIMENSION(SIZE(PZENITH)) :: ze
53 REAL,
DIMENSION(SIZE(PZENITH)) :: zb
54 REAL,
DIMENSION(SIZE(PZENITH)) :: zf1
55 REAL,
DIMENSION(SIZE(PZENITH)) :: zf11, zf13
56 REAL,
PARAMETER :: zk = 1.041
57 REAL,
PARAMETER :: zbmin = 0.087
58 REAL(KIND=JPRB) :: zhook_handle
59 REAL,
DIMENSION(SIZE(PZENITH)) :: zelev
62 IF (lhook) CALL dr_hook(
'MODE_CONV_DOE:CHTC_VERT_DOE',0,zhook_handle)
64 zelev = xpi/2. - pzenith
68 ze = ((psca_sw + pdir_sw) / psca_sw + zk * zelev**3) / (1 + zk * zelev**3)
74 zb(jj) = max(zbmin, cos(zelev(jj)))
77 CALL
fij(ze, zf11, zf13)
78 zf1 = zf11 + zf13 * zelev
82 pf1_o_b(jj) = min(pf1_o_b(jj), 1.)
83 pf1_o_b(jj) = max(pf1_o_b(jj), 0.)
86 IF (lhook) CALL dr_hook(
'MODE_CONV_DOE:CHTC_VERT_DOE',1,zhook_handle)
89 SUBROUTINE fij(PE, PF11, PF13)
90 REAL,
DIMENSION(:),
INTENT(IN) :: pe
91 REAL,
DIMENSION(:),
INTENT(OUT):: pf11
92 REAL,
DIMENSION(:),
INTENT(OUT):: pf13
100 ELSEWHERE(pe >= 1.065 .AND. pe < 1.230 )
103 ELSEWHERE(pe >= 1.230 .AND. pe < 1.500 )
106 ELSEWHERE(pe >= 1.500 .AND. pe < 1.950)
109 ELSEWHERE(pe >= 1.950 .AND. pe < 2.800 )
112 ELSEWHERE(pe >= 2.800 .AND. pe < 4.500)
115 ELSEWHERE(pe >= 4.500 .AND. pe < 6.200)
subroutine fij(PE, PF11, PF13)
subroutine circumsolar_rad(PDIR_SW, PSCA_SW, PZENITH, PF1_o_B)