Changeset 3784
- Timestamp:
- Nov 9, 2020, 3:09:22 PM (4 years ago)
- Location:
- LMDZ6/trunk/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ6/trunk/libf/phylmd/ocean_forced_mod.F90
r3780 r3784 76 76 REAL, DIMENSION(klon) :: u1_lay, v1_lay 77 77 LOGICAL :: check=.FALSE. 78 REAL, DIMENSION(klon) 79 REAL, DIMENSION(klon) 78 REAL, DIMENSION(klon) :: sens_prec_liq, sens_prec_sol 79 REAL, DIMENSION(klon) :: lat_prec_liq, lat_prec_sol 80 80 81 81 !**************************************************************************************** … … 112 112 !beta = 1. 113 113 !dif_grnd = 0. 114 115 114 116 ! EV: use calbeta to calculate beta 115 116 CALL calbeta(dtime, is_oce, knon, snow, beta*0., beta, cal, dif_grnd) 117 ! Need to initialize qsurf for calbeta but it is not modified by this routine 118 qsurf(:)=0. 119 CALL calbeta(dtime, is_oce, knon, snow, qsurf, beta, cal, dif_grnd) 117 120 118 121 … … 178 181 USE phys_output_var_mod, ONLY : sens_prec_liq_o, sens_prec_sol_o, lat_prec_liq_o, lat_prec_sol_o 179 182 180 ! 183 ! INCLUDE "indicesol.h" 181 184 INCLUDE "dimsoil.h" 182 185 INCLUDE "YOMCST.h" … … 245 248 246 249 ! calculate the parameters cal, beta, capsol and dif_grnd and then recalculate cal 247 CALL calbeta(dtime, is_sic, knon, snow, qsol, beta, ca l, dif_grnd)250 CALL calbeta(dtime, is_sic, knon, snow, qsol, beta, capsol, dif_grnd) 248 251 249 252 … … 260 263 ENDIF 261 264 262 !beta = 1.0265 ! beta = 1.0 263 266 sens_prec_liq = 0.; sens_prec_sol = 0.; lat_prec_liq = 0.; lat_prec_sol = 0. 264 267 … … 315 318 END SUBROUTINE ocean_forced_ice 316 319 317 !318 320 !************************************************************************ 319 ! 321 ! 1D case 322 !************************************************************************ 323 ! SUBROUTINE read_tsurf1d(knon,sst_out) 324 ! 325 ! This subroutine specifies the surface temperature to be used in 1D simulations 326 ! 327 ! USE dimphy, ONLY : klon 328 ! 329 ! INTEGER, INTENT(IN) :: knon ! nomber of points on compressed grid 330 ! REAL, DIMENSION(klon), INTENT(OUT) :: sst_out ! tsurf used to force the single-column model 331 ! 332 ! INTEGER :: i 333 ! COMMON defined in lmdz1d.F: 334 ! real ts_cur 335 ! common /sst_forcing/ts_cur 336 ! 337 ! DO i = 1, knon 338 ! sst_out(i) = ts_cur 339 ! ENDDO 340 ! 341 ! END SUBROUTINE read_tsurf1d 342 ! 343 ! 344 !************************************************************************ 320 345 END MODULE ocean_forced_mod 321 346 -
LMDZ6/trunk/libf/phylmd/pbl_surface_mod.F90
r3780 r3784 504 504 CHARACTER(len=8), DIMENSION(nbsrf), SAVE :: cl_surf 505 505 !$OMP THREADPRIVATE(cl_surf) 506 ! EV Ne sert plus: 507 ! REAL, SAVE :: beta_land ! beta for wx_dts 508 !!$OMP THREADPRIVATE(beta_land) 506 REAL, SAVE :: beta_land ! beta for wx_dts 507 !$OMP THREADPRIVATE(beta_land) 509 508 510 509 ! Other local variables … … 848 847 if (klon_glo>1) ok_forc_tsurf=.FALSE. 849 848 850 851 849 ! intialize beta_land 852 !beta_land = 0.5853 !call getin_p('beta_land', beta_land)850 beta_land = 0.5 851 call getin_p('beta_land', beta_land) 854 852 855 853 ! Initilize debug IO -
LMDZ6/trunk/libf/phylmd/physiq_mod.F90
r3780 r3784 3738 3738 ENDIF 3739 3739 zx_rh(i,k) = q_seri(i,k)/zx_qs 3740 IF (iflag_ice_thermo .GT. 0) THEN 3740 3741 zx_rhl(i,k) = q_seri(i,k)/(qsatl(zx_t)/pplay(i,k)) 3741 3742 zx_rhi(i,k) = q_seri(i,k)/(qsats(zx_t)/pplay(i,k)) 3743 ENDIF 3742 3744 zqsat(i,k)=zx_qs 3743 3745 ENDDO -
LMDZ6/trunk/libf/phylmd/yamada4.F90
r3780 r3784 189 189 viscom=1.46E-5 190 190 viscoh=2.06E-5 191 !lmixmin=1.0E-3 191 192 lmixmin=0. 192 193 yamada4_num=5 … … 432 433 shear(ig,k)=km(ig, k)*m2(ig, k) 433 434 buoy(ig,k)=km(ig, k)*m2(ig, k)*(-1.*rif(ig,k)) 434 dissip(ig,k)=min(max(((sqrt(q2(ig,k)))**3)/(b1*l(ig,k)),1.E-12),1.E4) 435 ! dissip(ig,k)=min(max(((sqrt(q2(ig,k)))**3)/(b1*l(ig,k)),1.E-12),1.E4) 436 dissip(ig,k)=((sqrt(q2(ig,k)))**3)/(b1*l(ig,k)) 435 437 ENDDO 436 438 ENDDO … … 537 539 tkeexp=exp(-dt*disseff/tkeprov) 538 540 tkeprov= tkeprov*tkeexp 539 q2(ig,k)=tkeprov*ydeux 541 q2(ig,k)=tkeprov*ydeux 540 542 541 543 ENDDO … … 556 558 ! q2(1:ngrid, k) = q2(1:ngrid, k) + dt*km(1:ngrid, k)*m2(1:ngrid, k)*(1.-rif(1:ngrid,k)) 557 559 q2(1:ngrid, k) = min(max(q2(1:ngrid,k),1.E-10), 1.E4) 558 q2(1:ngrid, k) = 1./(1./sqrt(q2(1:ngrid,k))+dt/(yun*l(1:ngrid,k)*b1))560 q2(1:ngrid, k) = 1./(1./sqrt(q2(1:ngrid,k))+dt/(yun*l(1:ngrid,k)*b1)) 559 561 ! q2(1:ngrid, k) = 1./(1./sqrt(q2(1:ngrid,k))+dt/(2*l(1:ngrid,k)*b1)) 560 562 q2(1:ngrid, k) = q2(1:ngrid, k)*q2(1:ngrid, k) … … 753 755 ! Diagnostics 754 756 tke_dissip(1:ngrid,:,nsrf)=0. 755 DO k=2,klev756 DO ig=1,ngrid757 jg=ni(ig)758 tke_dissip(jg,k,nsrf)=dissip(ig,k)759 ENDDO760 ENDDO757 ! DO k=2,klev 758 ! DO ig=1,ngrid 759 ! jg=ni(ig) 760 ! tke_dissip(jg,k,nsrf)=dissip(ig,k) 761 ! ENDDO 762 ! ENDDO 761 763 762 764 !============================================================================= … … 1105 1107 l2(1:ngrid,:)=0.0 1106 1108 l_mixmin(1:ngrid,:,nsrf)=0. 1107 l_mix(1:ngrid,:,nsrf)= 1.E-51109 l_mix(1:ngrid,:,nsrf)=0. 1108 1110 1109 1111 IF (nsrf .EQ. 1) THEN … … 1174 1176 DO ig=1,ngrid 1175 1177 lmix(ig,k)=MAX(MAX(l1(ig,k), l2(ig,k)),lmixmin) 1176 lmix(ig,k)=MAX(lmix(ig,k),1.E-5)1177 1178 ENDDO 1178 1179 ENDDO … … 1180 1181 ! Diagnostics 1181 1182 1182 DO k=2,klev +11183 DO k=2,klev 1183 1184 DO ig=1,ngrid 1184 1185 jg=ni(ig)
Note: See TracChangeset
for help on using the changeset viewer.