Changeset 2240
- Timestamp:
- Mar 23, 2015, 5:07:43 PM (10 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/calcul_fluxs_mod.F90
r1907 r2240 7 7 tsurf, p1lay, cal, beta, coef1lay, ps, & 8 8 precip_rain, precip_snow, snow, qsurf, & 9 radsol, dif_grnd, t1lay, q1lay, u1lay, v1lay, &9 radsol, dif_grnd, t1lay, q1lay, u1lay, v1lay, gustiness, & 10 10 petAcoef, peqAcoef, petBcoef, peqBcoef, & 11 11 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) … … 13 13 USE dimphy, ONLY : klon 14 14 USE indice_sol_mod 15 16 INCLUDE "clesphys.h" 15 17 16 18 ! Cette routine calcule les fluxs en h et q a l'interface et eventuellement … … 62 64 REAL, DIMENSION(klon), INTENT(IN) :: precip_rain, precip_snow ! pas utiles 63 65 REAL, DIMENSION(klon), INTENT(IN) :: radsol, dif_grnd 64 REAL, DIMENSION(klon), INTENT(IN) :: t1lay, u1lay, v1lay 66 REAL, DIMENSION(klon), INTENT(IN) :: t1lay, u1lay, v1lay,gustiness 65 67 66 68 ! Parametres entree-sorties … … 155 157 zx_qsat(i) = zx_qs 156 158 zx_coef(i) = coef1lay(i) * & 157 ( 1.0+SQRT(u1lay(i)**2+v1lay(i)**2)) * &159 (min_wind_speed+SQRT(gustiness(i)+u1lay(i)**2+v1lay(i)**2)) * & 158 160 p1lay(i)/(RD*t1lay(i)) 159 161 … … 244 246 ! 245 247 SUBROUTINE calcul_flux_wind(knon, dtime, & 246 u0, v0, u1, v1, cdrag_m, &248 u0, v0, u1, v1, gustiness, cdrag_m, & 247 249 AcoefU, AcoefV, BcoefU, BcoefV, & 248 250 p1lay, t1lay, & … … 251 253 USE dimphy 252 254 INCLUDE "YOMCST.h" 255 INCLUDE "clesphys.h" 253 256 254 257 ! Input arguments … … 257 260 REAL, INTENT(IN) :: dtime 258 261 REAL, DIMENSION(klon), INTENT(IN) :: u0, v0 ! u and v at niveau 0 259 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 ! u and v at niveau 1262 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness ! u and v at niveau 1 260 263 REAL, DIMENSION(klon), INTENT(IN) :: cdrag_m ! cdrag pour momentum 261 264 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV … … 277 280 !**************************************************************************************** 278 281 DO i=1,knon 279 mod_wind = 1.0 + SQRT((u1(i) - u0(i))**2 + (v1(i)-v0(i))**2)282 mod_wind = min_wind_speed + SQRT(gustiness(i)+(u1(i) - u0(i))**2 + (v1(i)-v0(i))**2) 280 283 buf = cdrag_m(i) * mod_wind * p1lay(i)/(RD*t1lay(i)) 281 284 flux_u1(i) = (AcoefU(i) - u0(i)) / (1/buf - BcoefU(i)*dtime ) -
LMDZ5/trunk/libf/phylmd/clesphys.h
r2227 r2240 44 44 ! Frottement au sol (Cdrag) 45 45 Real f_cdrag_ter,f_cdrag_oce 46 REAL min_wind_speed,f_gust_wk,f_gust_bl,f_qsat_oce 47 INTEGER iflag_gusts 48 46 49 ! Rugoro 47 50 Real f_rugoro … … 92 95 & , fmagic, pmagic & 93 96 & , f_cdrag_ter,f_cdrag_oce,f_rugoro & 97 & , min_wind_speed,f_gust_wk,f_gust_bl,f_qsat_oce & 94 98 & , pasphys , freq_outNMC, freq_calNMC & 95 99 & , lonmin_ins, lonmax_ins, latmin_ins, latmax_ins & … … 115 119 & , ok_mensuelCOSP,ok_journeCOSP,ok_hfCOSP & 116 120 & , ip_ebil_phy & 121 & , iflag_gusts & 117 122 & , ok_lic_melt, aer_type & 118 123 & , iflag_rrtm, ok_strato,ok_hines, ok_qch4 & -
LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
r2236 r2240 118 118 Real,SAVE :: f_cdrag_ter_omp,f_cdrag_oce_omp 119 119 Real,SAVE :: f_rugoro_omp 120 REAL,SAVE :: min_wind_speed_omp,f_gust_wk_omp,f_gust_bl_omp,f_qsat_oce_omp 121 INTEGER,SAVE :: iflag_gusts_omp 120 122 121 123 ! Local … … 213 215 !----------------------------------------------------------------- 214 216 217 print*,'CONFPHYS ENTREE' 215 218 !$OMP MASTER 216 219 !Config Key = type_ocean … … 1645 1648 ! 1646 1649 ! 1650 print*,'CONFPHYS OOK avant drag_ter' 1647 1651 ! 1648 1652 ! PARAMETRES CDRAG 1649 !1650 !Config Key = f_cdrag_ter1651 !Config Desc =1652 !Config Def = 0.81653 !Config Help =1654 1653 ! 1655 1654 f_cdrag_ter_omp = 0.8 1656 1655 call getin('f_cdrag_ter',f_cdrag_ter_omp) 1657 1656 ! 1658 !Config Key = f_cdrag_oce1659 !Config Desc =1660 !Config Def = 0.81661 !Config Help =1662 !1663 1657 f_cdrag_oce_omp = 0.8 1664 1658 call getin('f_cdrag_oce',f_cdrag_oce_omp) 1659 ! 1660 1661 ! Gustiness flags 1662 f_qsat_oce_omp = 1. 1663 call getin('f_qsat_oce',f_qsat_oce_omp) 1664 ! 1665 f_gust_bl_omp = 0. 1666 call getin('f_gust_bl',f_gust_bl_omp) 1667 ! 1668 f_gust_wk_omp = 0. 1669 call getin('f_gust_wk',f_gust_wk_omp) 1670 ! 1671 print*,'CONFPHYS OOK avant gust' 1672 iflag_gusts_omp=0 1673 call getin('iflag_gusts',iflag_gusts_omp) 1674 ! 1675 min_wind_speed_omp = 1. 1676 call getin('min_wind_speed',min_wind_speed_omp) 1677 1665 1678 ! 1666 1679 ! RUGORO … … 2022 2035 f_cdrag_ter=f_cdrag_ter_omp 2023 2036 f_cdrag_oce=f_cdrag_oce_omp 2037 2038 f_gust_wk=f_gust_wk_omp 2039 f_gust_bl=f_gust_bl_omp 2040 f_qsat_oce=f_qsat_oce_omp 2041 min_wind_speed=min_wind_speed_omp 2042 iflag_gusts=iflag_gusts_omp 2043 2024 2044 f_rugoro=f_rugoro_omp 2025 2045 supcrit1 = supcrit1_omp -
LMDZ5/trunk/libf/phylmd/ocean_cpl_mod.F90
r1907 r2240 49 49 AcoefH, AcoefQ, BcoefH, BcoefQ, & 50 50 AcoefU, AcoefV, BcoefU, BcoefV, & 51 ps, u1, v1, &51 ps, u1, v1, gustiness, & 52 52 radsol, snow, agesno, & 53 53 qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 83 83 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 84 84 REAL, DIMENSION(klon), INTENT(IN) :: ps 85 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 85 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 86 86 87 87 ! In/Output arguments … … 138 138 tsurf_cpl, p1lay, cal, beta, cdragh, ps, & 139 139 precip_rain, precip_snow, snow, qsurf, & 140 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &140 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 141 141 AcoefH, AcoefQ, BcoefH, BcoefQ, & 142 142 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) … … 144 144 ! - Flux calculation at first modele level for U and V 145 145 CALL calcul_flux_wind(knon, dtime, & 146 u0_cpl, v0_cpl, u1, v1, cdragm, &146 u0_cpl, v0_cpl, u1, v1, gustiness, cdragm, & 147 147 AcoefU, AcoefV, BcoefU, BcoefV, & 148 148 p1lay, temp_air, & … … 185 185 AcoefH, AcoefQ, BcoefH, BcoefQ, & 186 186 AcoefU, AcoefV, BcoefU, BcoefV, & 187 ps, u1, v1, pctsrf, &187 ps, u1, v1, gustiness, pctsrf, & 188 188 radsol, snow, qsurf, & 189 189 alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 219 219 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 220 220 REAL, DIMENSION(klon), INTENT(IN) :: ps 221 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 221 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 222 222 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf 223 223 … … 281 281 tsurf_cpl, p1lay, cal, beta, cdragh, ps, & 282 282 precip_rain, precip_snow, snow, qsurf, & 283 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &283 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 284 284 AcoefH, AcoefQ, BcoefH, BcoefQ, & 285 285 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) … … 288 288 ! - Flux calculation at first modele level for U and V 289 289 CALL calcul_flux_wind(knon, dtime, & 290 u0, v0, u1, v1, cdragm, &290 u0, v0, u1, v1, gustiness, cdragm, & 291 291 AcoefU, AcoefV, BcoefU, BcoefV, & 292 292 p1lay, temp_air, & -
LMDZ5/trunk/libf/phylmd/ocean_forced_mod.F90
r1961 r2240 17 17 AcoefH, AcoefQ, BcoefH, BcoefQ, & 18 18 AcoefU, AcoefV, BcoefU, BcoefV, & 19 ps, u1, v1, &19 ps, u1, v1, gustiness, & 20 20 radsol, snow, agesno, & 21 21 qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 46 46 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 47 47 REAL, DIMENSION(klon), INTENT(IN) :: ps 48 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 48 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 49 49 50 50 ! In/Output arguments … … 111 111 tsurf_lim, p1lay, cal, beta, cdragh, ps, & 112 112 precip_rain, precip_snow, snow, qsurf, & 113 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &113 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 114 114 AcoefH, AcoefQ, BcoefH, BcoefQ, & 115 115 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) … … 117 117 ! - Flux calculation at first modele level for U and V 118 118 CALL calcul_flux_wind(knon, dtime, & 119 u0, v0, u1, v1, cdragm, &119 u0, v0, u1, v1, gustiness, cdragm, & 120 120 AcoefU, AcoefV, BcoefU, BcoefV, & 121 121 p1lay, temp_air, & … … 131 131 AcoefH, AcoefQ, BcoefH, BcoefQ, & 132 132 AcoefU, AcoefV, BcoefU, BcoefV, & 133 ps, u1, v1, &133 ps, u1, v1, gustiness, & 134 134 radsol, snow, qsol, agesno, tsoil, & 135 135 qsurf, alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 165 165 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 166 166 REAL, DIMENSION(klon), INTENT(IN) :: ps 167 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 167 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 168 168 169 169 ! In/Output arguments … … 233 233 tsurf_tmp, p1lay, cal, beta, cdragh, ps, & 234 234 precip_rain, precip_snow, snow, qsurf, & 235 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &235 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 236 236 AcoefH, AcoefQ, BcoefH, BcoefQ, & 237 237 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) … … 239 239 ! - Flux calculation at first modele level for U and V 240 240 CALL calcul_flux_wind(knon, dtime, & 241 u0, v0, u1, v1, cdragm, &241 u0, v0, u1, v1, gustiness, cdragm, & 242 242 AcoefU, AcoefV, BcoefU, BcoefV, & 243 243 p1lay, temp_air, & -
LMDZ5/trunk/libf/phylmd/ocean_slab_mod.F90
r2209 r2240 219 219 AcoefH, AcoefQ, BcoefH, BcoefQ, & 220 220 AcoefU, AcoefV, BcoefU, BcoefV, & 221 ps, u1, v1, tsurf_in, &221 ps, u1, v1, gustiness, tsurf_in, & 222 222 radsol, snow, & 223 223 qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 242 242 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 243 243 REAL, DIMENSION(klon), INTENT(IN) :: ps 244 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 244 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 245 245 REAL, DIMENSION(klon), INTENT(IN) :: tsurf_in 246 246 REAL, DIMENSION(klon), INTENT(INOUT) :: radsol … … 289 289 tsurf_in, p1lay, cal, beta, cdragh, ps, & 290 290 precip_rain, precip_snow, snow, qsurf, & 291 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &291 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 292 292 AcoefH, AcoefQ, BcoefH, BcoefQ, & 293 293 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) … … 295 295 ! - Flux calculation at first modele level for U and V 296 296 CALL calcul_flux_wind(knon, dtime, & 297 u0, v0, u1, v1, cdragm, &297 u0, v0, u1, v1, gustiness, cdragm, & 298 298 AcoefU, AcoefV, BcoefU, BcoefV, & 299 299 p1lay, temp_air, & … … 398 398 AcoefH, AcoefQ, BcoefH, BcoefQ, & 399 399 AcoefU, AcoefV, BcoefU, BcoefV, & 400 ps, u1, v1, &400 ps, u1, v1, gustiness, & 401 401 radsol, snow, qsurf, qsol, agesno, & 402 402 alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 420 420 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 421 421 REAL, DIMENSION(klon), INTENT(IN) :: ps 422 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 422 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 423 423 REAL, DIMENSION(klon), INTENT(IN) :: swnet 424 424 … … 500 500 tsurf_in, p1lay, cal, beta, cdragh, ps, & 501 501 precip_rain, precip_snow, snow, qsurf, & 502 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &502 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 503 503 AcoefH, AcoefQ, BcoefH, BcoefQ, & 504 504 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) … … 509 509 ! calcul_flux_wind 510 510 CALL calcul_flux_wind(knon, dtime, & 511 u0, v0, u1, v1, cdragm, &511 u0, v0, u1, v1, gustiness, cdragm, & 512 512 AcoefU, AcoefV, BcoefU, BcoefV, & 513 513 p1lay, temp_air, & -
LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90
r2234 r2240 174 174 zsig, lwdown_m, pphi, cldt, & 175 175 rain_f, snow_f, solsw_m, sollw_m, & 176 gustiness, & 176 177 t, q, u, v, & 177 178 !!! nrlmd+jyg le 02/05/2011 et le 20/02/2012 … … 334 335 REAL, DIMENSION(klon), INTENT(IN) :: zsig ! slope 335 336 REAL, DIMENSION(klon), INTENT(IN) :: lwdown_m ! downward longwave radiation at mean s 337 REAL, DIMENSION(klon), INTENT(IN) :: gustiness ! gustiness 338 336 339 REAL, DIMENSION(klon), INTENT(IN) :: cldt ! total cloud fraction 337 340 REAL, DIMENSION(klon,klev), INTENT(IN) :: pphi ! geopotential (m2/s2) … … 795 798 REAL, DIMENSION(klon, nbsrf) :: alb ! mean albedo for whole SW interval 796 799 REAL, DIMENSION(klon) :: ylwdown ! jg : temporary (ysollwdown) 800 REAL, DIMENSION(klon) :: ygustiness ! jg : temporary (ysollwdown) 797 801 798 802 REAL :: zx_qs1, zcor1, zdelta1 … … 823 827 824 828 IF (first_call) THEN 829 print*,'PBL SURFACE AVEC GUSTINESS' 825 830 first_call=.FALSE. 826 831 … … 1178 1183 ENDDO 1179 1184 1180 1181 1185 !**************************************************************************************** 1182 1186 ! 4) Loop over different surfaces … … 1244 1248 yfder(j) = fder(i) 1245 1249 ylwdown(j) = lwdown_m(i) 1250 ygustiness(j) = gustiness(i) 1246 1251 ysolsw(j) = solsw(i,nsrf) 1247 1252 ysollw(j) = sollw(i,nsrf) … … 1801 1806 AcoefH, AcoefQ, BcoefH, BcoefQ, & 1802 1807 AcoefU, AcoefV, BcoefU, BcoefV, & 1803 ypsref, yu1, yv1, y rugoro, pctsrf, &1808 ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, & 1804 1809 ylwdown, yq2m, yt2m, & 1805 1810 ysnow, yqsol, yagesno, ytsoil, & … … 1841 1846 AcoefH, AcoefQ, BcoefH, BcoefQ, & 1842 1847 AcoefU, AcoefV, BcoefU, BcoefV, & 1843 ypsref, yu1, yv1, y rugoro, pctsrf, &1848 ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, & 1844 1849 ysnow, yqsurf, yqsol, yagesno, & 1845 1850 !albedo SB >>> … … 1887 1892 AcoefH, AcoefQ, BcoefH, BcoefQ, & 1888 1893 AcoefU, AcoefV, BcoefU, BcoefV, & 1889 ypsref, yu1, yv1, y rugoro, pctsrf, &1894 ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, & 1890 1895 ysnow, yqsurf, yagesno, & 1891 1896 !albedo SB >>> … … 1922 1927 AcoefH, AcoefQ, BcoefH, BcoefQ, & 1923 1928 AcoefU, AcoefV, BcoefU, BcoefV, & 1924 ypsref, yu1, yv1, y rugoro, pctsrf, &1929 ypsref, yu1, yv1, ygustiness, yrugoro, pctsrf, & 1925 1930 ysnow, yqsurf, yqsol, yagesno, ytsoil, & 1926 1931 !albedo SB >>> -
LMDZ5/trunk/libf/phylmd/phys_output_ctrlout_mod.F90
r2209 r2240 74 74 ctrl_out((/ 10, 6, 10, 10, 10, 10, 11, 11, 11 /), & 75 75 't2m_sic', "Temp 2m "//clnsurf(4), "K", (/ ('', i=1, 9) /)) /) 76 77 TYPE(ctrl_out), SAVE :: o_gusts = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 /), & 78 'gusts', 'surface gustiness', 'm2/s2', (/ ('', i=1, 9) /)) 76 79 77 80 TYPE(ctrl_out), SAVE :: o_wind10m = ctrl_out((/ 1, 1, 1, 10, 10, 10, 11, 11, 11 /), & -
LMDZ5/trunk/libf/phylmd/phys_output_write_mod.F90
r2209 r2240 32 32 o_t2m_min_mon, o_t2m_max_mon, & 33 33 o_q2m, o_ustar, o_u10m, o_v10m, & 34 o_wind10m, o_wind10max, o_ sicf, &34 o_wind10m, o_wind10max, o_gusts, o_sicf, & 35 35 o_psol, o_mass, o_qsurf, o_qsol, & 36 36 o_precip, o_ndayrain, o_plul, o_pluc, & … … 159 159 SWdn200, SWdn200clr, LWup200, LWup200clr, & 160 160 LWdn200, LWdn200clr, solsw, solsw0, sollw, & 161 radsol, sollw0, sollwdown, sollw, &161 radsol, sollw0, sollwdown, sollw, gustiness, & 162 162 sollwdownclr, lwdn0, ftsol, ustar, u10m, & 163 163 v10m, pbl_tke, wake_delta_pbl_TKE, & … … 354 354 ENDIF 355 355 CALL histwrite_phy(o_wind10max, zx_tmp_fi2d) 356 357 CALL histwrite_phy(o_gusts, gustiness) 356 358 357 359 IF (vars_defined) THEN -
LMDZ5/trunk/libf/phylmd/phys_state_var_mod.F90
r2227 r2240 304 304 REAL,ALLOCATABLE,SAVE :: sollwdown(:) 305 305 !$OMP THREADPRIVATE(sollwdown) 306 REAL,ALLOCATABLE,SAVE :: gustiness(:) 307 !$OMP THREADPRIVATE(gustiness) 306 308 REAL,ALLOCATABLE,SAVE :: sollwdownclr(:) 307 309 !$OMP THREADPRIVATE(sollwdownclr) … … 544 546 ALLOCATE(albplap(klon)) 545 547 ALLOCATE(solswp(klon), sollwp(klon)) 548 ALLOCATE(gustiness(klon)) 546 549 ALLOCATE(sollwdownp(klon)) 547 550 ALLOCATE(topsw0p(klon),toplw0p(klon)) … … 664 667 deallocate(topsw, toplw) 665 668 deallocate(sollwdown, sollwdownclr) 669 deallocate(gustiness) 666 670 deallocate(toplwdown, toplwdownclr) 667 671 deallocate(topsw0,toplw0,solsw0,sollw0) -
LMDZ5/trunk/libf/phylmd/physiq.F90
r2236 r2240 1841 1841 !>jyg+nrlmd 1842 1842 ! 1843 !-------gustiness calculation-------! 1844 do i = 1, klon 1845 gustiness(i)=f_gust_bl*ale_bl(i)+f_gust_wk*ale_wake(i) 1846 enddo 1847 1843 1848 CALL pbl_surface( & 1844 1849 dtime, date0, itap, days_elapsed+1, & … … 1847 1852 zsig, sollwdown, pphi, cldt, & 1848 1853 rain_fall, snow_fall, solsw, sollw, & 1854 gustiness, & 1849 1855 t_seri, q_seri, u_seri, v_seri, & 1850 1856 !nrlmd+jyg< … … 2151 2157 ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 2152 2158 ! Estimation d'une vitesse verticale effective pour ALP 2159 if (1==0) THEN 2153 2160 www(1:klon)=0. 2154 2161 do k=2,klev-1 … … 2166 2173 if (www(i)>0. .and. ale_bl(i)>0. ) www(i)=www(i)/ale_bl(i) 2167 2174 enddo 2175 ENDIF 2168 2176 2169 2177 … … 2178 2186 ALP(i) = alp_wake(i) + Alp_bl(i) + alp_offset ! modif sb 2179 2187 else 2188 abort_message ='Ne pas passer la car www non calcule' 2189 CALL abort_gcm (modname,abort_message,1) 2180 2190 2181 2191 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 4313 4323 ENDDO 4314 4324 RETURN 4315 END SUBROUTINE gr_fi_ecrit 4325 END SUBROUTINE gr_fi_ecrit 4326 -
LMDZ5/trunk/libf/phylmd/surf_land_bucket_mod.F90
r1907 r2240 13 13 tsurf, p1lay, tq_cdrag, precip_rain, precip_snow, temp_air, & 14 14 spechum, petAcoef, peqAcoef, petBcoef, peqBcoef, pref, & 15 u1, v1, rugoro, swnet, lwnet, &15 u1, v1, gustiness, rugoro, swnet, lwnet, & 16 16 snow, qsol, agesno, tsoil, & 17 17 qsurf, z0_new, alb1_new, alb2_new, evap, & … … 49 49 REAL, DIMENSION(klon), INTENT(IN) :: petBcoef, peqBcoef 50 50 REAL, DIMENSION(klon), INTENT(IN) :: pref 51 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 51 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 52 52 REAL, DIMENSION(klon), INTENT(IN) :: rugoro 53 53 REAL, DIMENSION(klon), INTENT(IN) :: swnet, lwnet … … 125 125 tsurf, p1lay, cal, beta, tq_cdrag, pref, & 126 126 precip_rain, precip_snow, snow, qsurf, & 127 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &127 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 128 128 petAcoef, peqAcoef, petBcoef, peqBcoef, & 129 129 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) -
LMDZ5/trunk/libf/phylmd/surf_land_mod.F90
r2227 r2240 14 14 AcoefH, AcoefQ, BcoefH, BcoefQ, & 15 15 AcoefU, AcoefV, BcoefU, BcoefV, & 16 pref, u1, v1, rugoro, pctsrf, &16 pref, u1, v1, gustiness, rugoro, pctsrf, & 17 17 lwdown_m, q2m, t2m, & 18 18 snow, qsol, agesno, tsoil, & … … 61 61 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 62 62 REAL, DIMENSION(klon), INTENT(IN) :: pref ! pressure reference 63 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 63 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 64 64 REAL, DIMENSION(klon), INTENT(IN) :: rugoro 65 65 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf … … 137 137 knindex, rlon, rlat, pctsrf, & 138 138 debut, lafin, & 139 zlev, u1, v1, temp_air, spechum, epot_air, ccanopy, &139 zlev, u1, v1, gustiness, temp_air, spechum, epot_air, ccanopy, & 140 140 cdragh, AcoefH, AcoefQ, BcoefH, BcoefQ, & 141 141 precip_rain, precip_snow, lwdown_m, swnet, swdown, & … … 160 160 tsurf, p1lay, cdragh, precip_rain, precip_snow, temp_air, & 161 161 spechum, AcoefH, AcoefQ, BcoefH, BcoefQ, pref, & 162 u1, v1, rugoro, swnet, lwnet, &162 u1, v1, gustiness, rugoro, swnet, lwnet, & 163 163 snow, qsol, agesno, tsoil, & 164 164 qsurf, z0_new, alb1_new, alb2_new, evap, & … … 175 175 v0(:)=0.0 176 176 CALL calcul_flux_wind(knon, dtime, & 177 u0, v0, u1, v1, cdragm, &177 u0, v0, u1, v1, gustiness, cdragm, & 178 178 AcoefU, AcoefV, BcoefU, BcoefV, & 179 179 p1lay, temp_air, & -
LMDZ5/trunk/libf/phylmd/surf_land_orchidee_mod.F90
r2126 r2240 33 33 knindex, rlon, rlat, pctsrf, & 34 34 debut, lafin, & 35 plev, u1_lay, v1_lay, temp_air, spechum, epot_air, ccanopy, &35 plev, u1_lay, v1_lay, gustiness, temp_air, spechum, epot_air, ccanopy, & 36 36 tq_cdrag, petAcoef, peqAcoef, petBcoef, peqBcoef, & 37 37 precip_rain, precip_snow, lwdown, swnet, swdown, & … … 115 115 REAL, DIMENSION(klon), INTENT(IN) :: rlon, rlat 116 116 REAL, DIMENSION(klon), INTENT(IN) :: plev 117 REAL, DIMENSION(klon), INTENT(IN) :: u1_lay, v1_lay 117 REAL, DIMENSION(klon), INTENT(IN) :: u1_lay, v1_lay, gustiness 118 118 REAL, DIMENSION(klon), INTENT(IN) :: temp_air, spechum 119 119 REAL, DIMENSION(klon), INTENT(IN) :: epot_air, ccanopy -
LMDZ5/trunk/libf/phylmd/surf_landice_mod.F90
r2227 r2240 15 15 AcoefH, AcoefQ, BcoefH, BcoefQ, & 16 16 AcoefU, AcoefV, BcoefU, BcoefV, & 17 ps, u1, v1, rugoro, pctsrf, &17 ps, u1, v1, gustiness, rugoro, pctsrf, & 18 18 snow, qsurf, qsol, agesno, & 19 19 !albedo SB >>> … … 59 59 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 60 60 REAL, DIMENSION(klon), INTENT(IN) :: ps 61 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 61 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 62 62 REAL, DIMENSION(klon), INTENT(IN) :: rugoro 63 63 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf … … 205 205 206 206 CALL calcul_flux_wind(knon, dtime, & 207 u0, v0, u1, v1, cdragm, &207 u0, v0, u1, v1, gustiness, cdragm, & 208 208 AcoefU, AcoefV, BcoefU, BcoefV, & 209 209 p1lay, temp_air, & … … 245 245 tsurf, p1lay, cal, beta, cdragh, ps, & 246 246 precip_rain, precip_snow, snow, qsurf, & 247 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, &247 radsol, dif_grnd, temp_air, spechum, u1_lay, v1_lay, gustiness, & 248 248 AcoefH, AcoefQ, BcoefH, BcoefQ, & 249 249 tsurf_new, evap, fluxlat, fluxsens, dflux_s, dflux_l) 250 250 251 251 CALL calcul_flux_wind(knon, dtime, & 252 u0, v0, u1, v1, cdragm, &252 u0, v0, u1, v1, gustiness, cdragm, & 253 253 AcoefU, AcoefV, BcoefU, BcoefV, & 254 254 p1lay, temp_air, & -
LMDZ5/trunk/libf/phylmd/surf_ocean_mod.F90
r2227 r2240 14 14 AcoefH, AcoefQ, BcoefH, BcoefQ, & 15 15 AcoefU, AcoefV, BcoefU, BcoefV, & 16 ps, u1, v1, rugoro, pctsrf, &16 ps, u1, v1, gustiness, rugoro, pctsrf, & 17 17 snow, qsurf, agesno, & 18 18 !albedo SB >>> … … 62 62 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 63 63 REAL, DIMENSION(klon), INTENT(IN) :: ps 64 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 64 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 65 65 REAL, DIMENSION(klon), INTENT(IN) :: rugoro 66 66 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf … … 118 118 AcoefH, AcoefQ, BcoefH, BcoefQ, & 119 119 AcoefU, AcoefV, BcoefU, BcoefV, & 120 ps, u1, v1, &120 ps, u1, v1, gustiness, & 121 121 radsol, snow, agesno, & 122 122 qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 129 129 AcoefH, AcoefQ, BcoefH, BcoefQ, & 130 130 AcoefU, AcoefV, BcoefU, BcoefV, & 131 ps, u1, v1, tsurf_in, &131 ps, u1, v1, gustiness, tsurf_in, & 132 132 radsol, snow, & 133 133 qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 141 141 AcoefH, AcoefQ, BcoefH, BcoefQ, & 142 142 AcoefU, AcoefV, BcoefU, BcoefV, & 143 ps, u1, v1, &143 ps, u1, v1, gustiness, & 144 144 radsol, snow, agesno, & 145 145 qsurf, evap, fluxsens, fluxlat, flux_u1, flux_v1, & -
LMDZ5/trunk/libf/phylmd/surf_seaice_mod.F90
r2227 r2240 17 17 AcoefH, AcoefQ, BcoefH, BcoefQ, & 18 18 AcoefU, AcoefV, BcoefU, BcoefV, & 19 ps, u1, v1, rugoro, pctsrf, &19 ps, u1, v1, gustiness, rugoro, pctsrf, & 20 20 snow, qsurf, qsol, agesno, tsoil, & 21 21 !albedo SB >>> … … 60 60 REAL, DIMENSION(klon), INTENT(IN) :: AcoefU, AcoefV, BcoefU, BcoefV 61 61 REAL, DIMENSION(klon), INTENT(IN) :: ps 62 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1 62 REAL, DIMENSION(klon), INTENT(IN) :: u1, v1, gustiness 63 63 REAL, DIMENSION(klon), INTENT(IN) :: rugoro 64 64 REAL, DIMENSION(klon,nbsrf), INTENT(IN) :: pctsrf … … 117 117 AcoefH, AcoefQ, BcoefH, BcoefQ, & 118 118 AcoefU, AcoefV, BcoefU, BcoefV, & 119 ps, u1, v1, pctsrf, &119 ps, u1, v1, gustiness, pctsrf, & 120 120 radsol, snow, qsurf, & 121 121 alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 128 128 AcoefH, AcoefQ, BcoefH, BcoefQ, & 129 129 AcoefU, AcoefV, BcoefU, BcoefV, & 130 ps, u1, v1, &130 ps, u1, v1, gustiness, & 131 131 radsol, snow, qsurf, qsol, agesno, & 132 132 alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, & … … 139 139 AcoefH, AcoefQ, BcoefH, BcoefQ, & 140 140 AcoefU, AcoefV, BcoefU, BcoefV, & 141 ps, u1, v1, &141 ps, u1, v1, gustiness, & 142 142 radsol, snow, qsol, agesno, tsoil, & 143 143 qsurf, alb1_new, alb2_new, evap, fluxsens, fluxlat, flux_u1, flux_v1, &
Note: See TracChangeset
for help on using the changeset viewer.