7 FUNCTION trad_body(PSCA_SW, PREF_SW_FAC, PREF_SW_GRND, &
8 PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD, &
9 PBLD, PBLD_HEIGHT, PWALL_O_HOR, &
10 PDIR_SW, PZENITH)
RESULT(PTRAD_BODY)
11 REAL,
DIMENSION(:),
INTENT(IN) :: PSCA_SW
12 REAL,
DIMENSION(:),
INTENT(IN) :: PREF_SW_FAC
13 REAL,
DIMENSION(:),
INTENT(IN) :: PREF_SW_GRND
14 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIT_LW_FAC
15 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIT_LW_GRND
16 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_RAD
17 REAL,
DIMENSION(:),
INTENT(IN) :: PBLD
18 REAL,
DIMENSION(:),
INTENT(IN) :: PBLD_HEIGHT
19 REAL,
DIMENSION(:),
INTENT(IN) :: PWALL_O_HOR
20 REAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: PDIR_SW
21 REAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: PZENITH
22 REAL,
DIMENSION(SIZE(PSCA_SW)) :: PTRAD_BODY
27 FUNCTION trad_body(PSCA_SW, PREF_SW_FAC, PREF_SW_GRND, PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD,&
28 PBLD, PBLD_HEIGHT, PWALL_O_HOR, PDIR_SW, PZENITH)
RESULT(PTRAD_BODY)
76 REAL,
DIMENSION(:),
INTENT(IN) :: PSCA_SW
77 REAL,
DIMENSION(:),
INTENT(IN) :: PREF_SW_FAC
78 REAL,
DIMENSION(:),
INTENT(IN) :: PREF_SW_GRND
79 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIT_LW_FAC
80 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIT_LW_GRND
81 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_RAD
82 REAL,
DIMENSION(:),
INTENT(IN) :: PBLD
83 REAL,
DIMENSION(:),
INTENT(IN) :: PBLD_HEIGHT
84 REAL,
DIMENSION(:),
INTENT(IN) :: PWALL_O_HOR
85 REAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: PDIR_SW
86 REAL,
DIMENSION(:),
INTENT(IN),
OPTIONAL :: PZENITH
89 REAL,
DIMENSION(SIZE(PSCA_SW)) :: PTRAD_BODY
97 REAL,
DIMENSION(SIZE(PBLD)) :: ZWROAD
98 REAL,
DIMENSION(SIZE(PBLD)) :: ZL1, ZL2, ZL4
99 REAL,
DIMENSION(SIZE(PBLD)) :: ZFFAC
100 REAL,
DIMENSION(SIZE(PBLD)) :: ZFGRND
101 REAL,
DIMENSION(SIZE(PBLD)) :: ZFSKY
102 REAL,
DIMENSION(SIZE(PBLD)) :: ZDIRSWBODY
103 REAL,
DIMENSION(SIZE(PBLD)) :: ZELEV
104 REAL,
DIMENSION(SIZE(PBLD)) :: ZRADBODY
106 REAL(KIND=JPRB) :: ZHOOK_HANDLE
110 DO jj = 1,
SIZE(pbld_height)
113 zwroad(jj) = pbld_height(jj) * 2. * (1. - pbld(jj)) / pwall_o_hor(jj)
115 zl1(jj) = sqrt(zhb**2 + (zwroad(jj)/2.)**2)
116 zl2(jj) = sqrt( pbld_height(jj)**2 + (zwroad(jj)/2.)**2)
117 zl4(jj) = sqrt((pbld_height(jj)-zhb)**2 + (zwroad(jj)/2.)**2)
119 zffac(jj) = (zl1(jj) + zl2(jj) - zwroad(jj)/2. - zl4(jj)) / (2. * zhb)
120 zfgrnd(jj) = 0.5*zwroad(jj)/zhb
121 zfgrnd(jj) = 0.5 * (zfgrnd(jj) + 1. - sqrt(zfgrnd(jj)**2 + 1.))
122 zfsky(jj) = 1. - zffac(jj) - zfgrnd(jj)
125 zradbody(jj) = zab/zeb * &
126 ( psca_sw(jj)*zfsky(jj) + pref_sw_fac(jj)*zffac(jj) + pref_sw_grnd(jj)*zfgrnd(jj) ) &
127 + plw_rad(jj)*zfsky(jj) + pemit_lw_fac(jj)*zffac(jj) + pemit_lw_grnd(jj)*zfgrnd(jj)
133 IF (
PRESENT(pdir_sw) .AND.
PRESENT(pzenith))
THEN 134 DO jj = 1,
SIZE(pbld_height)
135 zelev(jj) =
xpi/2. - pzenith(jj)
136 IF (zelev(jj) < 1e-6) zelev(jj) = 0.
137 zdirswbody(jj) = pdir_sw(jj) * 0.308 * cos( zelev(jj)*(1-(zelev(jj)*180./
xpi)**2)/48402. )
140 zradbody(jj) = zradbody(jj) + zab/zeb*zdirswbody(jj)
145 DO jj=1,
SIZE(pbld_height)
146 ptrad_body(jj) = (zradbody(jj)/
xstefan)**0.25
real function, dimension(size(psca_sw)) trad_body(PSCA_SW, PREF_SW_FAC, PREF_SW_GRND, PEMIT_LW_FAC, PEMIT_LW_GRND, PLW_RAD, PBLD, PBLD_HEIGHT, PWALL_O_HOR, PDIR_SW, PZENITH)