Changeset 2236 for LMDZ5/trunk
- Timestamp:
- Mar 17, 2015, 12:04:12 PM (10 years ago)
- Location:
- LMDZ5/trunk/libf/phylmd
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
LMDZ5/trunk/libf/phylmd/calcratqs.F90
r2205 r2236 1 1 SUBROUTINE calcratqs(klon,klev,prt_level,lunout, & 2 iflag_ratqs,iflag_con,iflag_cld th,pdtphys, &2 iflag_ratqs,iflag_con,iflag_cld_th,pdtphys, & 3 3 ratqsbas,ratqshaut,tau_ratqs,fact_cldcon, & 4 4 ptconv,ptconvth,clwcon0th, rnebcon0th, & … … 19 19 ! Input 20 20 integer,intent(in) :: klon,klev,prt_level,lunout 21 integer,intent(in) :: iflag_con,iflag_cld th,iflag_ratqs21 integer,intent(in) :: iflag_con,iflag_cld_th,iflag_ratqs 22 22 real,intent(in) :: pdtphys,ratqsbas,ratqshaut,fact_cldcon,tau_ratqs 23 23 real, dimension(klon,klev+1),intent(in) :: paprs … … 43 43 ! ---------------- 44 44 ! on ecrase le tableau ratqsc calcule par clouds_gno 45 if (iflag_cld th.eq.1) then45 if (iflag_cld_th.eq.1) then 46 46 do k=1,klev 47 47 do i=1,klon … … 58 58 ! par nversion de la fonction log normale 59 59 !----------------------------------------------------------------------- 60 else if (iflag_cld th.eq.4) then60 else if (iflag_cld_th.eq.4) then 61 61 ptconvth(:,:)=.false. 62 62 ratqsc(:,:)=0. … … 136 136 ! ----------- 137 137 138 if (iflag_cld th.eq.1 .or.iflag_cldth.eq.2.or.iflag_cldth.eq.4) then138 if (iflag_cld_th.eq.1 .or.iflag_cld_th.eq.2.or.iflag_cld_th.eq.4) then 139 139 140 140 ! On ajoute une constante au ratqsc*2 pour tenir compte de … … 165 165 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 166 166 ratqs(:,:)=max(ratqs(:,:),ratqss(:,:)) 167 else if (iflag_cld th<=6) then167 else if (iflag_cld_th<=6) then 168 168 ! on ne prend que le ratqs stable pour fisrtilp 169 169 ratqs(:,:)=ratqss(:,:) … … 174 174 do i=1,klon 175 175 if (ratqsc(i,k).gt.1.e-10) then 176 ratqs(i,k)=ratqs(i,k)*zfratqs2+(iflag_cld th/100.)*ratqsc(i,k)*(1.-zfratqs2)176 ratqs(i,k)=ratqs(i,k)*zfratqs2+(iflag_cld_th/100.)*ratqsc(i,k)*(1.-zfratqs2) 177 177 endif 178 178 ratqs(i,k)=min(ratqs(i,k)*zfratqs1+ratqss(i,k)*(1.-zfratqs1),0.5) -
LMDZ5/trunk/libf/phylmd/conf_phys_m.F90
r2227 r2236 15 15 solarlong0,seuil_inversion, & 16 16 fact_cldcon, facttemps,ok_newmicro,iflag_radia,& 17 iflag_cld th, &17 iflag_cld_th, & 18 18 iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 19 19 ok_ade, ok_aie, ok_cdnc, aerosol_couple, & … … 81 81 REAL :: bl95_b0, bl95_b1 82 82 real :: fact_cldcon, facttemps,ratqsbas,ratqshaut,tau_ratqs 83 integer :: iflag_cld th83 integer :: iflag_cld_th 84 84 integer :: iflag_ratqs 85 85 … … 113 113 logical,save :: ok_chlorophyll_omp ! albedo SB 114 114 integer,SAVE :: NSW_omp 115 integer,SAVE :: iflag_cld th_omp, ip_ebil_phy_omp115 integer,SAVE :: iflag_cld_th_omp, ip_ebil_phy_omp 116 116 integer,SAVE :: iflag_ratqs_omp 117 117 … … 900 900 901 901 ! 902 !Config Key = iflag_cld th902 !Config Key = iflag_cld_th 903 903 !Config Desc = 904 904 !Config Def = 1 905 905 !Config Help = 906 906 ! 907 iflag_cld th_omp = 1907 iflag_cld_th_omp = 1 908 908 ! On lit deux fois avec l'ancien et le nouveau nom 909 909 ! pour assurer une retrocompatiblite. 910 910 ! A abandonner un jour 911 call getin('iflag_cldcon',iflag_cldth_omp) 912 call getin('iflag_cldth',iflag_cldth_omp) 913 914 ! 915 !Config Key = iflag_cld_cv 916 !Config Desc = 917 !Config Def = 1 918 !Config Help = 919 ! 920 iflag_cld_cv_omp = 1 911 call getin('iflag_cldcon',iflag_cld_th_omp) 912 call getin('iflag_cld_th',iflag_cld_th_omp) 913 iflag_cld_cv_omp = 0 921 914 call getin('iflag_cld_cv',iflag_cld_cv_omp) 922 915 … … 1982 1975 iflag_rrtm = iflag_rrtm_omp 1983 1976 NSW = NSW_omp 1984 iflag_cld th = iflag_cldth_omp1977 iflag_cld_th = iflag_cld_th_omp 1985 1978 iflag_cld_cv = iflag_cld_cv_omp 1986 1979 tau_cld_cv = tau_cld_cv_omp … … 2137 2130 write(lunout,*)' reevap_ice = ', reevap_ice 2138 2131 write(lunout,*)' iflag_pdf = ', iflag_pdf 2139 write(lunout,*)' iflag_cld th = ', iflag_cldth2132 write(lunout,*)' iflag_cld_th = ', iflag_cld_th 2140 2133 write(lunout,*)' iflag_cld_cv = ', iflag_cld_cv 2141 2134 write(lunout,*)' tau_cld_cv = ', tau_cld_cv -
LMDZ5/trunk/libf/phylmd/fisrtilp.F90
r2223 r2236 8 8 frac_impa, frac_nucl, beta, & 9 9 prfl, psfl, rhcl, zqta, fraca, & 10 ztv, zpspsk, ztla, zthl, iflag_cld th, &10 ztv, zpspsk, ztla, zthl, iflag_cld_th, & 11 11 iflag_ice_thermo) 12 12 … … 82 82 INTEGER ninter ! sous-intervals pour la precipitation 83 83 INTEGER ncoreczq 84 INTEGER iflag_cld th84 INTEGER iflag_cld_th 85 85 INTEGER iflag_ice_thermo 86 86 PARAMETER (ninter=5) … … 545 545 enddo 546 546 547 if (iflag_cld th>=5) then547 if (iflag_cld_th>=5) then 548 548 549 549 call cloudth(klon,klev,k,ztv, & … … 559 559 endif 560 560 561 if (iflag_cld th <= 4) then561 if (iflag_cld_th <= 4) then 562 562 lognormale = .true. 563 elseif (iflag_cld th >= 6) then563 elseif (iflag_cld_th >= 6) then 564 564 ! lognormale en l'absence des thermiques 565 565 lognormale = fraca(:,k) < 1e-10 566 566 else 567 ! Dans le cas iflag_cld th=5, on prend systématiquement la567 ! Dans le cas iflag_cld_th=5, on prend systématiquement la 568 568 ! bi-gaussienne 569 569 lognormale = .false. -
LMDZ5/trunk/libf/phylmd/physiq.F90
r2235 r2236 639 639 !$OMP THREADPRIVATE(fact_cldcon,facttemps) 640 640 641 integer iflag_cld th642 save iflag_cld th643 !$OMP THREADPRIVATE(iflag_cld th)641 integer iflag_cld_th 642 save iflag_cld_th 643 !$OMP THREADPRIVATE(iflag_cld_th) 644 644 logical ptconv(klon,klev) 645 645 !IM cf. AM 081204 BEG … … 919 919 solarlong0,seuil_inversion, & 920 920 fact_cldcon, facttemps,ok_newmicro,iflag_radia, & 921 iflag_cld th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, &921 iflag_cld_th,iflag_ratqs,ratqsbas,ratqshaut,tau_ratqs, & 922 922 ok_ade, ok_aie, ok_cdnc, aerosol_couple, & 923 923 flag_aerosol, flag_aerosol_strat, new_aod, & … … 1027 1027 print*,'CYCLE_DIURNE', cycle_diurne 1028 1028 ! 1029 IF (iflag_con.EQ.2.AND.iflag_cld th.GT.-1) THEN1030 abort_message = 'Tiedtke needs iflag_cld th=-2 or -1'1029 IF (iflag_con.EQ.2.AND.iflag_cld_th.GT.-1) THEN 1030 abort_message = 'Tiedtke needs iflag_cld_th=-2 or -1' 1031 1031 CALL abort_gcm (modname,abort_message,1) 1032 1032 ENDIF … … 1143 1143 ,alp_bl_prescr, ale_bl_prescr) 1144 1144 ! 11/09/06 rajout initialisation ALE et ALP du wake et PBL(YU) 1145 ! print*,'apres ini_wake iflag_cld th=', iflag_cldth1145 ! print*,'apres ini_wake iflag_cld_th=', iflag_cld_th 1146 1146 endif 1147 1147 … … 2298 2298 ! calcul des proprietes des nuages convectifs 2299 2299 clwcon0(:,:)=fact_cldcon*clwcon0(:,:) 2300 IF (iflag_cld_cv <= 1) THEN2300 IF (iflag_cld_cv == 0) THEN 2301 2301 call clouds_gno & 2302 2302 (klon,klev,q_seri,zqsat,clwcon0,ptconv,ratqsc,rnebcon0) … … 2539 2539 END IF 2540 2540 2541 ! print*,'apres callwake iflag_cld th=', iflag_cldth2541 ! print*,'apres callwake iflag_cld_th=', iflag_cld_th 2542 2542 ! 2543 2543 !=================================================================== … … 2860 2860 ! water distribution 2861 2861 CALL calcratqs(klon,klev,prt_level,lunout, & 2862 iflag_ratqs,iflag_con,iflag_cld th,pdtphys, &2862 iflag_ratqs,iflag_con,iflag_cld_th,pdtphys, & 2863 2863 ratqsbas,ratqshaut,tau_ratqs,fact_cldcon, & 2864 2864 ptconv,ptconvth,clwcon0th, rnebcon0th, & … … 2882 2882 frac_impa, frac_nucl, beta_prec_fisrt, & 2883 2883 prfl, psfl, rhcl, & 2884 zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cld th, &2884 zqasc, fraca,ztv,zpspsk,ztla,zthl,iflag_cld_th, & 2885 2885 iflag_ice_thermo) 2886 2886 ! … … 2938 2938 ! 2939 2939 !IM cf FH 2940 ! IF (iflag_cld th.eq.-1) THEN ! seulement pour Tiedtke2941 IF (iflag_cld th.le.-1) THEN ! seulement pour Tiedtke2940 ! IF (iflag_cld_th.eq.-1) THEN ! seulement pour Tiedtke 2941 IF (iflag_cld_th.le.-1) THEN ! seulement pour Tiedtke 2942 2942 snow_tiedtke=0. 2943 2943 ! print*,'avant calcul de la pseudo precip ' 2944 ! print*,'iflag_cld th',iflag_cldth2945 if (iflag_cld th.eq.-1) then2944 ! print*,'iflag_cld_th',iflag_cld_th 2945 if (iflag_cld_th.eq.-1) then 2946 2946 rain_tiedtke=rain_con 2947 2947 else … … 2976 2976 ENDDO 2977 2977 2978 ELSE IF (iflag_cld th.ge.3) THEN2978 ELSE IF (iflag_cld_th.ge.3) THEN 2979 2979 ! On prend pour les nuages convectifs le max du calcul de la 2980 2980 ! convection et du calcul du pas de temps precedent diminue d'un facteur … … 3066 3066 ! On prend la somme des fractions nuageuses et des contenus en eau 3067 3067 3068 if (iflag_cld th>=5) then3068 if (iflag_cld_th>=5) then 3069 3069 3070 3070 do k=1,klev
Note: See TracChangeset
for help on using the changeset viewer.