6 SUBROUTINE solar_panel(TPN, DMT, PTSTEP, PTSUN, PRESIDENTIAL, PEMIT_LW_ROOF, &
7 PEMIT_LWDN_PANEL, PLW_RAD, PTA, PN_FLOOR, PPROD_BLD )
63 REAL,
INTENT(IN) :: PTSTEP
64 REAL,
DIMENSION(:),
INTENT(IN) :: PTSUN
65 REAL,
DIMENSION(:),
INTENT(IN) :: PRESIDENTIAL
66 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIT_LW_ROOF
67 REAL,
DIMENSION(:),
INTENT(IN) :: PEMIT_LWDN_PANEL
68 REAL,
DIMENSION(:),
INTENT(IN) :: PLW_RAD
69 REAL,
DIMENSION(:),
INTENT(IN) :: PTA
70 REAL,
DIMENSION(:),
INTENT(IN) :: PN_FLOOR
72 REAL,
DIMENSION(:),
INTENT(OUT) :: PPROD_BLD
74 REAL(KIND=JPRB) :: ZHOOK_HANDLE
79 REAL,
PARAMETER :: XKT = 0.05
82 REAL,
PARAMETER :: XFT = 1.10
85 REAL,
PARAMETER :: XT_OPT = 298.15
88 REAL,
PARAMETER :: XT_LOSS= 0.005
91 REAL,
PARAMETER :: XWATER_DT = 45.
94 REAL,
PARAMETER :: XTHER_FLOOR= 1./30.
97 REAL,
PARAMETER :: XTHER_RATE= 0.5 * 1.16*32.
102 REAL,
PARAMETER :: XTHER_EFF = 0.60
109 REAL :: ZTHER_DAILY_TARGET
110 REAL,
DIMENSION(SIZE(PTA)) :: ZIRRADIANCE
111 REAL,
DIMENSION(SIZE(PTA)) :: ZTS_PANEL
112 REAL,
DIMENSION(SIZE(PTA)) :: ZLWU_PANEL
113 REAL,
DIMENSION(SIZE(PTA)) :: ZTHER_FRAC
114 REAL,
DIMENSION(SIZE(PTA)) :: ZPHOT_FRAC
115 REAL,
DIMENSION(SIZE(PTA)) :: ZTHER_PRODC_DAY
124 dmt%XABS_LW_PANEL =
xundef 127 dmt%XTHER_PROD_PANEL=
xundef 128 dmt%XPHOT_PROD_PANEL=
xundef 130 dmt%XTHER_PROD_BLD = 0.
131 dmt%XPHOT_PROD_BLD = 0.
143 WHERE (ptsun(:)>=0. .AND. ptsun(:)<=3600.) tpn%XTHER_PRODC_DAY(:) = 0.
149 zther_daily_target = (2.*xther_rate) * xwater_dt * (1000. / 365. * 3600. )
154 WHERE (tpn%XFRAC_PANEL(:)>0.)
160 zirradiance(:) = xft * dmt%XABS_SW_PANEL(:) / (1.-tpn%XALB_PANEL(:) )
167 zts_panel(:) = pta(:) + xkt * zirradiance(:)
174 zlwu_panel(:) = tpn%XEMIS_PANEL(:) *
xstefan * zts_panel(:)**4 &
175 + (1.-tpn%XEMIS_PANEL(:)) * plw_rad(:)
182 dmt%XABS_LW_PANEL(:)= plw_rad(:) + pemit_lw_roof(:) - pemit_lwdn_panel(:) - zlwu_panel(:)
189 dmt%XRN_PANEL(:) = dmt%XABS_SW_PANEL(:) + dmt%XABS_LW_PANEL(:)
199 zther_frac(:) = min( xther_floor * pn_floor(:) * presidential(:), tpn%XFRAC_PANEL(:) )
204 zphot_frac(:) = tpn%XFRAC_PANEL(:) - zther_frac(:)
214 dmt%XTHER_PROD_PANEL(:)= xther_eff * zirradiance(:)
220 zther_prodc_day(:) = tpn%XTHER_PRODC_DAY(:) + ptstep * dmt%XTHER_PROD_PANEL(:)
225 zther_prodc_day(:) = min( zther_prodc_day(:) , zther_daily_target )
230 dmt%XTHER_PROD_PANEL(:)= ( zther_prodc_day(:) - tpn%XTHER_PRODC_DAY(:) ) / ptstep
235 tpn%XTHER_PRODC_DAY(:) = zther_prodc_day(:)
242 dmt%XPHOT_PROD_PANEL(:) = tpn%XEFF_PANEL(:) * zirradiance(:) * min(1.,1.-xt_loss*(zts_panel(:)-xt_opt))
249 dmt%XPROD_PANEL(:) = dmt%XTHER_PROD_PANEL(:) * (zther_frac(:) / tpn%XFRAC_PANEL(:)) &
250 + dmt%XPHOT_PROD_PANEL(:) * (zphot_frac(:) / tpn%XFRAC_PANEL(:))
257 dmt%XH_PANEL(:) = dmt%XRN_PANEL(:) - dmt%XPROD_PANEL(:)
264 dmt%XTHER_PROD_BLD(:) = dmt%XTHER_PROD_PANEL(:) * zther_frac(:)
265 dmt%XPHOT_PROD_BLD(:) = dmt%XPHOT_PROD_PANEL(:) * zphot_frac(:)
266 pprod_bld(:) = dmt%XTHER_PROD_BLD (:) + dmt%XPHOT_PROD_PANEL(:)
subroutine solar_panel(TPN, DMT, PTSTEP, PTSUN, PRESIDENTIAL, PEMIT_LW_ROOF, PEMIT_LWDN_PANEL, PLW_RAD, PTA, PN_FLOOR, PPROD_BLD)