Changeset 2254 for LMDZ5/trunk/libf/phylmd/calcul_fluxs_mod.F90
- Timestamp:
- Apr 3, 2015, 12:16:36 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/calcul_fluxs_mod.F90
r2240 r2254 5 5 CONTAINS 6 6 SUBROUTINE calcul_fluxs( knon, nisurf, dtime, & 7 tsurf, p1lay, cal, beta, c oef1lay, ps, &7 tsurf, p1lay, cal, beta, cdragh, cdragq, ps, & 8 8 precip_rain, precip_snow, snow, qsurf, & 9 9 radsol, dif_grnd, t1lay, q1lay, u1lay, v1lay, gustiness, & 10 petAcoef, peqAcoef, petBcoef, peqBcoef, &10 fqsat, petAcoef, peqAcoef, petBcoef, peqBcoef, & 11 11 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 12 12 … … 28 28 ! cal capacite calorifique du sol 29 29 ! beta evap reelle 30 ! coef1lay coefficient d'echange 30 ! cdragh coefficient d'echange temperature 31 ! cdragq coefficient d'echange evaporation 31 32 ! ps pression au sol 32 33 ! precip_rain precipitations liquides … … 61 62 REAL, DIMENSION(klon), INTENT(IN) :: petBcoef, peqBcoef 62 63 REAL, DIMENSION(klon), INTENT(IN) :: ps, q1lay 63 REAL, DIMENSION(klon), INTENT(IN) :: tsurf, p1lay, cal, beta, c oef1lay64 REAL, DIMENSION(klon), INTENT(IN) :: tsurf, p1lay, cal, beta, cdragh,cdragq 64 65 REAL, DIMENSION(klon), INTENT(IN) :: precip_rain, precip_snow ! pas utiles 65 66 REAL, DIMENSION(klon), INTENT(IN) :: radsol, dif_grnd 66 67 REAL, DIMENSION(klon), INTENT(IN) :: t1lay, u1lay, v1lay,gustiness 68 REAL, INTENT(IN) :: fqsat ! correction factor on qsat (generally 0.98 over salty water, 1 everywhere else) 67 69 68 70 ! Parametres entree-sorties … … 81 83 REAL, DIMENSION(klon) :: zx_mh, zx_nh, zx_oh 82 84 REAL, DIMENSION(klon) :: zx_mq, zx_nq, zx_oq 83 REAL, DIMENSION(klon) :: zx_pkh, zx_dq_s_dt, zx_qsat , zx_coef84 REAL, DIMENSION(klon) :: zx_sl, zx_ k185 REAL, DIMENSION(klon) :: zx_pkh, zx_dq_s_dt, zx_qsat 86 REAL, DIMENSION(klon) :: zx_sl, zx_coefh, zx_coefq, zx_wind 85 87 REAL, DIMENSION(klon) :: d_ts 86 88 REAL :: zdelta, zcvm5, zx_qs, zcor, zx_dq_s_dh … … 127 129 fluxlat=0. 128 130 dflux_s = 0. 129 dflux_l = 0. 131 dflux_l = 0. 130 132 ! 131 133 ! zx_qs = qsat en kg/kg … … 156 158 zx_dq_s_dt(i) = RCPD * zx_pkh(i) * zx_dq_s_dh 157 159 zx_qsat(i) = zx_qs 158 zx_coef(i) = coef1lay(i) * & 159 (min_wind_speed+SQRT(gustiness(i)+u1lay(i)**2+v1lay(i)**2)) * & 160 p1lay(i)/(RD*t1lay(i)) 161 160 zx_wind(i)=min_wind_speed+SQRT(gustiness(i)+u1lay(i)**2+v1lay(i)**2) 161 zx_coefh(i) = cdragh(i) * zx_wind(i) * p1lay(i)/(RD*t1lay(i)) 162 zx_coefq(i) = cdragq(i) * zx_wind(i) * p1lay(i)/(RD*t1lay(i)) 163 ! zx_wind(i)=min_wind_speed+SQRT(gustiness(i)+u1lay(i)**2+v1lay(i)**2) & 164 ! * p1lay(i)/(RD*t1lay(i)) 165 ! zx_coefh(i) = cdragh(i) * zx_wind(i) 166 ! zx_coefq(i) = cdragq(i) * zx_wind(i) 162 167 ENDDO 163 168 … … 170 175 zx_sl(i) = RLVTT 171 176 IF (tsurf(i) .LT. RTT) zx_sl(i) = RLSTT 172 zx_k1(i) = zx_coef(i)173 177 ENDDO 174 178 … … 176 180 DO i = 1, knon 177 181 ! Q 178 zx_oq(i) = 1. - (beta(i) * zx_k1(i) * peqBcoef(i) * dtime) 179 zx_mq(i) = beta(i) * zx_k1(i) * & 180 (peqAcoef(i) - zx_qsat(i) + & 181 zx_dq_s_dt(i) * tsurf(i)) & 182 zx_oq(i) = 1. - (beta(i) * zx_coefq(i) * peqBcoef(i) * dtime) 183 zx_mq(i) = beta(i) * zx_coefq(i) * & 184 (peqAcoef(i) - & 185 ! conv num avec precedente version 186 fqsat * zx_qsat(i) + fqsat * zx_dq_s_dt(i) * tsurf(i)) & 187 ! fqsat * ( zx_qsat(i) - zx_dq_s_dt(i) * tsurf(i)) ) & 182 188 / zx_oq(i) 183 zx_nq(i) = beta(i) * zx_ k1(i) * (-1.* zx_dq_s_dt(i)) &189 zx_nq(i) = beta(i) * zx_coefq(i) * (- fqsat * zx_dq_s_dt(i)) & 184 190 / zx_oq(i) 185 191 186 192 ! H 187 zx_oh(i) = 1. - (zx_ k1(i) * petBcoef(i) * dtime)188 zx_mh(i) = zx_ k1(i) * petAcoef(i) / zx_oh(i)189 zx_nh(i) = - (zx_ k1(i) * RCPD * zx_pkh(i))/ zx_oh(i)193 zx_oh(i) = 1. - (zx_coefh(i) * petBcoef(i) * dtime) 194 zx_mh(i) = zx_coefh(i) * petAcoef(i) / zx_oh(i) 195 zx_nh(i) = - (zx_coefh(i) * RCPD * zx_pkh(i))/ zx_oh(i) 190 196 191 197 ! Tsurface
Note: See TracChangeset
for help on using the changeset viewer.