Changeset 1516
- Timestamp:
- May 6, 2011, 4:45:19 PM (14 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/cv3_routines.F
r1515 r1516 36 36 real delt ! timestep (seconds) 37 37 38 38 39 CHARACTER (LEN=20) :: modname='cv3_param' 39 40 CHARACTER (LEN=80) :: abort_message … … 74 75 ccc dttrig = 5. ! (loose) condition for triggering 75 76 dttrig = 10. ! (loose) condition for triggering 76 wb = 1. ! (m/s) adiab updraught speed at LFC (used in cv3p1_closure) 77 flag_wb=0 78 wbmax = 1. ! (m/s) adiab updraught speed at LFC (used in cv3p1_closure) 77 79 78 80 c -- rate of approach to quasi-equilibrium: … … 97 99 READ(99,*,end=9998) spfac 98 100 READ(99,*,end=9998) tau 99 READ(99,*,end=9998) wb 101 READ(99,*,end=9998) flag_wb 102 READ(99,*,end=9998) wbmax 100 103 9998 Continue 101 104 CLOSE(99) … … 107 110 WRITE(*,*)'spfac=',spfac 108 111 WRITE(*,*)'tau=',tau 109 WRITE(*,*)'wb =',wb 112 WRITE(*,*)'flag_wb =',flag_wb 113 WRITE(*,*)'wbmax =',wbmax 110 114 111 115 cIM Lecture du fichier ep_param.data -
LMDZ5/trunk/libf/phylmd/cv3p1_closure.F
r1515 r1516 70 70 real cbmflim(nloc),cbmf1(nloc),cbmfmax(nloc),cbmf(nloc) 71 71 real cbmflast(nloc) 72 real wbeff(nloc) 73 72 74 real coef(nloc) 73 75 real xp(nloc),xq(nloc),xr(nloc),discr(nloc),b3(nloc),b4(nloc) … … 515 517 ENDDO 516 518 c 519 if (flag_wb==0) then 520 wbeff(:)=wbmax 521 else if (flag_wb==1) then 522 wbeff(1:ncum)=wbmax/(1.+500./(ph(1:ncum,1)-plfc(1:ncum))) 523 else 524 stop'cas non prevu iflag_wb' 525 ! ligne a suprimer un jour ... 526 endif 527 ! if (ncum==1) print*,'WB ',plfc,wbeff,alp2,cin 528 517 529 DO il = 1,ncum 518 cjyg Modification du coef de wb*wb pour conformite avec papier Wake 519 cc cbmf1(il) = alp2(il)/(0.5*wb*wb-Cin(il)) 520 cbmf1(il) = alp2(il)/(2.*wb*wb-Cin(il)) 530 531 !jyg Modification du coef de wb*wb pour conformite avec papier Wake 532 ! cbmf1(il) = alp2(il)/(0.5*wb*wb-Cin(il)) 533 ! A partir de mai 2011 on revient au 2 wb^2, conformement au papier. 534 ! les versions d'avant (NPv2 et al) tournaient avec 0.5 wb^2 et wb=1m/s 535 ! equivalent a wb=1 m/s pour la nouvelle formulation 536 ! Puis passage de wb constant a wbeff variable suivant flag_wb 537 538 cbmf1(il) = alp2(il)/(2.*wbeff(il)*wbeff(il)-Cin(il)) 539 521 540 if(cbmf1(il).EQ.0.AND.alp2(il).NE.0.) THEN 522 541 write(lunout,*) -
LMDZ5/trunk/libf/phylmd/cv3param.h
r1515 r1516 9 9 integer noff, minorig, nl, nlp, nlm 10 10 real sigdz, spfac 11 integer flag_epKEorig 11 integer flag_epKEorig,flag_wb 12 12 real pbcrit, ptcrit 13 13 real elcrit, tlcrit … … 15 15 real dtovsh, dpbase, dttrig 16 16 real dtcrit, tau, beta, alpha, alpha1 17 real wb 17 real wbmax 18 18 real delta 19 19 real betad … … 27 27 : ,dtovsh, dpbase, dttrig 28 28 : ,dtcrit, tau, beta, alpha, alpha1 29 : , wb29 : ,flag_wb,wbmax 30 30 : ,delta, betad 31 31 !$OMP THREADPRIVATE(/cv3param/) -
LMDZ5/trunk/libf/phylmd/physiq.F
r1507 r1516 615 615 real, save :: alp_max=2. 616 616 617 real, save :: wake_s_min_lsp=0.1 618 617 619 c$OMP THREADPRIVATE(alp_bl_prescr,ale_bl_prescr) 618 620 c$OMP THREADPRIVATE(ale_max,alp_max) 621 c$OMP THREADPRIVATE(wake_s_min_lsp) 619 622 620 623 real ale_wake(klon) 621 624 real alp_wake(klon) 625 626 real ok_wk_lsp(klon) 627 622 628 cRC 623 629 c Variables liées à la poche froide (jyg et rr) … … 2363 2369 2364 2370 if (iflag_wake==2) then 2365 dt_dwn(:,:)= dt_dwn(:,:)+(d_t_eva(:,:)+d_t_lsc(:,:))/dtime 2366 dq_dwn(:,:)= dq_dwn(:,:)+(d_q_eva(:,:)+d_q_lsc(:,:))/dtime 2371 ok_wk_lsp(:)=max(sign(1.,wake_s(:)-wake_s_min_lsp),0.) 2372 DO k = 1,klev 2373 dt_dwn(:,k)= dt_dwn(:,k)+ 2374 : ok_wk_lsp(:)*(d_t_eva(:,k)+d_t_lsc(:,k))/dtime 2375 dq_dwn(:,k)= dq_dwn(:,k)+ 2376 : ok_wk_lsp(:)*(d_q_eva(:,k)+d_q_lsc(:,k))/dtime 2377 ENDDO 2367 2378 endif 2368 2379 c
Note: See TracChangeset
for help on using the changeset viewer.