Changeset 1525


Ignore:
Timestamp:
May 25, 2011, 12:55:27 PM (13 years ago)
Author:
idelkadi
Message:

Modifications concerning the cloud scheme:

  1. In newmicro, it now possible to read a min and max effective radius of ice particles from physiq.def : rei_min and rei_max which were initially set to 3.5 and 61.29 microns in the code.

concerns : conf_phys.F90, nuage.h, newmicro.F

  1. In physiq.F, in case of combination of iflag_cldcon>=5 (A. Jam cloud scheme) and iflag_coupl=5

concerns : physiq.F and thermcell_main.F90

Location:
LMDZ5/trunk/libf/phylmd
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/conf_phys.F90

    r1496 r1525  
    129129  REAL,SAVE :: rad_froid_omp, rad_chau1_omp, rad_chau2_omp
    130130  REAL,SAVE :: t_glace_min_omp, t_glace_max_omp
     131  REAL,SAVE :: rei_min_omp, rei_max_omp
    131132  REAL,SAVE :: inertie_sol_omp,inertie_sno_omp,inertie_ice_omp
    132133  REAL,SAVE :: qsol0_omp
     
    858859  call getin('t_glace_max',t_glace_max_omp)
    859860
     861!Config Key  = rei_min
     862!Config Desc = 
     863!Config Def  = 3.5
     864!Config Help =
     865!
     866  rei_min_omp = 3.5
     867  call getin('rei_min',rei_min_omp)
     868
     869!
     870!Config Key  = rei_max
     871!Config Desc = 
     872!Config Def  = 61.29
     873!Config Help =
     874!
     875  rei_max_omp = 61.29
     876  call getin('rei_max',rei_max_omp)
     877
    860878!
    861879!Config Key  = top_height
     
    15031521    t_glace_min = t_glace_min_omp
    15041522    t_glace_max = t_glace_max_omp
     1523    rei_min = rei_min_omp
     1524    rei_max = rei_max_omp
    15051525    top_height = top_height_omp
    15061526    overlap = overlap_omp
     
    16881708  write(numout,*)' t_glace_min = ',t_glace_min
    16891709  write(numout,*)' t_glace_max = ',t_glace_max
     1710  write(numout,*)' rei_min = ',rei_min
     1711  write(numout,*)' rei_max = ',rei_max
    16901712  write(numout,*)' overlap = ',overlap
    16911713  write(numout,*)' cdmmax = ',cdmmax
  • LMDZ5/trunk/libf/phylmd/newmicro.F

    r1523 r1525  
    155155      REAL diff_paprs(klon, klev), zfice1, zfice2(klon, klev)
    156156      REAL rad_chaud_tab(klon, klev), zflwp_var, zfiwp_var
     157      REAL d_rei_dt
    157158
    158159! Abderrahmane oct 2009
    159160      Real reliq(klon, klev), reice(klon, klev)
    160161
     162!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
     163! FH : 2011/05/24
     164!
     165! rei = ( rei_max - rei_min ) * T(°C) / 81.4 + rei_max
     166! to be used for a temperature in celcius T(°C) < 0
     167! rei=rei_min for T(°C) < -81.4
     168!
     169! Calcul de la pente de la relation entre rayon effective des cristaux
     170! et la température.
     171! Pour retrouver les résultats numériques de la version d'origine,
     172! on impose 0.71 quand on est proche de 0.71
     173
     174      d_rei_dt=(rei_max-rei_min)/81.4
     175      if (abs(d_rei_dt-0.71)<1.e-4) d_rei_dt=0.71
     176!      print*,'d_rei_dT ',d_rei_dt,rei_min,rei_max
     177!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    161178c
    162179c Calculer l'epaisseur optique et l'emmissivite des nuages
     
    294311                 
    295312                     tc = t(i,k)-273.15
    296                      rei = 0.71*tc + 61.29
    297                      if (tc.le.-81.4) rei = 3.5
     313                     rei = d_rei_dt*tc + rei_max
     314                     if (tc.le.-81.4) rei = rei_min
    298315                     if (zflwp_var.eq.0.) radius = 1.
    299316                     if (zfiwp_var.eq.0. .or. rei.le.0.) rei = 1.
     
    321338c     asymptotical value of 3.5 microns at T<-81.4 C added to be
    322339c     consistent with observations of Heymsfield et al. 1986]:
     340c  2011/05/24 : rei_min = 3.5 becomes a free parameter as well as rei_max=61.29
    323341                  tc = t(i,k)-273.15
    324                   rei = 0.71*tc + 61.29
    325                   if (tc.le.-81.4) rei = 3.5
     342                  rei = d_rei_dt*tc + rei_max
     343                  if (tc.le.-81.4) rei = rei_min
    326344c     -- cloud optical thickness :
    327345               
  • LMDZ5/trunk/libf/phylmd/nuage.h

    r1286 r1525  
    33!
    44      REAL rad_froid, rad_chau1, rad_chau2, t_glace_max, t_glace_min
     5      REAL rei_min,rei_max
    56
    67      common /nuagecom/ rad_froid,rad_chau1, rad_chau2,t_glace_max,     &
    7      &                  t_glace_min
     8     &                  t_glace_min,rei_min,rei_max
    89!$OMP THREADPRIVATE(/nuagecom/)
  • LMDZ5/trunk/libf/phylmd/physiq.F

    r1518 r1525  
    29202920         enddo
    29212921
     2922         else if (iflag_coupl==5) then
     2923         do k=1,klev
     2924            do i=1,klon
     2925               cldfra(i,k)=min(cldfra(i,k)+rnebcon(i,k),1.)
     2926               cldliq(i,k)=cldliq(i,k)+rnebcon(i,k)*clwcon(i,k)
     2927            enddo
     2928         enddo
     2929
    29222930         else
     2931
    29232932! Si on est sur un point touche par la convection profonde et pas
    29242933! par les thermiques, on prend la couverture nuageuse et l'eau nuageuse
  • LMDZ5/trunk/libf/phylmd/thermcell_main.F90

    r1496 r1525  
    753753      enddo
    754754
    755       if (iflag_coupl==3 .or. iflag_coupl==4) then
     755      if (iflag_coupl>=3 .and. iflag_coupl<=5) then
    756756      do ig=1,ngrid
    757757!valeur integree de alp_bl * 0.5:
Note: See TracChangeset for help on using the changeset viewer.