Changeset 2455
- Timestamp:
- Feb 28, 2016, 12:30:51 PM (9 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/compbl.h
r2159 r2455 2 2 ! $Header$ 3 3 ! 4 !jyg+ nrlmd<5 !! ! integer iflag_pbl6 !! ! common/compbl/iflag_pbl7 integer iflag_pbl, iflag_pbl_split8 common/compbl/iflag_pbl, iflag_pbl_split9 !>jyg+ nrlmd4 !jyg+al1< 5 !! integer iflag_pbl,iflag_pbl_split 6 !! common/compbl/iflag_pbl,iflag_pbl_split 7 integer iflag_pbl, iflag_pbl_split, iflag_order2_sollw 8 common/compbl/iflag_pbl, iflag_pbl_split, iflag_order2_sollw 9 !>jyg+al1 10 10 !$OMP THREADPRIVATE(/compbl/) -
LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
r2443 r2455 179 179 INTEGER,SAVE :: iflag_pbl_omp,lev_histhf_omp,lev_histday_omp,lev_histmth_omp 180 180 INTEGER,SAVE :: iflag_pbl_split_omp 181 INTEGER,SAVE :: iflag_order2_sollw_omp 181 182 Integer, save :: lev_histins_omp, lev_histLES_omp 182 183 INTEGER, SAVE :: lev_histdayNMC_omp … … 1287 1288 call getin('iflag_pbl_split',iflag_pbl_split_omp) 1288 1289 ! 1290 !Config Key = iflag_order2_sollw 1291 !Config Desc = 1292 !Config Def = 0 1293 !Config Help = 1294 ! 1295 iflag_order2_sollw_omp = 0 1296 call getin('iflag_order2_sollw',iflag_order2_sollw_omp) 1297 ! 1289 1298 !Config Key = iflag_thermals 1290 1299 !Config Desc = … … 1703 1712 f_gust_wk_omp = 0. 1704 1713 call getin('f_gust_wk',f_gust_wk_omp) 1714 ! 1715 !Config Key = iflag_z0_oce 1716 !Config Desc = 0 (z0h=z0m), 1 (diff. equ. for z0h and z0m), -1 (z0m=z0h=z0min) 1717 !Config Def = 0 ! z0h = z0m 1718 !Config Help = 1705 1719 ! 1706 1720 iflag_z0_oce_omp=0 … … 2025 2039 iflag_pbl = iflag_pbl_omp 2026 2040 iflag_pbl_split = iflag_pbl_split_omp 2041 iflag_order2_sollw = iflag_order2_sollw_omp 2027 2042 lev_histhf = lev_histhf_omp 2028 2043 lev_histday = lev_histday_omp … … 2224 2239 END IF 2225 2240 END IF 2226 2227 ! Flag_aerosol cannot be to zero if we are in coupled mode for aerosol2228 IF (aerosol_couple .AND. flag_aerosol .eq. 0 ) THEN2229 CALL abort_physic('conf_phys', 'flag_aerosol cannot be to zero if aerosol_couple=y ', 1)2230 ENDIF2231 2232 ! flag_aerosol need to be different to zero if ok_cdnc is activated2233 IF (ok_cdnc .AND. flag_aerosol .eq. 0) THEN2234 CALL abort_physic('conf_phys', 'flag_aerosol cannot be to zero if ok_cdnc is activated ', 1)2235 ENDIF2236 2241 2237 2242 ! ok_cdnc must be set to y if ok_aie is activated … … 2357 2362 write(lunout,*)' iflag_pbl = ', iflag_pbl 2358 2363 write(lunout,*)' iflag_pbl_split = ', iflag_pbl_split 2364 write(lunout,*)' iflag_order2_sollw = ', iflag_order2_sollw 2359 2365 write(lunout,*)' iflag_thermals = ', iflag_thermals 2360 2366 write(lunout,*)' iflag_thermals_ed = ', iflag_thermals_ed -
LMDZ5/trunk/libf/phylmd/dyn1d/1DUTILS.h
r2347 r2455 4344 4344 ! 4345 4345 INTEGER k,i 4346 REAL zx_qs, rh, tnew, d_rh 4346 REAL zx_qs, rh, tnew, d_rh, rhnew 4347 4347 4348 4348 ! Declaration des constantes et des fonctions thermodynamiques … … 4361 4361 print *,'temp ',t 4362 4362 print *,'hum ',q 4363 ! 4363 4364 DO k = 1,klev 4364 4365 DO i = 1,klon 4365 !!IF (paprs(i,1)-pplay(i,k) .GT. 10000.) THEN4366 IF (paprs(i,1)-pplay(i,k) .GT. 10000.) THEN 4366 4367 IF (t(i,k).LT.RTT) THEN 4367 4368 zx_qs = qsats(t(i,k))/(pplay(i,k)) … … 4374 4375 d_rh = 1./tau*(rh_targ(i,k)-rh) 4375 4376 ! 4376 tnew = t(i,k)+d_t(i,k) 4377 tnew = t(i,k)+d_t(i,k)*dtime 4378 !jyg< 4379 ! Formule pour q : 4380 ! d_q = (1/tau) [rh_targ*qsat(T_new) - q] 4381 ! 4382 ! Cette formule remplace d_q = (1/tau) [rh_targ - rh] qsat(T_new) 4383 ! qui n'était pas correcte. 4384 ! 4377 4385 IF (tnew.LT.RTT) THEN 4378 4386 zx_qs = qsats(tnew)/(pplay(i,k)) … … 4380 4388 zx_qs = qsatl(tnew)/(pplay(i,k)) 4381 4389 ENDIF 4382 d_q(i,k) = d_q(i,k) + d_rh*zx_qs 4383 ! 4384 print *,' k,d_t,rh,d_rh,d_q ', & 4385 k,d_t(i,k),rh,d_rh,d_q(i,k) 4386 !! ENDIF 4390 !! d_q(i,k) = d_q(i,k) + d_rh*zx_qs 4391 d_q(i,k) = d_q(i,k) + (1./tau)*(rh_targ(i,k)*zx_qs - q(i,k)) 4392 rhnew = (q(i,k)+d_q(i,k)*dtime)/zx_qs 4393 ! 4394 print *,' k,d_t,rh,d_rh,rhnew,d_q ', & 4395 k,d_t(i,k),rh,d_rh,rhnew,d_q(i,k) 4396 ENDIF 4387 4397 ! 4388 4398 ENDDO -
LMDZ5/trunk/libf/phylmd/dyn1d/lmdz1d.F90
r2422 r2455 932 932 ! Call physiq : 933 933 !--------------------------------------------------------------------- 934 935 934 call physiq(ngrid,llm, & 936 firstcall,lastcall,timestep, &937 plev,play,phi,phis,presnivs, &938 u,v, rot, temp,q,omega2, &939 du_phys,dv_phys,dt_phys,dq,dpsrf)940 firstcall=.false.935 firstcall,lastcall,timestep, & 936 plev,play,phi,phis,presnivs, & 937 u,v, rot, temp,q,omega2, & 938 du_phys,dv_phys,dt_phys,dq,dpsrf) 939 firstcall=.false. 941 940 942 941 !--------------------------------------------------------------------- -
LMDZ5/trunk/libf/phylmd/pbl_surface_mod.F90
r2452 r2455 522 522 !albedo SB <<< 523 523 REAL, DIMENSION(klon) :: ztsol 524 REAL, DIMENSION(klon) :: meansqT ! mean square deviation of subsurface temperatures 524 525 REAL, DIMENSION(klon) :: alb_m ! mean albedo for whole SW interval 525 526 REAL, DIMENSION(klon,klev) :: y_d_t, y_d_q, y_d_t_diss … … 1106 1107 ENDDO 1107 1108 ENDDO 1109 ! 1110 !<al1: second order corrections 1111 !- net = dwn -up; up=sig( T4 + 4sum%T3T' + 6sum%T2T'2 +...) 1112 IF (iflag_order2_sollw == 1) THEN 1113 meansqT(:) = 0. ! as working buffer 1114 DO nsrf = 1, nbsrf 1115 DO i = 1, klon 1116 meansqT(i) = meansqT(i)+(ts(i,nsrf)-ztsol(i))**2 *pctsrf(i,nsrf) 1117 END DO 1118 END DO 1119 DO nsrf = 1, nbsrf 1120 DO i = 1, klon 1121 sollw(i,nsrf) = sollw(i,nsrf) & 1122 + 6.0*RSIGMA*ztsol(i)**2 *(meansqT(i)-(ztsol(i)-ts(i,nsrf))**2) 1123 ENDDO 1124 ENDDO 1125 ENDIF ! iflag_order2_sollw == 1 1126 !>al1 1108 1127 1109 1128 !**************************************************************************************** … … 2811 2830 END DO 2812 2831 END DO 2832 ! 2833 !<al1 order 2 correction to zxtsol, for radiation computations (main atm effect of Ts) 2834 IF (iflag_order2_sollw == 1) THEN 2835 meansqT(:) = 0. ! as working buffer 2836 DO nsrf = 1, nbsrf 2837 DO i = 1, klon 2838 meansqT(i) = meansqT(i)+(ts(i,nsrf)-zxtsol(i))**2 *pctsrf(i,nsrf) 2839 END DO 2840 END DO 2841 zxtsol(:) = zxtsol(:)+1.5*meansqT(:)/zxtsol(:) 2842 ENDIF ! iflag_order2_sollw == 1 2843 !>al1 2813 2844 2814 2845 !!! jyg le 07/02/2012 -
LMDZ5/trunk/libf/phylmd/surf_ocean_mod.F90
r2413 r2455 36 36 37 37 include "clesphys.h" 38 ! for cycle_diurne 38 ! for cycle_diurne and for iflag_z0_oce==-1 (prescribed z0) 39 39 40 40 ! Input variables … … 244 244 z0h(i)=0.4*14e-6 / SQRT(cdragm(i) * tmp) 245 245 ENDDO 246 ELSE IF (iflag_z0_oce==-1) THEN 247 DO i = 1, knon 248 z0m(i) = z0min 249 z0h(i) = z0min 250 ENDDO 246 251 ELSE 247 252 CALL abort_physic(modname,'version non prevue',1)
Note: See TracChangeset
for help on using the changeset viewer.