Changeset 4881 for LMDZ6/trunk/libf/phylmdiso
- Timestamp:
- Mar 28, 2024, 6:06:40 PM (8 months ago)
- Location:
- LMDZ6/trunk/libf/phylmdiso
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmdiso/pbl_surface_mod.F90
r4745 r4881 24 24 USE climb_wind_mod, ONLY : climb_wind_down, climb_wind_up 25 25 USE coef_diff_turb_mod, ONLY : coef_diff_turb 26 USE lmdz_call_atke, ONLY : 26 USE lmdz_call_atke, ONLY : call_atke 27 27 USE ioipsl_getin_p_mod, ONLY : getin_p 28 28 USE cdrag_mod … … 308 308 !jyg< 309 309 !! zxfluxt, zxfluxq, q2m, flux_q, tke, & 310 zxfluxt, zxfluxq, zxfluxqbs, q2m, flux_q, flux_qbs, tke_x, &310 zxfluxt, zxfluxq, zxfluxqbs, q2m, flux_q, flux_qbs, tke_x, eps_x, & 311 311 !>jyg 312 312 !!! nrlmd+jyg le 02/05/2011 et le 20/02/2012 … … 506 506 ! Output variables 507 507 !**************************************************************************************** 508 REAL, DIMENSION(klon,klev+1,nbsrf+1), INTENT(OUT) :: eps_x ! TKE dissipation rate 509 508 510 REAL, DIMENSION(klon), INTENT(OUT) :: cdragh ! drag coefficient for T and Q 509 511 REAL, DIMENSION(klon), INTENT(OUT) :: cdragm ! drag coefficient for wind … … 765 767 REAL, DIMENSION(klon,klev) :: delp 766 768 REAL, DIMENSION(klon,klev+1) :: ypaprs 767 REAL, DIMENSION(klon,klev+1) :: ytke 769 REAL, DIMENSION(klon,klev+1) :: ytke, yeps 768 770 REAL, DIMENSION(klon,nsoilmx) :: ytsoil 769 771 !FC … … 785 787 REAL, DIMENSION(klon) :: ywake_s, ywake_cstar, ywake_dens 786 788 !!! 787 REAL, DIMENSION(klon,klev+1) :: ytke_x, ytke_w 789 REAL, DIMENSION(klon,klev+1) :: ytke_x, ytke_w, yeps_x, yeps_w 788 790 REAL, DIMENSION(klon,klev+1) :: ywake_dltke 789 791 REAL, DIMENSION(klon,klev) :: yu_x, yv_x, yu_w, yv_w … … 1261 1263 !! tke(:,:,is_ave)=0. 1262 1264 tke_x(:,:,is_ave)=0. 1265 eps_x(:,:,is_ave)=0. 1263 1266 1264 1267 wake_dltke(:,:,is_ave)=0. … … 1295 1298 1296 1299 ytke=0. 1300 yeps=0. 1297 1301 yri0(:)=0. 1298 1302 !FC … … 1308 1312 !!! nrlmd+jyg le 02/05/2011 et le 20/02/2012 1309 1313 ytke_x=0. ; ytke_w=0. ; ywake_dltke=0. 1314 yeps_x=0. ; yeps_w=0. 1310 1315 y_d_t_x=0. ; y_d_t_w=0. ; y_d_q_x=0. ; y_d_q_w=0. 1311 1316 !! d_t_w=0. ; d_q_w=0. … … 1979 1984 CALL call_atke(dtime,knon,klev,ycdragm(1:knon), ycdragh(1:knon),yus0(1:knon),yvs0(1:knon),yts(1:knon), & 1980 1985 yu(1:knon,:),yv(1:knon,:),yt(1:knon,:),yq(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:), & 1981 ytke(1:knon,:),y coefm(1:knon,:), ycoefh(1:knon,:))1986 ytke(1:knon,:),yeps(1:knon,:), ycoefm(1:knon,:), ycoefh(1:knon,:)) 1982 1987 1983 1988 ELSE … … 1985 1990 CALL coef_diff_turb(dtime, nsrf, knon, ni, & 1986 1991 ypaprs, ypplay, yu, yv, yq, yt, yts, yqsurf, ycdragm, & 1987 ycoefm, ycoefh, ytke, y _treedrg)1992 ycoefm, ycoefh, ytke, yeps, y_treedrg) 1988 1993 ! ycoefm, ycoefh, ytke) 1989 1994 !FC y_treedrg ajoute … … 2023 2028 CALL call_atke(dtime,knon,klev,ycdragm_x(1:knon),ycdragh_x(1:knon),yus0(1:knon),yvs0(1:knon),yts_x(1:knon), & 2024 2029 yu_x(1:knon,:),yv_x(1:knon,:),yt_x(1:knon,:),yq_x(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:), & 2025 ytke_x(1:knon,:),y coefm_x(1:knon,:), ycoefh_x(1:knon,:))2030 ytke_x(1:knon,:),yeps_x(1:knon,:),ycoefm_x(1:knon,:), ycoefh_x(1:knon,:)) 2026 2031 2027 2032 ELSE … … 2029 2034 CALL coef_diff_turb(dtime, nsrf, knon, ni, & 2030 2035 ypaprs, ypplay, yu_x, yv_x, yq_x, yt_x, yts_x, yqsurf_x, ycdragm_x, & 2031 ycoefm_x, ycoefh_x, ytke_x,y _treedrg)2036 ycoefm_x, ycoefh_x, ytke_x,yeps_x,y_treedrg) 2032 2037 ! ycoefm_x, ycoefh_x, ytke_x) 2033 2038 !FC doit on le mettre ( on ne l utilise pas si il y a du spliting) … … 2063 2068 CALL call_atke(dtime,knon,klev,ycdragm_w(1:knon),ycdragh_w(1:knon),yus0(1:knon),yvs0(1:knon),yts_w(1:knon), & 2064 2069 yu_w(1:knon,:),yv_w(1:knon,:),yt_w(1:knon,:),yq_w(1:knon,:),ypplay(1:knon,:),ypaprs(1:knon,:), & 2065 ytke_w(1:knon,:),y coefm_w(1:knon,:),ycoefh_w(1:knon,:))2070 ytke_w(1:knon,:),yeps_w(1:knon,:),ycoefm_w(1:knon,:),ycoefh_w(1:knon,:)) 2066 2071 2067 2072 ELSE 2068 2069 2073 2070 2074 CALL coef_diff_turb(dtime, nsrf, knon, ni, & 2071 2075 ypaprs, ypplay, yu_w, yv_w, yq_w, yt_w, yts_w, yqsurf_w, ycdragm_w, & 2072 ycoefm_w, ycoefh_w, ytke_w,y _treedrg)2076 ycoefm_w, ycoefh_w, ytke_w,yeps_w,y_treedrg) 2073 2077 ! ycoefm_w, ycoefh_w, ytke_w) 2074 2078 IF (iflag_pbl>=20.AND.iflag_pbl<30) THEN … … 3332 3336 !! tke(i,k,is_ave) = tke(i,k,is_ave) + ytke(j,k)*ypct(j) 3333 3337 tke_x(i,k,nsrf) = ytke(j,k) 3334 tke_x(i,k,is_ave) = tke_x(i,k,is_ave) + ytke(j,k)*ypct(j) 3335 3338 tke_x(i,k,is_ave) = tke_x(i,k,is_ave) + ytke(j,k)*ypct(j) 3339 eps_x(i,k,nsrf) = yeps(j,k) 3340 eps_x(i,k,is_ave) = eps_x(i,k,is_ave) + yeps(j,k)*ypct(j) 3336 3341 !>jyg 3337 3342 ENDDO … … 3347 3352 !! tke(i,k,is_ave) = tke(i,k,is_ave) + tke(i,k,nsrf)*ypct(j) 3348 3353 tke_x(i,k,nsrf) = ytke_x(j,k) 3349 tke_x(i,k,is_ave) = tke_x(i,k,is_ave) + tke_x(i,k,nsrf)*ypct(j) 3354 tke_x(i,k,is_ave) = tke_x(i,k,is_ave) + tke_x(i,k,nsrf)*ypct(j) 3355 eps_x(i,k,nsrf) = yeps_x(j,k) 3356 eps_x(i,k,is_ave) = eps_x(i,k,is_ave) + eps_x(i,k,nsrf)*ypct(j) 3350 3357 wake_dltke(i,k,is_ave) = wake_dltke(i,k,is_ave) + wake_dltke(i,k,nsrf)*ypct(j) 3351 3358 -
LMDZ6/trunk/libf/phylmdiso/phys_local_var_mod.F90
r4844 r4881 22 22 REAL, SAVE, ALLOCATABLE :: d_rneb_dyn(:,:) 23 23 !$OMP THREADPRIVATE(d_rneb_dyn) 24 REAL, SAVE, ALLOCATABLE :: l_mixmin(:,:,:),l_mix(:,:,:),tke_dissip(:,:,:),wprime(:,:,:) 25 !$OMP THREADPRIVATE(l_mixmin, l_mix, tke_dissip,wprime) 24 REAL, SAVE, ALLOCATABLE :: l_mixmin(:,:,:),l_mix(:,:,:),wprime(:,:,:) 25 !$OMP THREADPRIVATE(l_mixmin, l_mix, wprime) 26 REAL, SAVE, ALLOCATABLE :: pbl_eps(:,:,:) 27 !$OMP THREADPRIVATE(pbl_eps) 26 28 REAL, SAVE, ALLOCATABLE :: tr_seri(:,:,:) 27 29 !$OMP THREADPRIVATE(tr_seri) … … 764 766 ALLOCATE(t_seri(klon,klev),q_seri(klon,klev),ql_seri(klon,klev),qs_seri(klon,klev), qbs_seri(klon,klev)) 765 767 ALLOCATE(u_seri(klon,klev),v_seri(klon,klev)) 766 ALLOCATE(l_mixmin(klon,klev+1,nbsrf),l_mix(klon,klev+1,nbsrf), tke_dissip(klon,klev+1,nbsrf),wprime(klon,klev+1,nbsrf))767 l_mix(:,:,:)=0.;l_mixmin(:,:,:)=0.; tke_dissip(:,:,:)=0.;wprime(:,:,:)=0. ! doit etre initialse car pas toujours remplis768 768 ALLOCATE(l_mixmin(klon,klev+1,nbsrf),l_mix(klon,klev+1,nbsrf),wprime(klon,klev+1,nbsrf)) 769 l_mix(:,:,:)=0.;l_mixmin(:,:,:)=0.;wprime(:,:,:)=0. ! doit etre initialse car pas toujours remplis 770 ALLOCATE(pbl_eps(klon,klev+1,nbsrf)) 769 771 ALLOCATE(tr_seri(klon,klev,nbtr)) 770 772 ALLOCATE(d_t_dyn(klon,klev),d_q_dyn(klon,klev)) … … 1175 1177 DEALLOCATE(t_seri,q_seri,ql_seri,qs_seri, qbs_seri) 1176 1178 DEALLOCATE(u_seri,v_seri) 1177 DEALLOCATE(l_mixmin,l_mix, tke_dissip,wprime) 1179 DEALLOCATE(l_mixmin,l_mix,wprime) 1180 DEALLOCATE(pbl_eps) 1178 1181 1179 1182 DEALLOCATE(tr_seri) -
LMDZ6/trunk/libf/phylmdiso/physiq_mod.F90
r4844 r4881 294 294 zxfluxlat_x, zxfluxlat_w, & 295 295 ! 296 pbl_tke_input, tke_dissip, l_mix, wprime,&296 pbl_tke_input, pbl_eps, l_mix, wprime,& 297 297 t_therm, q_therm, u_therm, v_therm, & 298 298 cdragh_x, cdragh_w, & … … 1321 1321 integer iostat 1322 1322 1323 REAL, dimension(klon,klev+1) :: tke_dissip_ave,l_mix_ave, wprime_ave1323 REAL, dimension(klon,klev+1) :: l_mix_ave, wprime_ave 1324 1324 REAL zzz 1325 1325 !albedo SB >>> … … 3192 3192 fluxt, fluxu, fluxv, & 3193 3193 dsens, devap, zxsnow, & 3194 zxfluxt, zxfluxq, zxfluxqbs, q2m, fluxq, fluxqbs, pbl_tke, &3194 zxfluxt, zxfluxq, zxfluxqbs, q2m, fluxq, fluxqbs, pbl_tke, pbl_eps, & 3195 3195 !nrlmd+jyg< 3196 3196 wake_delta_pbl_TKE, & … … 4756 4756 ! water distribution 4757 4757 4758 tke_dissip_ave(:,:)=0.4759 4758 l_mix_ave(:,:)=0. 4760 4759 wprime_ave(:,:)=0. … … 4762 4761 DO nsrf = 1, nbsrf 4763 4762 DO i = 1, klon 4764 tke_dissip_ave(i,:) = tke_dissip_ave(i,:) + tke_dissip(i,:,nsrf)*pctsrf(i,nsrf)4765 4763 l_mix_ave(i,:) = l_mix_ave(i,:) + l_mix(i,:,nsrf)*pctsrf(i,nsrf) 4766 4764 wprime_ave(i,:) = wprime_ave(i,:) + wprime(i,:,nsrf)*pctsrf(i,nsrf) … … 4776 4774 paprs,pplay,t_seri,q_seri, & 4777 4775 qtc_cv, sigt_cv,detrain_cv,fm_cv,fqd,fqcomp,sigd,zqsat, & 4778 omega,pbl_tke(:,:,is_ave), tke_dissip_ave,l_mix_ave,wprime_ave, &4776 omega,pbl_tke(:,:,is_ave),pbl_eps(:,:,is_ave),l_mix_ave,wprime_ave, & 4779 4777 t2m,q2m,fm_therm,entr_therm,detr_therm,cell_area, & 4780 4778 ratqs,ratqsc,ratqs_inter_)
Note: See TracChangeset
for help on using the changeset viewer.