Changeset 1998
- Timestamp:
- Mar 19, 2014, 3:14:30 PM (11 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/add_pbl_tend.F90
r1992 r1998 1 SUBROUTINE add_pbl_tend(zdu, zdv, zdt, zdq, zdql, text)1 SUBROUTINE add_pbl_tend(zdu, zdv, zdt, zdq, zdql, paprs, text) 2 2 ! ====================================================================== 3 3 ! Ajoute les tendances de couche limite, soit determinees par la … … 29 29 REAL zdt(klon, klev), zdq(klon, klev), zdql(klon, klev) 30 30 CHARACTER *(*) text 31 REAL paprs(klon,klev+1) 31 32 32 33 ! Local : … … 45 46 PRINT *, ' add_pbl_tend, zzdt ', zzdt 46 47 PRINT *, ' add_pbl_tend, zzdq ', zzdq 47 CALL add_phys_tend(zdu, zdv, zzdt, zzdq, zdql, text)48 CALL add_phys_tend(zdu, zdv, zzdt, zzdq, zdql, paprs, text) 48 49 ELSE 49 CALL add_phys_tend(zdu, zdv, zdt, zdq, zdql, text)50 CALL add_phys_tend(zdu, zdv, zdt, zdq, zdql, paprs, text) 50 51 END IF 51 52 -
LMDZ5/trunk/libf/phylmd/add_phys_tend.F90
r1907 r1998 2 2 ! $Id$ 3 3 ! 4 SUBROUTINE add_phys_tend (zdu,zdv,zdt,zdq,zdql, text)4 SUBROUTINE add_phys_tend (zdu,zdv,zdt,zdq,zdql,paprs,text) 5 5 !====================================================================== 6 6 ! Ajoute les tendances des variables physiques aux variables … … 19 19 IMPLICIT none 20 20 #include "iniprint.h" 21 #include "YOMCST.h" 21 22 22 23 ! Arguments : … … 24 25 REAL zdu(klon,klev),zdv(klon,klev) 25 26 REAL zdt(klon,klev),zdq(klon,klev),zdql(klon,klev) 27 REAL paprs(klon,klev+1) 26 28 CHARACTER*(*) text 27 29 … … 29 31 !-------- 30 32 REAL zt,zq 33 REAL zq_int, zqp_int, zq_new 34 35 REAL zqp(klev) 31 36 32 37 INTEGER i, k,j … … 35 40 INTEGER kadrs(klon*klev) 36 41 INTEGER kqadrs(klon*klev) 42 43 LOGICAL done(klon) 37 44 38 45 integer debug_level … … 107 114 !===================================================================================== 108 115 IF (jqbad .GT. 0) THEN 116 done(:) = .false. !jyg 109 117 DO j = 1, jqbad 110 i=jqadrs(j) 111 if(prt_level.ge.debug_level) THEN 112 print*,'WARNING : EAU POUR LE POINT i rlon rlat =',i,rlon(i),rlat(i),text 113 print*,'l T dT Q dQ ' 114 endif 115 DO k = 1, klev 116 zq=q_seri(i,k)+zdq(i,k) 117 if (zq.lt.1.e-15) then 118 if (q_seri(i,k).lt.1.e-15) then 119 if(prt_level.ge.debug_level) THEN 120 print*,' cas q_seri<1.e-15 i k q_seri zq zdq :',i,k,q_seri(i,k),zq,zdq(i,k) 121 endif 122 q_seri(i,k)=1.e-15 123 zdq(i,k)=(1.e-15-q_seri(i,k)) 124 endif 125 endif 118 i=jqadrs(j) 119 IF (.NOT.done(i)) THEN !jyg 120 if(prt_level.ge.debug_level) THEN 121 print*,'WARNING : EAU POUR LE POINT i rlon rlat =',i,rlon(i),rlat(i),text 122 print*,'l T dT Q dQ ' 123 DO k = 1, klev 124 write(*,'(i3,2f14.4,2e14.2)') k,t_seri(i,k),zdt(i,k),q_seri(i,k),zdq(i,k) 125 ENDDO 126 endif 127 !jyg<20140228 Corrections pour conservation de l'eau 128 DO k = 1, klev 129 zqp(k) = max(q_seri(i,k),1.e-15) 130 ENDDO 131 zq_int = 0. 132 zqp_int = 0. 133 DO k = 1, klev 134 zq_int = zq_int + q_seri(i,k)*(paprs(i,k)-paprs(i,k+1))/Rg 135 zqp_int = zqp_int + zqp(k) *(paprs(i,k)-paprs(i,k+1))/Rg 136 ENDDO 137 if(prt_level.ge.debug_level) THEN 138 print*,' cas q_seri<1.e-15 i k zq_int zqp_int zq_int/zqp_int :', & 139 i, kqadrs(j), zq_int, zqp_int, zq_int/zqp_int 140 endif 141 DO k = 1, klev 142 zq_new = zqp(k)*zq_int/zqp_int 143 zdq(i,k) = zdq(i,k) + zq_new - q_seri(i,k) 144 q_seri(i,k) = zq_new 145 ENDDO 146 done(i) = .true. 147 ENDIF !(.NOT.done(i)) 148 149 ! DO k = 1, klev 126 150 ! zq=q_seri(i,k)+zdq(i,k) 127 151 ! if (zq.lt.1.e-15) then 128 ! zdq(i,k)=(1.e-15-q_seri(i,k)) 152 ! if (q_seri(i,k).lt.1.e-15) then 153 ! if(prt_level.ge.debug_level) THEN 154 ! print*,' cas q_seri<1.e-15 i k q_seri zq zdq :',i,k,q_seri(i,k),zq,zdq(i,k) 155 ! endif 156 ! q_seri(i,k)=1.e-15 157 ! zdq(i,k)=(1.e-15-q_seri(i,k)) 158 ! endif 129 159 ! endif 130 ENDDO 160 !! zq=q_seri(i,k)+zdq(i,k) 161 !! if (zq.lt.1.e-15) then 162 !! zdq(i,k)=(1.e-15-q_seri(i,k)) 163 !! endif 164 ! ENDDO 165 !jyg> 131 166 ENDDO 132 167 ENDIF -
LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
r1989 r1998 114 114 real,save :: seuil_inversion_omp 115 115 116 integer,SAVE :: iflag_thermals_ed_omp,iflag_thermals_optflux_omp 116 integer,SAVE :: iflag_thermals_ed_omp,iflag_thermals_optflux_omp,iflag_thermals_closure_omp 117 117 integer,SAVE :: iflag_thermals_omp,nsplit_thermals_omp 118 118 real,save :: tau_thermals_omp,alp_bl_k_omp … … 1159 1159 iflag_thermals_optflux_omp = 0 1160 1160 call getin('iflag_thermals_optflux',iflag_thermals_optflux_omp) 1161 ! 1162 !Config Key = iflag_thermals_closure 1163 !Config Desc = 1164 !Config Def = 0 1165 !Config Help = 1166 ! 1167 iflag_thermals_closure_omp = 1 1168 call getin('iflag_thermals_closure',iflag_thermals_closure_omp) 1169 ! 1170 ! 1161 1171 ! 1162 1172 ! … … 1814 1824 iflag_thermals_ed = iflag_thermals_ed_omp 1815 1825 iflag_thermals_optflux = iflag_thermals_optflux_omp 1826 iflag_thermals_closure = iflag_thermals_closure_omp 1816 1827 nsplit_thermals = nsplit_thermals_omp 1817 1828 tau_thermals = tau_thermals_omp … … 2005 2016 write(lunout,*)' iflag_thermals_ed = ', iflag_thermals_ed 2006 2017 write(lunout,*)' iflag_thermals_optflux = ', iflag_thermals_optflux 2018 write(lunout,*)' iflag_thermals_closure = ', iflag_thermals_closure 2007 2019 write(lunout,*)' iflag_clos = ', iflag_clos 2008 2020 write(lunout,*)' type_run = ',type_run -
LMDZ5/trunk/libf/phylmd/physiq.F90
r1992 r1998 1785 1785 IF (klon_glo==1) THEN 1786 1786 CALL add_pbl_tend & 1787 (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0, 'vdf')1787 (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,paprs,'vdf') 1788 1788 ELSE 1789 1789 CALL add_phys_tend & 1790 (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0, 'vdf')1790 (d_u_vdf,d_v_vdf,d_t_vdf+d_t_diss,d_q_vdf,dql0,paprs,'vdf') 1791 1791 ENDIF 1792 1792 !-------------------------------------------------------------------- … … 2155 2155 !----------------------------------------------------------------------------------------- 2156 2156 ! ajout des tendances de la diffusion turbulente 2157 CALL add_phys_tend(d_u_con,d_v_con,d_t_con,d_q_con,dql0, 'con')2157 CALL add_phys_tend(d_u_con,d_v_con,d_t_con,d_q_con,dql0,paprs,'con') 2158 2158 !----------------------------------------------------------------------------------------- 2159 2159 … … 2272 2272 d_t_wake(:,:)=dt_wake(:,:)*dtime 2273 2273 d_q_wake(:,:)=dq_wake(:,:)*dtime 2274 CALL add_phys_tend(du0,dv0,d_t_wake,d_q_wake,dql0, 'wake')2274 CALL add_phys_tend(du0,dv0,d_t_wake,d_q_wake,dql0,paprs,'wake') 2275 2275 !----------------------------------------------------------------------------------------- 2276 2276 … … 2372 2372 ENDIF 2373 2373 2374 2374 2375 !----Initialisations 2375 2376 do i=1,klon … … 2389 2390 s_trig,s2,n2 2390 2391 ENDIF 2392 2393 !Option pour re-activer l'ancien calcul de Ale_bl (iflag_trig_bl=2) 2394 IF (iflag_trig_bl.eq.1) then 2391 2395 2392 2396 !----Tirage al\'eatoire et calcul de ale_bl_trig … … 2407 2411 endif 2408 2412 enddo 2413 2414 ELSE IF (iflag_trig_bl.eq.2) then 2415 2416 do i=1,klon 2417 if ( (Ale_bl(i) .gt. abs(cin(i))+1.e-10) ) then 2418 proba_notrig(i)=(1.-exp(-s_trig/s2(i)))** & 2419 (n2(i)*dtime/tau_trig(i)) 2420 ! print *, 'proba_notrig(i) ',proba_notrig(i) 2421 if (random_notrig(i) .ge. proba_notrig(i)) then 2422 ale_bl_trig(i)=Ale_bl(i) 2423 else 2424 ale_bl_trig(i)=0. 2425 endif 2426 else 2427 proba_notrig(i)=1. 2428 random_notrig(i)=0. 2429 ale_bl_trig(i)=0. 2430 endif 2431 enddo 2432 2433 ENDIF 2434 2409 2435 ! 2410 2436 IF (prt_level .GE. 10) THEN … … 2416 2442 2417 2443 !-----------Statistical closure----------- 2418 if (iflag_clos_bl.ge.1) then 2419 2444 if (iflag_clos_bl.eq.1) then 2445 2446 do i=1,klon 2447 !CR: alp probabiliste 2448 if (ale_bl_trig(i).gt.0.) then 2449 alp_bl(i)=alp_bl(i)/(1.-min(proba_notrig(i),0.999)) 2450 endif 2451 enddo 2452 2453 else if (iflag_clos_bl.eq.2) then 2454 2455 !CR: alp calculee dans thermcell_main 2420 2456 do i=1,klon 2421 2457 alp_bl(i)=alp_bl_stat(i) … … 2454 2490 2455 2491 do i=1,klon 2456 zmax_th(i)=pphi(i,lmax_th(i))/rg 2492 ! zmax_th(i)=pphi(i,lmax_th(i))/rg 2493 !CR:04/05/12:correction calcul zmax 2494 zmax_th(i)=zmax0(i) 2457 2495 enddo 2458 2496 … … 2494 2532 !----------------------------------------------------------------------------------------- 2495 2533 ! ajout des tendances de l'ajustement sec ou des thermiques 2496 CALL add_phys_tend(du0,dv0,d_t_ajsb,d_q_ajsb,dql0, 'ajsb')2534 CALL add_phys_tend(du0,dv0,d_t_ajsb,d_q_ajsb,dql0,paprs,'ajsb') 2497 2535 d_t_ajs(:,:)=d_t_ajs(:,:)+d_t_ajsb(:,:) 2498 2536 d_q_ajs(:,:)=d_q_ajs(:,:)+d_q_ajsb(:,:) … … 2552 2590 !----------------------------------------------------------------------------------------- 2553 2591 ! ajout des tendances de la diffusion turbulente 2554 CALL add_phys_tend(du0,dv0,d_t_lsc,d_q_lsc,d_ql_lsc, 'lsc')2592 CALL add_phys_tend(du0,dv0,d_t_lsc,d_q_lsc,d_ql_lsc,paprs,'lsc') 2555 2593 !----------------------------------------------------------------------------------------- 2556 2594 DO k = 1, klev … … 3220 3258 !----------------------------------------------------------------------------------------- 3221 3259 ! ajout des tendances de la trainee de l'orographie 3222 CALL add_phys_tend(d_u_oro,d_v_oro,d_t_oro,dq0,dql0, 'oro')3260 CALL add_phys_tend(d_u_oro,d_v_oro,d_t_oro,dq0,dql0,paprs,'oro') 3223 3261 !----------------------------------------------------------------------------------------- 3224 3262 ! … … 3266 3304 !----------------------------------------------------------------------------------------- 3267 3305 ! ajout des tendances de la portance de l'orographie 3268 CALL add_phys_tend(d_u_lif,d_v_lif,d_t_lif,dq0,dql0, 'lif')3306 CALL add_phys_tend(d_u_lif,d_v_lif,d_t_lif,dq0,dql0,paprs,'lif') 3269 3307 !----------------------------------------------------------------------------------------- 3270 3308 ! … … 3280 3318 ! 3281 3319 ! ajout des tendances 3282 CALL add_phys_tend(d_u_hin,d_v_hin,d_t_hin,dq0,dql0, 'hin')3320 CALL add_phys_tend(d_u_hin,d_v_hin,d_t_hin,dq0,dql0,paprs,'hin') 3283 3321 3284 3322 ENDIF … … 3288 3326 rain_fall + snow_fall, zustr_gwd_rando, zvstr_gwd_rando, & 3289 3327 du_gwd_rando, dv_gwd_rando) 3290 CALL add_phys_tend(du_gwd_rando, dv_gwd_rando, dt0, dq0, dql0, &3328 CALL add_phys_tend(du_gwd_rando, dv_gwd_rando, dt0, dq0, dql0,paprs, & 3291 3329 'flott_gwd_rando') 3292 3330 end if -
LMDZ5/trunk/libf/phylmd/thermcell.h
r1907 r1998 14 14 15 15 integer :: iflag_coupl,iflag_clos,iflag_wake 16 integer :: iflag_thermals_ed,iflag_thermals_optflux 16 integer :: iflag_thermals_ed,iflag_thermals_optflux,iflag_thermals_closure 17 17 18 common/ctherm1/iflag_thermals,nsplit_thermals 18 common/ctherm1/iflag_thermals,nsplit_thermals,iflag_thermals_closure 19 19 common/ctherm2/tau_thermals,alp_bl_k 20 20 common/ctherm4/iflag_coupl,iflag_clos,iflag_wake -
LMDZ5/trunk/libf/phylmd/thermcell_dry.F90
r1907 r1998 122 122 zw2(ig,l+1)=0. 123 123 lmax(ig)=l 124 ! endif 125 !CR:zmax continu 06/05/12: calcul de linter quand le thermique est stoppe par le detrainement 126 elseif (f_star(ig,l+1).lt.0.) then 127 linter(ig)=(l*(f_star(ig,l+1)-f_star(ig,l)) & 128 & -f_star(ig,l))/(f_star(ig,l+1)-f_star(ig,l)) 129 zw2(ig,l+1)=0. 130 lmax(ig)=l 124 131 endif 125 132 !CRfin 126 133 wa_moy(ig,l+1)=sqrt(zw2(ig,l+1)) 127 134 -
LMDZ5/trunk/libf/phylmd/thermcell_height.F90
r1907 r1998 84 84 enddo 85 85 86 if (iflag_thermals_ed.ge.1) then 87 86 ! if (iflag_thermals_ed.ge.1) then 87 if (1==0) then 88 !CR:date de quand le calcul du zmax continu etait buggue 88 89 num(:)=0. 89 90 denom(:)=0. … … 100 101 endif 101 102 enddo 102 103 104 103 104 else 105 !CR:Calcul de zmax continu via le linter 105 106 do ig=1,ngrid 106 107 ! calcul de zlevinter -
LMDZ5/trunk/libf/phylmd/thermcell_main.F90
r1978 r1998 513 513 & lalim,lmin,zmax_sec,wmax_sec,lev_out) 514 514 515 515 516 call test_ltherm(ngrid,nlay,pplev,pplay,lmin,seuil,ztv,po,ztva,zqla,f_star,zw2,'thermcell_dry lmin ') 516 517 call test_ltherm(ngrid,nlay,pplev,pplay,lalim,seuil,ztv,po,ztva,zqla,f_star,zw2,'thermcell_dry lalim ') … … 533 534 alim_star_clos(:,:)=alim_star(:,:) 534 535 alim_star_clos(:,:)=entr_star(:,:)+alim_star(:,:) 535 536 ! Appel avec la version seche 536 ! 537 !CR Appel de la fermeture seche 538 if (iflag_thermals_closure.eq.1) then 539 537 540 CALL thermcell_closure(ngrid,nlay,r_aspect_thermals,ptimestep,rho, & 538 541 & zlev,lalim,alim_star_clos,f_star,zmax_sec,wmax_sec,f,lev_out) … … 541 544 ! Appel avec les zmax et wmax tenant compte de la condensation 542 545 ! Semble moins bien marcher 543 ! CALL thermcell_closure(ngrid,nlay,r_aspect_thermals,ptimestep,rho, & 544 ! & zlev,lalim,alim_star,f_star,zmax,wmax,f,lev_out) 546 else if (iflag_thermals_closure.eq.2) then 547 548 CALL thermcell_closure(ngrid,nlay,r_aspect_thermals,ptimestep,rho, & 549 & zlev,lalim,alim_star,f_star,zmax,wmax,f,lev_out) 550 551 endif 552 545 553 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 546 554 … … 754 762 do ig=1,ngrid 755 763 if (ok_lcl(ig)) then 756 if ((pplay(ig,l) .ge. pcon(ig)) .and. (pplay(ig,l+1) .le. pcon(ig))) then 764 !ATTENTION,zw2 calcule en pplev 765 ! if ((pplay(ig,l) .ge. pcon(ig)) .and. (pplay(ig,l+1) .le. pcon(ig))) then 766 ! klcl(ig)=l 767 ! interp(ig)=(pcon(ig)-pplay(ig,klcl(ig)))/(pplay(ig,klcl(ig)+1)-pplay(ig,klcl(ig))) 768 ! endif 769 if ((pplev(ig,l) .ge. pcon(ig)) .and. (pplev(ig,l+1) .le. pcon(ig))) then 757 770 klcl(ig)=l 758 interp(ig)=(pcon(ig)-ppl ay(ig,klcl(ig)))/(pplay(ig,klcl(ig)+1)-pplay(ig,klcl(ig)))771 interp(ig)=(pcon(ig)-pplev(ig,klcl(ig)))/(pplev(ig,klcl(ig)+1)-pplev(ig,klcl(ig))) 759 772 endif 760 773 endif … … 772 785 !! enddo 773 786 do ig =1,ngrid 774 zmax(ig)=pphi(ig,lmax(ig))/rg 787 !CR:REHABILITATION ZMAX CONTINU 788 ! zmax(ig)=pphi(ig,lmax(ig))/rg 775 789 if (ok_lcl(ig)) then 776 790 rhobarz0(ig)=rhobarz(ig,klcl(ig))+(rhobarz(ig,klcl(ig)+1) & … … 915 929 !------------Closure------------------ 916 930 917 IF (iflag_clos_bl.ge. 1) THEN931 IF (iflag_clos_bl.ge.2) THEN 918 932 919 933 !-----Calcul de ALP_BL_STAT … … 938 952 enddo 939 953 940 ENDIF ! (iflag_clos_bl.ge. 1)954 ENDIF ! (iflag_clos_bl.ge.2) 941 955 942 956 !!! fin nrlmd le 10/04/2012 -
LMDZ5/trunk/libf/phylmd/thermcell_plume.F90
r1982 r1998 6 6 & lalim,f0,detr_star,entr_star,f_star,csc,ztva, & 7 7 & ztla,zqla,zqta,zha,zw2,w_est,ztva_est,zqsatth,lmix,lmix_bis,linter & 8 & ,lev_out,lunout1,igout) 9 8 & ,lev_out,lunout1,igout) 10 9 !-------------------------------------------------------------------------- 11 ! thermcell_plume: calcule les valeurs de qt, thetal et w dans l ascendance 12 ! Last modified : Arnaud Jam 2014/02/11 13 ! Better representation of stratocumulus 10 !thermcell_plume: calcule les valeurs de qt, thetal et w dans l ascendance 14 11 !-------------------------------------------------------------------------- 15 12 … … 95 92 ! Initialisation 96 93 94 ! print*,'THERMCELL PLUME OK' 97 95 RLvCp = RLVTT/RCPD 98 96 fact_epsilon=0.002 … … 322 320 ! zbuoyjam(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l) 323 321 324 entr_star(ig,l)=f_star(ig,l)*zdz*zbetalpha*MAX(0., &325 & afact*zbuoyjam(ig,l)/zw2m - fact_epsilon )326 327 entrbis=entr_star(ig,l)322 ! entr_star(ig,l)=f_star(ig,l)*zdz*zbetalpha*MAX(0., & 323 ! & afact*zbuoyjam(ig,l)/zw2m - fact_epsilon ) 324 325 ! entrbis=entr_star(ig,l) 328 326 329 327 … … 332 330 & + 0.012*(zdqt(ig,l)/zw2m)**0.5 ) 333 331 334 335 ! zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l) 336 ! 337 ! entr_star(ig,l)=Max(0.,f_star(ig,l)*zdz*zbetalpha* & 338 ! & afact*zbuoy(ig,l)/zw2m & 339 ! & - 1.*fact_epsilon) 332 zbuoy(ig,l)=RG*(ztva_est(ig,l)-ztv(ig,l))/ztv(ig,l) 333 334 entr_star(ig,l)=f_star(ig,l)*zdz*zbetalpha*MAX(0., & 335 & afact*zbuoy(ig,l)/zw2m - fact_epsilon ) 336 ! & afact*zbuoy(ig,l)/zw2m - fact_epsilon+ 0.012*(zdqt(ig,l)/zw2m)**0.5) 337 338 339 ! entr_star(ig,l)=Max(0.,f_star(ig,l)*zdz*zbetalpha* & 340 ! & afact*zbuoy(ig,l)/zw2m & 341 ! & - 1.*fact_epsilon) 340 342 341 343 … … 350 352 ! endif 351 353 352 !print*,'alim0', l,lalim(ig),alim_star(ig,l),entrbis,f_star(ig,l)354 !print*,'alim0',zlev(ig,l),entr_star(ig,l),detr_star(ig,l),zw2m,zbuoy(ig,l),f_star(ig,l) 353 355 ! Calcul du flux montant normalise 354 356 f_star(ig,l+1)=f_star(ig,l)+alim_star(ig,l)+entr_star(ig,l) & … … 425 427 & -zw2(ig,l))/(zw2(ig,l+1)-zw2(ig,l)) 426 428 zw2(ig,l+1)=0. 429 !+CR:04/05/12:correction calcul linter pour calcul de zmax continu 430 elseif (f_star(ig,l+1).lt.0.) then 431 linter(ig)=(l*(f_star(ig,l+1)-f_star(ig,l)) & 432 & -f_star(ig,l))/(f_star(ig,l+1)-f_star(ig,l)) 433 zw2(ig,l+1)=0. 434 !fin CR:04/05/12 427 435 endif 428 436 … … 464 472 return 465 473 end 474 475 466 476 467 477 … … 536 546 REAL zqsatth(ngrid,klev) 537 547 REAL zta_est(ngrid,klev) 548 REAL zbuoyjam(ngrid,klev) 538 549 REAL ztemp(ngrid),zqsat(ngrid) 539 550 REAL zdw2 … … 572 583 573 584 ! Initialisations des variables reeles 574 if (1== 0) then585 if (1==1) then 575 586 ztva(:,:)=ztv(:,:) 576 587 ztva_est(:,:)=ztva(:,:) … … 598 609 zw2(:,:)=0. 599 610 zbuoy(:,:)=0. 611 zbuoyjam(:,:)=0. 600 612 gamma(:,:)=0. 601 613 zeps(:,:)=0. … … 819 831 zw2(ig,l+1)=0. 820 832 linter(ig)=l+1 821 endif 833 !CR:04/05/12:calcul linter 834 elseif (f_star(ig,l+1).lt.0.) then 835 linter(ig)=(l*(f_star(ig,l+1)-f_star(ig,l)) & 836 & -f_star(ig,l))/(f_star(ig,l+1)-f_star(ig,l)) 837 zw2(ig,l+1)=0. 838 !fin CR:04/05/12 839 endif 840 822 841 823 842 if (zw2(ig,l+1).lt.0.) then … … 862 881 if (prt_level.ge.20) print*,'coucou calcul detr 470: ig, l', ig, l 863 882 883 884 864 885 return 865 886 end
Note: See TracChangeset
for help on using the changeset viewer.