SURFEX v7.3
General documentation of Surfex
|
00001 ! ########################################################################## 00002 SUBROUTINE URBAN_LW_COEF(PGR, PBLD, PLW_RAD, & 00003 PEMIS_R, PSVF_R, PEMIS_W, PSVF_W, PEMIS_G, & 00004 PROAD, PGARDEN, PESNOW_R, & 00005 PTS_SR, PTS_W_A, PTS_W_B, PTS_R, PTS_G, PTS_WIN, & 00006 PLW_WA_TO_WB, PLW_WA_TO_R, PLW_WB_TO_R, & 00007 PLW_WA_TO_NR,PLW_WB_TO_NR, & 00008 PLW_WA_TO_G, PLW_WB_TO_G, & 00009 PLW_WA_TO_WIN, PLW_WB_TO_WIN, & 00010 PLW_R_TO_WA, PLW_R_TO_WB, PLW_R_TO_WIN, & 00011 PLW_G_TO_WA, PLW_G_TO_WB, PLW_G_TO_WIN, & 00012 PLW_S_TO_WA, PLW_S_TO_WB, PLW_S_TO_R, & 00013 PLW_S_TO_NR, PLW_S_TO_G, PLW_S_TO_WIN, & 00014 PLW_WIN_TO_WA, PLW_WIN_TO_WB, PLW_WIN_TO_R, & 00015 PLW_WIN_TO_NR, PLW_WIN_TO_G, & 00016 PLW_NR_TO_WA, PLW_NR_TO_WB, PLW_NR_TO_WIN ) 00017 ! ########################################################################## 00018 ! 00019 !!**** *URBAN_LW_COEF* 00020 !! 00021 !! PURPOSE 00022 !! ------- 00023 ! 00024 ! Computes the coefficients before each of the temperatures in the 00025 ! radiative budgets 00026 ! 00027 ! 00028 !!** METHOD 00029 ! ------ 00030 ! 00031 ! 00032 ! 00033 ! 00034 ! 00035 !! EXTERNAL 00036 !! -------- 00037 !! 00038 !! 00039 !! IMPLICIT ARGUMENTS 00040 !! ------------------ 00041 !! 00042 !! MODD_CST 00043 !! 00044 !! 00045 !! REFERENCE 00046 !! --------- 00047 !! 00048 !! 00049 !! AUTHOR 00050 !! ------ 00051 !! 00052 !! V. Masson * Meteo-France * 00053 !! 00054 !! MODIFICATIONS 00055 !! ------------- 00056 !! Original 08/09/98 00057 !------------------------------------------------------------------------------- 00058 ! 00059 !* 0. DECLARATIONS 00060 ! ------------ 00061 ! 00062 USE MODD_CSTS,ONLY : XSTEFAN 00063 USE MODD_SURF_PAR,ONLY : XUNDEF 00064 ! 00065 USE YOMHOOK ,ONLY : LHOOK, DR_HOOK 00066 USE PARKIND1 ,ONLY : JPRB 00067 ! 00068 IMPLICIT NONE 00069 ! 00070 !* 0.1 declarations of arguments 00071 ! 00072 ! 00073 ! 00074 REAL, DIMENSION(:), INTENT(IN) :: PGR ! glazing ratio 00075 REAL, DIMENSION(:), INTENT(IN) :: PBLD ! building density 00076 REAL, DIMENSION(:), INTENT(IN) :: PLW_RAD ! incoming LW radiation 00077 REAL, DIMENSION(:), INTENT(IN) :: PEMIS_R ! road emissivity 00078 REAL, DIMENSION(:), INTENT(IN) :: PSVF_R ! road sky view factor 00079 REAL, DIMENSION(:), INTENT(IN) :: PEMIS_W ! wall emissivity 00080 REAL, DIMENSION(:), INTENT(IN) :: PSVF_W ! wall sky view factor 00081 REAL, DIMENSION(:), INTENT(IN) :: PEMIS_G ! GARDEN area emissivity 00082 REAL, DIMENSION(:), INTENT(IN) :: PROAD ! road fraction 00083 REAL, DIMENSION(:), INTENT(IN) :: PGARDEN ! GARDEN area fraction 00084 REAL, DIMENSION(:), INTENT(IN) :: PESNOW_R ! road snow emissivity 00085 ! 00086 REAL, DIMENSION(:), INTENT(IN) :: PTS_W_A ! wall A surface temperature 00087 REAL, DIMENSION(:), INTENT(IN) :: PTS_W_B ! wall B surface temperature 00088 REAL, DIMENSION(:), INTENT(IN) :: PTS_R ! road surface tempeature 00089 REAL, DIMENSION(:), INTENT(IN) :: PTS_G ! garden surface temperature 00090 REAL, DIMENSION(:), INTENT(IN) :: PTS_WIN ! window surface temperature 00091 REAL, DIMENSION(:), INTENT(IN) :: PTS_SR ! snow surface temperature 00092 ! 00093 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WA_TO_WB! L.W. interactions wall->opposite wall 00094 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WA_TO_R ! L.W. interactions wall->road for road balance 00095 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WB_TO_R ! L.W. interactions wall->road for road balance 00096 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WA_TO_NR ! L.W. interactions wall->snow for snow balance 00097 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WB_TO_NR ! L.W. interactions wall->snow for snow balance 00098 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WA_TO_G ! L.W. interactions wall->GARDEN areas for garden balance 00099 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WB_TO_G ! L.W. interactions wall->GARDEN areas for garden balance 00100 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WA_TO_WIN! L.W. interactions wall->win for window balance 00101 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WB_TO_WIN! L.W. interactions wall->win for window balance 00102 ! 00103 REAL, DIMENSION(:), INTENT(OUT) :: PLW_R_TO_WA ! L.W. interactions road->wall for wall balance 00104 REAL, DIMENSION(:), INTENT(OUT) :: PLW_R_TO_WB ! L.W. interactions road->wall for wall balance 00105 REAL, DIMENSION(:), INTENT(OUT) :: PLW_R_TO_WIN ! L.W. interactions road->win for win balance 00106 ! 00107 REAL, DIMENSION(:), INTENT(OUT) :: PLW_G_TO_WA ! L.W. interactions GARDEN areas->wall for wall balance 00108 REAL, DIMENSION(:), INTENT(OUT) :: PLW_G_TO_WB ! L.W. interactions GARDEN areas->wall for wall balance 00109 REAL, DIMENSION(:), INTENT(OUT) :: PLW_G_TO_WIN ! L.W. interactions GARDEN areas->road for window balance 00110 ! 00111 REAL, DIMENSION(:), INTENT(OUT) :: PLW_S_TO_WA ! L.W. interactions sky->wall for wall balance 00112 REAL, DIMENSION(:), INTENT(OUT) :: PLW_S_TO_WB ! L.W. interactions sky->wall for wall balance 00113 REAL, DIMENSION(:), INTENT(OUT) :: PLW_S_TO_R ! L.W. interactions sky->road for raod balance 00114 REAL, DIMENSION(:), INTENT(OUT) :: PLW_S_TO_NR ! L.W. interactions sky->snow for snow balance 00115 REAL, DIMENSION(:), INTENT(OUT) :: PLW_S_TO_G ! L.W. interactions sky->GARDEN areas for garden balance 00116 REAL, DIMENSION(:), INTENT(OUT) :: PLW_S_TO_WIN ! L.W. interactions sky->win for window balance 00117 ! 00118 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WIN_TO_WA ! L.W. interactions win->wall for wall balance 00119 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WIN_TO_WB ! L.W. interactions win->wall for wall balance 00120 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WIN_TO_R ! L.W. interactions win->road for road balance 00121 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WIN_TO_NR ! L.W. interactions win->GARDEN areas for snow balance 00122 REAL, DIMENSION(:), INTENT(OUT) :: PLW_WIN_TO_G ! L.W. interactions win->GARDEN areas for garden balance 00123 ! 00124 REAL, DIMENSION(:), INTENT(OUT) :: PLW_NR_TO_WA! L.W. interactions snow(road)->wall for wall balance 00125 REAL, DIMENSION(:), INTENT(OUT) :: PLW_NR_TO_WB! L.W. interactions snow(road)->wall for wall balance 00126 REAL, DIMENSION(:), INTENT(OUT) :: PLW_NR_TO_WIN ! L.W. interactions snow(road)->WIN areas for window balance 00127 ! 00128 !* 0.2 declarations of local variables 00129 ! 00130 REAL, DIMENSION(SIZE(PBLD)) :: ZT_S ! sky temperature 00131 ! 00132 REAL, DIMENSION(SIZE(PBLD)) :: ZEMIS_WIN 00133 REAL, DIMENSION(SIZE(PBLD)) :: ZF_W_W 00134 REAL, DIMENSION(SIZE(PBLD)) :: ZF_R_W 00135 REAL, DIMENSION(SIZE(PBLD)) :: ZF_R_WIN 00136 REAL, DIMENSION(SIZE(PBLD)) :: ZF_W_R 00137 REAL, DIMENSION(SIZE(PBLD)) :: ZF_W_G 00138 REAL, DIMENSION(SIZE(PBLD)) :: ZF_W_WIN 00139 REAL, DIMENSION(SIZE(PBLD)) :: ZF_W_NR 00140 REAL, DIMENSION(SIZE(PBLD)) :: ZF_WIN_W 00141 REAL, DIMENSION(SIZE(PBLD)) :: ZF_WIN_R 00142 REAL, DIMENSION(SIZE(PBLD)) :: ZF_WIN_G 00143 REAL, DIMENSION(SIZE(PBLD)) :: ZF_WIN_NR 00144 REAL, DIMENSION(SIZE(PBLD)) :: ZF_G_W 00145 REAL, DIMENSION(SIZE(PBLD)) :: ZF_G_WIN 00146 ! 00147 REAL :: ZE1, ZE2, ZF, ZT1, ZT2, ZLW 00148 ZLW(ZE1,ZE2,ZF,ZT1,ZT2) = 4.*XSTEFAN*ZE1*ZE2*ZF*((ZT1+ZT2)/2.)**3 00149 ! 00150 INTEGER :: JJ 00151 REAL(KIND=JPRB) :: ZHOOK_HANDLE 00152 !------------------------------------------------------------------------------- 00153 IF (LHOOK) CALL DR_HOOK('URBAN_LW_COEF',0,ZHOOK_HANDLE) 00154 ! 00155 ZT_S(:) = (PLW_RAD(:)/XSTEFAN)**0.25 00156 ! 00157 DO JJ=1,SIZE(PROAD) 00158 ! 00159 ZEMIS_WIN(JJ) = 0.84 !from Energy Plus Engineering Reference, p219 00160 ! see http://apps1.eere.energy.gov/buildings/energyplus/ 00161 ! 00162 ZF_W_R(JJ) = PSVF_W(JJ) * (PROAD(JJ) /(1.-PBLD(JJ))) 00163 ZF_W_G(JJ) = PSVF_W(JJ) * (PGARDEN(JJ)/(1.-PBLD(JJ))) 00164 ZF_W_NR(JJ) = PSVF_W(JJ) 00165 ! 00166 ZF_WIN_R(JJ) = ZF_W_R(JJ) 00167 ZF_WIN_G(JJ) = ZF_W_G(JJ) 00168 ZF_WIN_NR(JJ) = ZF_W_NR(JJ) 00169 ! 00170 ZF_R_W(JJ) = (1 - PSVF_R(JJ))*(1.-PGR(JJ)) * 0.5 00171 ZF_R_WIN(JJ) = (1 - PSVF_R(JJ))*PGR(JJ) 00172 ! 00173 ZF_G_W(JJ) = ZF_R_W(JJ) 00174 ZF_G_WIN(JJ) = ZF_R_WIN(JJ) 00175 ! 00176 ZF_WIN_W(JJ) = (1.-2.*PSVF_W(JJ))*(1.-PGR(JJ)) 00177 ZF_W_W (JJ) = (1.-2.*PSVF_W(JJ))*(1.-PGR(JJ)) 00178 ZF_W_WIN(JJ) = (1.-2.*PSVF_W(JJ))*PGR(JJ) 00179 ! 00180 ! 00181 PLW_WA_TO_WB(JJ)=ZLW(PEMIS_W(JJ),PEMIS_W(JJ),ZF_W_W(JJ),PTS_W_A(JJ),PTS_W_B(JJ)) 00182 ! 00183 PLW_WA_TO_R(JJ) = ZLW(PEMIS_W(JJ),PEMIS_R(JJ),ZF_R_W(JJ),PTS_W_A(JJ),PTS_R(JJ)) 00184 PLW_WB_TO_R(JJ) = ZLW(PEMIS_W(JJ),PEMIS_R(JJ),ZF_R_W(JJ),PTS_W_B(JJ),PTS_R(JJ)) 00185 PLW_R_TO_WA(JJ) = ZLW(PEMIS_R(JJ),PEMIS_W(JJ),ZF_W_R(JJ),PTS_R(JJ),PTS_W_A(JJ)) 00186 PLW_R_TO_WB(JJ) = ZLW(PEMIS_R(JJ),PEMIS_W(JJ),ZF_W_R(JJ),PTS_R(JJ),PTS_W_B(JJ)) 00187 ! 00188 PLW_WA_TO_G(JJ) = ZLW(PEMIS_W(JJ),PEMIS_G(JJ),ZF_G_W(JJ),PTS_W_A(JJ),PTS_G(JJ)) 00189 PLW_WB_TO_G(JJ) = ZLW(PEMIS_W(JJ),PEMIS_G(JJ),ZF_G_W(JJ),PTS_W_B(JJ),PTS_G(JJ)) 00190 PLW_G_TO_WA(JJ) = ZLW(PEMIS_G(JJ),PEMIS_W(JJ),ZF_W_G(JJ),PTS_G(JJ),PTS_W_A(JJ)) 00191 PLW_G_TO_WB(JJ) = ZLW(PEMIS_G(JJ),PEMIS_W(JJ),ZF_W_G(JJ),PTS_G(JJ),PTS_W_B(JJ)) 00192 ! 00193 ! 00194 IF (PTS_SR(JJ) .EQ. XUNDEF) THEN 00195 PLW_WA_TO_NR (JJ) = 0. 00196 PLW_WB_TO_NR (JJ) = 0. 00197 PLW_NR_TO_WA (JJ) = 0. 00198 PLW_NR_TO_WB (JJ) = 0. 00199 ! 00200 PLW_WIN_TO_NR(JJ) = 0. 00201 PLW_NR_TO_WIN(JJ) = 0 00202 ! 00203 PLW_S_TO_NR (JJ) = 0. 00204 ELSE 00205 PLW_WA_TO_NR(JJ) = ZLW(PEMIS_W(JJ),PESNOW_R(JJ),ZF_R_W(JJ),PTS_W_A(JJ),PTS_SR(JJ)) 00206 PLW_WB_TO_NR(JJ) = ZLW(PEMIS_W(JJ),PESNOW_R(JJ),ZF_R_W(JJ),PTS_W_B(JJ),PTS_SR(JJ)) 00207 PLW_NR_TO_WA(JJ) = ZLW(PESNOW_R(JJ),PEMIS_W(JJ),ZF_W_NR(JJ),PTS_SR(JJ),PTS_W_A(JJ)) 00208 PLW_NR_TO_WB(JJ) = ZLW(PESNOW_R(JJ),PEMIS_W(JJ),ZF_W_NR(JJ),PTS_SR(JJ),PTS_W_B(JJ)) 00209 ! 00210 PLW_WIN_TO_NR(JJ)= ZLW(ZEMIS_WIN(JJ),PESNOW_R(JJ),ZF_R_WIN(JJ),PTS_WIN(JJ),PTS_SR(JJ)) 00211 PLW_NR_TO_WIN(JJ)= ZLW(PESNOW_R(JJ),ZEMIS_WIN(JJ),ZF_WIN_NR(JJ),PTS_SR(JJ),PTS_WIN(JJ)) 00212 ! 00213 PLW_S_TO_NR(JJ) = ZLW(1.,PESNOW_R(JJ),PSVF_R(JJ),ZT_S(JJ),PTS_SR(JJ)) 00214 ENDIF 00215 ! 00216 PLW_WIN_TO_R(JJ)= ZLW(ZEMIS_WIN(JJ),PEMIS_R(JJ),ZF_R_WIN(JJ),PTS_WIN(JJ),PTS_R(JJ)) 00217 PLW_R_TO_WIN(JJ)= ZLW(PEMIS_R(JJ),ZEMIS_WIN(JJ),ZF_WIN_R(JJ),PTS_R(JJ),PTS_WIN(JJ)) 00218 ! 00219 PLW_WIN_TO_G(JJ)= ZLW(ZEMIS_WIN(JJ),PEMIS_G(JJ),ZF_G_WIN(JJ),PTS_WIN(JJ),PTS_G(JJ)) 00220 PLW_G_TO_WIN(JJ)= ZLW(PEMIS_G(JJ),ZEMIS_WIN(JJ),ZF_WIN_G(JJ),PTS_G(JJ),PTS_WIN(JJ)) 00221 ! 00222 PLW_WIN_TO_WA(JJ) = ZLW(ZEMIS_WIN(JJ),PEMIS_W(JJ),ZF_W_WIN(JJ),PTS_WIN(JJ),PTS_W_A(JJ)) 00223 PLW_WIN_TO_WB(JJ) = ZLW(ZEMIS_WIN(JJ),PEMIS_W(JJ),ZF_W_WIN(JJ),PTS_WIN(JJ),PTS_W_B(JJ)) 00224 PLW_WA_TO_WIN(JJ) = ZLW(PEMIS_W(JJ),ZEMIS_WIN(JJ),ZF_WIN_W(JJ),PTS_W_A(JJ),PTS_WIN(JJ)) 00225 PLW_WB_TO_WIN(JJ) = ZLW(PEMIS_W(JJ),ZEMIS_WIN(JJ),ZF_WIN_W(JJ),PTS_W_B(JJ),PTS_WIN(JJ)) 00226 ! 00227 PLW_S_TO_WIN(JJ) = ZLW(1.,ZEMIS_WIN(JJ),PSVF_W(JJ),ZT_S(JJ),PTS_WIN(JJ)) 00228 ! 00229 PLW_S_TO_WA(JJ) = ZLW(1.,PEMIS_W(JJ),PSVF_W(JJ),ZT_S(JJ),PTS_W_A(JJ)) 00230 PLW_S_TO_WB(JJ) = ZLW(1.,PEMIS_W(JJ),PSVF_W(JJ),ZT_S(JJ),PTS_W_B(JJ)) 00231 ! 00232 PLW_S_TO_G(JJ) = ZLW(1.,PEMIS_G(JJ),PSVF_R(JJ),ZT_S(JJ),PTS_G(JJ)) 00233 PLW_S_TO_R(JJ) = ZLW(1.,PEMIS_R(JJ),PSVF_R(JJ),ZT_S(JJ),PTS_R(JJ)) 00234 PLW_S_TO_NR(JJ) = ZLW(1.,PESNOW_R(JJ),PSVF_R(JJ),ZT_S(JJ),PTS_SR(JJ)) 00235 ! 00236 ENDDO 00237 !------------------------------------------------------------------------------- 00238 IF (LHOOK) CALL DR_HOOK('URBAN_LW_COEF',1,ZHOOK_HANDLE) 00239 ! 00240 END SUBROUTINE URBAN_LW_COEF 00241