Changeset 2586
- Timestamp:
- Jul 8, 2016, 4:25:48 PM (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/cloudth.F90
r2547 r2586 5 5 6 6 7 USE IOIPSL, ONLY : getin8 7 IMPLICIT NONE 9 8 … … 55 54 REAL sth,senv,sigma1s,sigma2s,xth,xenv 56 55 REAL Tbef,zdelta,qsatbef,zcor 57 REAL alpha,qlbef56 REAL qlbef 58 57 REAL ratqs(ngrid,klev) ! determine la largeur de distribution de vapeur 59 58 … … 171 170 cenv(ind1,ind2)=0.5*(1.+1.*erf(xenv)) 172 171 ctot(ind1,ind2)=fraca(ind1,ind2)*cth(ind1,ind2)+(1.-1.*fraca(ind1,ind2))*cenv(ind1,ind2) 173 ! ctot(ind1,ind2)=alpha*cth(ind1,ind2)+(1.-1.*alpha)*cenv(ind1,ind2)174 175 176 172 177 173 qlth(ind1,ind2)=sigma2s*((exp(-1.*xth**2)/sqrt2pi)+xth*sqrt(2.)*cth(ind1,ind2)) 178 174 qlenv(ind1,ind2)=sigma1s*((exp(-1.*xenv**2)/sqrt2pi)+xenv*sqrt(2.)*cenv(ind1,ind2)) 179 175 qltot(ind1,ind2)=fraca(ind1,ind2)*qlth(ind1,ind2)+(1.-1.*fraca(ind1,ind2))*qlenv(ind1,ind2) 180 ! qltot(ind1,ind2)=alpha*qlth(ind1,ind2)+(1.-1.*alpha)*qlenv(ind1,ind2)181 182 183 ! print*,senv,sth,sigma1s,sigma2s,fraca(ind1,ind2),'senv et sth et sig1 et sig2 et alpha'184 176 185 177 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! … … 255 247 & ratqs,zqs,t) 256 248 257 258 IMPLICIT NONE259 260 261 249 !=========================================================================== 262 250 ! Auteur : Arnaud Octavio Jam (LMD/CNRS) … … 265 253 !=========================================================================== 266 254 255 256 USE ioipsl_getin_p_mod, ONLY : getin_p 257 258 IMPLICIT NONE 267 259 268 260 #include "YOMCST.h" … … 307 299 REAL IntJ,IntI1,IntI2,IntI3,coeffqlenv,coeffqlth 308 300 REAL Tbef,zdelta,qsatbef,zcor 309 REAL alpha,qlbef301 REAL qlbef 310 302 REAL ratqs(ngrid,klev) ! determine la largeur de distribution de vapeur 303 ! Change the width of the PDF used for vertical subgrid scale heterogeneity 304 ! (J Jouhaud, JL Dufresne, JB Madeleine) 305 REAL,SAVE :: vert_alpha 306 LOGICAL, SAVE :: firstcall = .TRUE. 311 307 312 308 REAL zpdf_sig(ngrid),zpdf_k(ngrid),zpdf_delta(ngrid) … … 314 310 REAL zqs(ngrid), qcloud(ngrid) 315 311 REAL erf 316 317 318 319 320 312 321 313 !------------------------------------------------------------------------------ … … 342 334 sqrtpi=sqrt(pi) 343 335 344 336 IF (firstcall) THEN 337 vert_alpha=0.5 338 CALL getin_p('cloudth_vert_alpha',vert_alpha) 339 WRITE(*,*) 'cloudth_vert_alpha = ', vert_alpha 340 firstcall=.FALSE. 341 ENDIF 345 342 346 343 !------------------------------------------------------------------------------- … … 412 409 cenv(ind1,ind2)=0.5*(1.+1.*erf(xenv)) 413 410 ctot(ind1,ind2)=fraca(ind1,ind2)*cth(ind1,ind2)+(1.-1.*fraca(ind1,ind2))*cenv(ind1,ind2) 414 ! ctot(ind1,ind2)=alpha*cth(ind1,ind2)+(1.-1.*alpha)*cenv(ind1,ind2)415 416 417 411 418 412 qlth(ind1,ind2)=sigma2s*((exp(-1.*xth**2)/sqrt2pi)+xth*sqrt(2.)*cth(ind1,ind2)) 419 413 qlenv(ind1,ind2)=sigma1s*((exp(-1.*xenv**2)/sqrt2pi)+xenv*sqrt(2.)*cenv(ind1,ind2)) 420 414 qltot(ind1,ind2)=fraca(ind1,ind2)*qlth(ind1,ind2)+(1.-1.*fraca(ind1,ind2))*qlenv(ind1,ind2) 421 ! qltot(ind1,ind2)=alpha*qlth(ind1,ind2)+(1.-1.*alpha)*qlenv(ind1,ind2)422 415 423 424 ! print*,senv,sth,sigma1s,sigma2s,fraca(ind1,ind2),'senv et sth et sig1 et sig2 et alpha'425 426 427 416 IF (iflag_cloudth_vert == 1) THEN 428 417 !------------------------------------------------------------------------------- … … 476 465 ! deltasenv=aenv*ratqs(ind1,ind2)*zqsatenv(ind1,ind2) 477 466 ! deltasth=ath*ratqs(ind1,ind2)*zqsatth(ind1,ind2) 478 deltasenv=aenv* 0.5*sigma1s479 deltasth=ath* 0.5*sigma2s467 deltasenv=aenv*vert_alpha*sigma1s 468 deltasth=ath*vert_alpha*sigma2s 480 469 481 470 xenv1=-(senv+deltasenv)/(sqrt(2.)*sigma1s)
Note: See TracChangeset
for help on using the changeset viewer.