Changeset 3687 for LMDZ6/branches/Ocean_skin/libf/phylmd/surf_ocean_mod.F90
- Timestamp:
- May 27, 2020, 4:52:16 PM (5 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/branches/Ocean_skin/libf/phylmd/surf_ocean_mod.F90
r3628 r3687 20 20 z0m, z0h, SFRWL, alb_dir_new, alb_dif_new, evap, fluxsens, fluxlat, & 21 21 tsurf_new, dflux_s, dflux_l, lmt_bils, & 22 flux_u1, flux_v1, t_int, s_int, ds_ns, dt_ns, dter, dser, tkt, tks, rf, & 23 taur) 22 flux_u1, flux_v1, t_int, s_int, ds_ns, dt_ns, dter, dser, tkt, tks, taur) 24 23 25 24 use albedo, only: alboc, alboc_cd … … 32 31 USE indice_sol_mod, ONLY : nbsrf, is_oce 33 32 USE limit_read_mod 34 use sens_heat_rain_m, only: sens_heat_rain35 33 use config_ocean_skin_m, only: activate_ocean_skin 36 34 ! … … 122 120 ! épaisseur (m) de la couche de diffusion de masse (microlayer) 123 121 124 REAL, intent(out):: rf(:) ! (knon)125 ! sensible heat flux at the surface due to rainfall, in W m-2126 ! positive upward127 128 122 REAL, intent(out):: taur(:) ! (knon) 129 123 ! momentum flux due to rain, in Pa … … 139 133 CHARACTER(len=20),PARAMETER :: modname="surf_ocean" 140 134 real rhoa(knon) ! density of moist air (kg / m3) 141 real xlv(knon) ! chaleur latente d'évaporation (J / kg) 142 real precip_tot(knon) ! rain + snow 135 REAL sens_prec_liq(knon) 143 136 144 137 real sss(klon) … … 175 168 ENDIF 176 169 177 170 rhoa = PS(:KNON) / (Rd * temp_air(:knon) * (1. + retv * spechum(:knon))) 178 171 !****************************************************************************** 179 172 ! Switch according to type of ocean (couple, slab or forced) … … 191 184 radsol, snow, agesno, & 192 185 qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, & 193 tsurf_new, dflux_s, dflux_l, s ss, s_int)186 tsurf_new, dflux_s, dflux_l, sens_prec_liq, sss, s_int, rhoa) 194 187 195 188 CASE('slab') … … 214 207 radsol, snow, agesno, & 215 208 qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, & 216 tsurf_new, dflux_s, dflux_l )209 tsurf_new, dflux_s, dflux_l, sens_prec_liq, rhoa) 217 210 END SELECT 218 211 … … 319 312 320 313 if (activate_ocean_skin >= 1) then 321 rhoa = PS(:KNON) / (Rd * temp_air(:knon) * (1. + retv * spechum(:knon)))322 xlv = rlvtt323 precip_tot = precip_rain(:knon) + precip_snow(:knon)324 rf = sens_heat_rain(precip_tot, temp_air(:knon), spechum(:knon), rhoa, &325 xlv, tsurf_in(:knon), ps(:knon))326 314 if (type_ocean /= 'couple') sss(:knon) = 35. 327 315 call bulk_flux(tkt, tks, taur, dter, dser, t_int, s_int, ds_ns, dt_ns, & 328 316 u = windsp(:knon), t_ocean_1 = tsurf_new(:knon), s1 = sss(:knon), & 329 rain = precip_tot, hf = - fluxsens(:knon), hlb = - fluxlat(:knon), & 317 rain = precip_rain(:knon) + precip_snow(:knon), & 318 hf = - fluxsens(:knon), hlb = - fluxlat(:knon), & 330 319 rnl = - lwnet(:knon), & 331 320 tau = sqrt(flux_u1(:knon)**2 + flux_v1(:knon)**2), rhoa = rhoa, & 332 xlv = xlv, rf = rf, dtime = dtime, rns = swnet(:knon)) 321 xlv = [(rlvtt, i = 1, knon)], rf = - sens_prec_liq, dtime = dtime, & 322 rns = swnet(:knon)) 333 323 if (activate_ocean_skin == 2) tsurf_new(:knon) = t_int 334 324 end if
Note: See TracChangeset
for help on using the changeset viewer.