100       logical  ::  Heter_Freezng = .
false.  
 
  101       logical  ::  Homog_Sublima = .
false.  
 
  102       logical  ::  Meyers        = .
true.   
 
  103       logical  ::  AUTO_w_Sundqv = .
true.   
 
  104       logical  ::  AUTO_w_LiouOu = .
false.  
 
  105       logical  ::  AUTO_w_LinAll = .
false.  
 
  106       logical  ::  AUTO_i_Levkov = .
true.   
 
  107       logical  ::  AUTO_i_LevkXX = .
true.   
 
  108       logical  ::  AUTO_i_EmdeKa = .
false.  
 
  109       logical  ::  AUTO_i_Sundqv = .
false.  
 
  111       logical  ::  fracSC        = .
false.  
 
  112       logical  ::  fraCEP        = .
false.  
 
  113       logical  ::  HalMos        = .
true.   
 
  114       logical  ::  graupel_shape = .
true.   
 
  115       logical  ::  planes__shape = .
false.  
 
  116       logical  ::  aggrega_shape = .
false.  
 
  118       logical  ::  NO_Vec        = .
true.   
 
  120       real(kind=real8)                             :: rad_ww            
 
  121       real(kind=real8)                             :: qvs_wi            
 
  123       real(kind=real8)                             :: BNUCVI            
 
  124       real(kind=real8)                             :: SSat_I            
 
  126       real(kind=real8)                             :: Flag_T_NuId       
 
  127       real(kind=real8)                             :: CCNiId            
 
  129       real(kind=real8)                             :: Flag___NuIc       
 
  130       real(kind=real8)                             :: Flag_T_NuIc       
 
  131       real(kind=real8)                             :: qw__OK            
 
  132       real(kind=real8)                             :: qi__OK            
 
  133       real(kind=real8)                             :: CCNiOK            
 
  134       real(kind=real8)                             :: CCNiIc            
 
  136       real(kind=real8)                             :: Flag_TmaxHM       
 
  137       real(kind=real8)                             :: Flag_TminHM       
 
  138       real(kind=real8)                             :: Flag_wa__HM       
 
  139       real(kind=real8)                             :: SplinJ            
 
  140       real(kind=real8)                             :: SplinP            
 
  142       real(kind=real8)                             :: Flag_Ta_Neg       
 
  143       real(kind=real8)                             :: Flag_TqwFrz       
 
  145       real(kind=real8)                             :: RHumid            
 
  147       real(kind=real8)                             :: qi_Nu1,qi_Nu2     
 
  148       real(kind=real8)                             :: qi_Nuc            
 
  149       real(kind=real8)                             :: NuIdOK            
 
  150       real(kind=real8)                             :: BSPRWI            
 
  151       real(kind=real8)                             :: BHAMWI            
 
  152       real(kind=real8)                             :: BNUFWI            
 
  153       real(kind=real8)                             :: BDEPVI            
 
  154       real(kind=real8)                             :: Flag_SURSat       
 
  155       real(kind=real8)                             :: Flag_SUBSat       
 
  156       real(kind=real8)                             :: Flag_Sublim       
 
  157       real(kind=real8)                             :: RH_Ice            
 
  158       real(kind=real8)                             :: RH_Liq            
 
  159       real(kind=real8)                             :: DenDi1,DenDi2     
 
  160       real(kind=real8)                             :: dqsiqv            
 
  161       real(kind=real8)                             :: dqvSUB            
 
  162       real(kind=real8)                             :: dqvDUM            
 
  163       real(kind=real8)                             :: dqiDUM            
 
  165       real(kind=real8)                             :: qCloud            
 
  166       real(kind=real8)                             :: coefC2            
 
  167       real(kind=real8)                             :: pa_hPa,es_hPa     
 
  168       real(kind=real8)                             :: Qsat_L            
 
  170       real(kind=real8)                             :: t_qvqw            
 
  171       real(kind=real8)                             :: d_qvqw            
 
  172       real(kind=real8)                             :: Kdqvqw            
 
  173       real(kind=real8)                             :: ww_TKE            
 
  174       real(kind=real8)                             :: RH_TKE            
 
  175       real(kind=real8)                             :: qt_TKE            
 
  176       real(kind=real8)                             :: TLiqid            
 
  177       real(kind=real8)                             :: CFr_t1,CFr_t2     
 
  178       real(kind=real8)                             :: CFrCoe            
 
  179       real(kind=real8)                             :: CFraOK            
 
  180       real(kind=real8)                             :: qwCFra            
 
  181       real(kind=real8)                             :: qwMesh            
 
  182       real(kind=real8)                             :: dwMesh            
 
  183       real(kind=real8)                             :: signdw            
 
  184       real(kind=real8)                             :: Flag_dqwPos       
 
  185       real(kind=real8)                             :: updatw            
 
  186       real(kind=real8)                             :: SCuLim            
 
  187       real(kind=real8)                             :: ARGerf            
 
  188       real(kind=real8)                             :: OUTerf            
 
  189       real(kind=real8)                             ::    erf            
 
  190       real(kind=real8)                             :: dwTUR4,dwTURi     
 
  191       real(kind=real8)                             :: dwTUR3,dwTUR2     
 
  192       real(kind=real8)                             :: dwTUR8,dwTURc     
 
  193       real(kind=real8)                             :: dwTUR5,dwTUR1     
 
  195       real(kind=real8)                             :: Di_Pri            
 
  196       real(kind=real8)                             :: c1saut,cnsaut     
 
  197       real(kind=real8)                             :: dtsaut            
 
  198       real(kind=real8)                             :: ps_AUT            
 
  199       real(kind=real8)                             :: qs_AUT            
 
  201       real(kind=real8)                             :: Flag_Ta_Pos       
 
  202       real(kind=real8)                             :: Flag_qiMELT       
 
  203       real(kind=real8)                             :: qxMelt            
 
  204       real(kind=real8)                             :: qiMELT            
 
  205       real(kind=real8)                             :: CiMelt            
 
  207       real(kind=real8)                             :: Flag_qsMELT       
 
  208       real(kind=real8)                             :: xCoefM            
 
  209       real(kind=real8)                             :: AcoefM,BcoefM     
 
  210       real(kind=real8)                             :: dTMELT            
 
  211       real(kind=real8)                             :: qsMELT            
 
  213       real(kind=real8)                             :: qs_ACW            
 
  214       real(kind=real8)                             :: Flag_qs_ACW       
 
  215       real(kind=real8)                             :: Flag_qs_ACI       
 
  216       real(kind=real8)                             :: effACI            
 
  217       real(kind=real8)                             :: ps_ACI            
 
  218       real(kind=real8)                             :: qs_ACI            
 
  219       real(kind=real8)                             :: CNsACI            
 
  220       real(kind=real8)                             :: Flag_qs_ACR       
 
  221       real(kind=real8)                             :: coeACR            
 
  222       real(kind=real8)                             :: qs_ACR            
 
  223       real(kind=real8)                             :: qs_ACR_R          
 
  224       real(kind=real8)                             :: qs_ACR_S          
 
  225       real(kind=real8)                             :: Flag_qr_ACS       
 
  226       real(kind=real8)                             :: coeACS            
 
  227       real(kind=real8)                             :: pr_ACS            
 
  228       real(kind=real8)                             :: qr_ACS            
 
  229       real(kind=real8)                             :: qr_ACS_S          
 
  230       real(kind=real8)                             :: ps_SUB            
 
  231       real(kind=real8)                             :: qs_SUB            
 
  232       real(kind=real8)                             :: ls_NUM            
 
  233       real(kind=real8)                             :: ls_DEN            
 
  235       real(kind=real8)                             :: Flag_Freeze       
 
  236       real(kind=real8)                             :: ps_FRZ            
 
  237       real(kind=real8)                             :: qs_FRZ            
 
  239       real(kind=real8)                             :: rwMEAN            
 
  241       real(kind=real8)                             :: th_AUT            
 
  242       real(kind=real8)                             :: pr_AUT            
 
  243       real(kind=real8)                             :: qr_AUT            
 
  244       real(kind=real8)                             :: Flag_qr_ACW       
 
  245       real(kind=real8)                             :: pr_ACW            
 
  246       real(kind=real8)                             :: qr_ACW            
 
  247       real(kind=real8)                             :: Flag_qr_ACI       
 
  248       real(kind=real8)                             :: pr_ACI            
 
  249       real(kind=real8)                             :: qr_ACI            
 
  250       real(kind=real8)                             :: CNrACI            
 
  251       real(kind=real8)                             :: pi_ACR            
 
  252       real(kind=real8)                             :: qi_ACR            
 
  253       real(kind=real8)                             :: Flag_DryAir       
 
  254       real(kind=real8)                             :: Flag_qr_EVP       
 
  255       real(kind=real8)                             :: lr_NUM            
 
  256       real(kind=real8)                             :: lr_DEN            
 
  257       real(kind=real8)                             :: pr_EVP            
 
  258       real(kind=real8)                             :: qr_EVP            
 
  260       real(kind=real8)                             :: effACS            
 
  262       real(kind=real8)                             :: a_rodz            
 
  263       real(kind=real8)                             :: qwFlux            
 
  264       real(kind=real8)                             :: qwrodz            
 
  265       real(kind=real8)                             :: wRatio            
 
  266       real(kind=real8)                             :: qiFlux            
 
  267       real(kind=real8)                             :: qirodz            
 
  268       real(kind=real8)                             :: iRatio            
 
  269       real(kind=real8)                             :: qsFlux            
 
  270       real(kind=real8)                             :: qsrodz            
 
  271       real(kind=real8)                             :: sRatio            
 
  272       real(kind=real8)                             :: qrFlux            
 
  273       real(kind=real8)                             :: qrrodz            
 
  274       real(kind=real8)                             :: rRatio            
 
  276       real(kind=real8)                             :: Vw_MAX            
 
  277       real(kind=real8)                             :: Flag_Fall_i       
 
  278       real(kind=real8)                             :: Vi_MAX            
 
  279       real(kind=real8)                             :: Vs_MAX,VsMMAX     
 
  280       real(kind=real8)                             :: Vs__OK            
 
  281       real(kind=real8)                             :: Vr_MAX,VrMMAX     
 
  282       real(kind=real8)                             :: Vr__OK            
 
  283       real(kind=real8)                             :: dtPrec            
 
  284       real(kind=real8)                             :: d_Snow            
 
  285       real(kind=real8)                             :: d_Rain            
 
  287       real(kind=real8)                             :: SatiOK            
 
  288       real(kind=real8)                             :: FlagNu            
 
  290       real(kind=real8)                             :: Qw0_OK            
 
  291       real(kind=real8)                             :: Qi0_OK            
 
  292       real(kind=real8)                             :: Qi0qOK            
 
  293       real(kind=real8)                             :: Ci0_OK            
 
  294       real(kind=real8)                             :: Ci0cOK            
 
  295       real(kind=real8)                             :: Qs0_OK            
 
  296       real(kind=real8)                             :: Qr0_OK            
 
  298       real(kind=real8)                             :: qiBerg            
 
  299       real(kind=real8)                             :: qwBerg            
 
  300       real(kind=real8)                             :: qxBerg            
 
  301       real(kind=real8)                             :: a1Berg,a2Berg     
 
  302       real(kind=real8)                             :: a0Berg,afBerg     
 
  304       real(kind=real8)                             :: WaterB            
 
  306       real(kind=real8)                             :: argEXP            
 
  310       integer                                      :: nItMAX,itFall     
 
  311       integer                                      :: ikl_io,io__Pt     
 
  507             ci0_ok        = max(ci0cok,qi0qok)
 
  508             qi0_ok        =     ci0_ok*
qi__cm(ikl,k)
 
  602      &                    / exp(0.8 *log(
lamdar(ikl,k)))                
 
  627            IF      (graupel_shape)                                  
THEN 
  629      &                     / exp(0.25*log(
lamdas(ikl,k)))               
 
  632            ELSE IF (planes__shape)                                  
THEN 
  634      &                     / exp(0.99*log(
lamdas(ikl,k)))               
 
  638            ELSE IF (aggrega_shape)                                  
THEN 
  640      &                     / exp(0.41*log(
lamdas(ikl,k)))               
 
  644             stop   
'Snow Particles Shape             is not defined' 
  697             qw__ok        = 
qw__cm(ikl,k) *                flag_tqwfrz
 
  716          IF (heter_freezng)                                         
THEN 
  723             bnufwi =     flag_ta_neg*(exp(argexp)        -1.    )      &
 
  725             bnufwi = min(    bnufwi ,     
qw__cm(ikl,k)         )
 
  765          IF   (homog_sublima)                                       
THEN 
  767      &                  /(1.00 +1.733e7*
qsieff(ikl,k)                  &
 
  770                dqvsub =   flag_tqwfrz*max(
zer0,dqvsub)
 
  831                   satiok  =  max(
zer0,sign(
un_1,dqvdum))                
 
  833                   dqvdum  =  max(
zer0,          dqvdum)
 
  835                   nuidok  =  flag_t_nuid      * satiok
 
  837                   ssat_i  =  1.e2*dqvdum      / 
qsieff(ikl,k)           
 
  838                   ssat_i  =          min(ssat_i,
ssimax)                 
 
  843                   dqidum  =  1.e-15*     ccniid/
roa_dy(ikl,k)           
 
  844                   dqidum        =          min(dqidum , dqvdum)
 
  872                   flag___nuic   =   flag_t_nuic  * qw__ok
 
  874                   ccniic =   1.e3 *     flag___nuic                    &
 
  878                   rad_ww =  (1.e3     * 
roa_dy(ikl,k)                  &
 
  883                   ccniic = 603.2e+3  *  ccniic * rad_ww                &
 
  889                   dqidum =   1.e-15  *  ccniic/
roa_dy(ikl,k)
 
  891                   dqidum =         min( 
qw__cm(ikl,k) , dqidum)
 
  923               splinj = 1.358e12 *
qw__cm(ikl,k)                         &
 
  927               splinp = 0.003 * (1. - 0.05 *splinj) * flag_tmaxhm       &
 
  928      &                              * flag_tminhm  * flag_wa__hm        
 
  929               splinp =      max(
zer0,      splinp)
 
  931               dqidum =          1.e-15  *  splinp  / 
roa_dy(ikl,k)      
 
  932               splinp = (min(1.0,
qs__cm(ikl,k)/max(dqidum,
epsn))) *splinp
 
  934               dqidum =      min(
qs__cm(ikl,k),  dqidum)
 
  996              flagnu        =   flag_tqwfrz * flag_ta_neg * satiok
 
 1004              qi_nu1 = flagnu * 1.d-15 * 
fletch(ikl,k) /
roa_dy(ikl,k)
 
 1010      &                 /(1.0d0+1.733d7*
qsieff(ikl,k)                   &
 
 1012              qi_nu2 =    flagnu *  max(
zer0  ,qi_nu2)                   
 
 1014              qi_nuc =              min(qi_nu1,qi_nu2)
 
 1066         IF (.NOT.auto_i_levkxx)                                     
THEN 
 1085               qi0_ok      = flag_ta_neg * qi0_ok
 
 1094               i_berg = min(i_berg,31)
 
 1095               i_berg = max(i_berg, 1)
 
 1096               a1berg = 
aa1(i_berg)
 
 1097               a2berg = 
aa2(i_berg)
 
 1100               afberg =(a1berg *(1.0-a2berg) *  
dt__cm                  &
 
 1101      &                +a0berg**(1.0-a2berg))**(1.0/(1.0-a2berg))        
 
 1104               qxberg =     max(
zer0,qxberg)
 
 1108               qxberg = qi0_ok*min(qwberg,qxberg)
 
 1171             flag_sublim =            qi0_ok                            &
 
 1186             dendi2   = 1.0d0 / (1.875d-2*
roa_dy(ikl,k)*
qsieff(ikl,k))
 
 1190             bdepvi   = max(bdepvi, -
qv__dy(ikl,k))                      
 
 1191             bdepvi   = min(bdepvi,  
qi__cm(ikl,k))                      
 
 1192             bdepvi   = min(bdepvi,  dqsiqv       )                     &
 
 1229           IF (
qi__cm(ikl,k).le.0.e0)                                
THEN 
 1259             flag_qimelt = flag_ta_pos * qi0_ok
 
 1268             qimelt =    min(
qi__cm(ikl,k) ,         qxmelt)*flag_qimelt
 
 1269             cimelt =        
ccnicm(ikl,k) *         qimelt             &
 
 1339             qsat_l = .622d0*es_hpa /(pa_hpa - .378d0*es_hpa)            
 
 1348             ww_tke  = 0.66d+0 * 
tke_at(ikl,k)                           
 
 1350             coefc2 = kdqvqw/(sqrt(ww_tke)*qsat_l)
 
 1354             qt_tke  =         sqrt(rh_tke)*qsat_l                       
 
 1356             argerf = (t_qvqw-qsat_l)/(1.414d+0*qt_tke)
 
 1357             outerf = erf(argerf)
 
 1359             cfracm(ikl,k) = 0.5d+0 * (1.d+0 + outerf)                   
 
 1361             cfrcoe = 1.d+0/(1.d+0+1.349d7*qsat_l/(tliqid*tliqid))       
 
 1363      &                * exp(-min(argerf*argerf,
ea_max))                 
 
 1364             cfr_t2 = 
cfracm(ikl,k)    *(t_qvqw-qsat_l)                  
 
 1370             qwmesh        = cfrcoe * (cfr_t1+cfr_t2) * cfraok           
 
 1371             dwmesh        =    qwmesh   -  
qw__cm(ikl,k)
 
 1382             signdw        =    sign(
un_1,dwmesh)
 
 1383             flag_dqwpos   =     max(
zer0,signdw)
 
 1384             updatw        =    flag_dqwpos *       
qv__dy(ikl,k)       &
 
 1385      &                + (1.d0 -flag_dqwpos)*       
qw__cm(ikl,k)        
 
 1387             dwmesh        =    signdw *min(updatw, signdw*dwmesh)      &
 
 1452      &                / (1.0d0+1.349d7*
qvswcm(ikl,k)                   &
 
 1465              signdw      =    sign(
un_1,dwmesh)
 
 1466              flag_dqwpos =     max(
zer0,signdw)
 
 1467              updatw      =        flag_dqwpos *    
qv__dy(ikl,k)       &
 
 1468      &                   + (1.d0 -flag_dqwpos)*    
qw__cm(ikl,k)
 
 1469              dwmesh      =        signdw *min(updatw,signdw*dwmesh)    &
 
 1527      &                                  +
qs__cm(ikl,k) *  0.33         &
 
 1528      &               * (1.-min(
un_1,exp((
ta__cm(ikl,k) -258.15)*0.1))))&
 
 1529      &               / (0.02       *     
qvswcm(ikl,k)                ) 
 
 1533      &                                  +
qs__cm(ikl,k) -3.e-9         ))
 
 1544               argexp=  (  (
rh_max  -rhumid) * qvs_wi)      **  0.49
 
 1546      &                                       +
qs__cm(ikl,k) *  0.33    &
 
 1547      &                 * (1.-min(1.,exp((
ta__cm(ikl,k) -258.15)*0.1))))&
 
 1548      &                             /max( 
epsn         , argexp       ) &
 
 1551               cfracm(ikl,k) =      (     rhumid       ** 0.25         )&
 
 1552      &                         *   (1.  -   exp(-argexp)              )
 
 1616             qw__ok = qw__ok * cfraok
 
 1626            IF      (auto_w_sundqv)                                  
THEN 
 1630      &                       *(1.-exp(-min(dwmesh*dwmesh,
ea_max)))     &
 
 1636            ELSE IF (auto_w_liouou)                                  
THEN 
 1642             dwturi        = qwcfra        * 
roa_dy(ikl,k)              &
 
 1644             dwtur3        =  exp(
r_1by3*log(dwturi))
 
 1645             dwtur2        =                 dwtur3        *    dwtur3
 
 1647             dwturc        =   exp(dwtur8) * dwtur2        *    dwtur2
 
 1648             rwmean        = 0.5  *sqrt(sqrt(dwturc))
 
 1653      &                            *
ccnwcm(ikl,k) *dwturc*qwcfra
 
 1657            ELSE IF (auto_w_linall)                                  
THEN 
 1659             pr_aut     = dwmesh *  dwmesh       *dwmesh/(
cc1*dwmesh+1000.d0*
cc2/
dd0)
 
 1661             stop   
'AutoConversion of Cloud droplets is not defined' 
 1665             qr_aut     = min(qr_aut,
qw__cm(ikl,k))
 
 1705         IF      (auto_i_levkov)                                     
THEN 
 1712          IF     (auto_i_levkxx)                                     
THEN 
 1728             qi__ok = qi__ok * ccniok   * 
qi__cm(ikl,k)
 
 1743      &              +1.0     /(2.36e-2      *
roa_dy(ikl,k)             &
 
 1748             qs_aut =    
dt__cm *qi__ok*(rh_ice-1.)/dtsaut
 
 1749             qs_aut =   min( 
qi__cm(ikl,k)  , qs_aut)
 
 1750             qs_aut =   max(-
qs__cm(ikl,k)  , qs_aut)
 
 1797             qi__ok      =  qi__ok  * ccniok * 
qi__cm(ikl,k)
 
 1813             c1saut =      max(
epsn,qi__ok)    *
roa_dy(ikl,k) *35.0     &
 
 1816             dtsaut =-6.d0*log(di_pri/
qs__d0)  /c1saut                   
 
 1817             dtsaut =      max(
dt__cm,          dtsaut)                  
 
 1827             qs_aut = 
dt__cm*qi__ok        / dtsaut
 
 1828             qs_aut =   min( 
qi__cm(ikl,k) , qs_aut)
 
 1829             qs_aut =   max(-
qs__cm(ikl,k) , qs_aut)
 
 1873         ELSE IF (auto_i_emdeka)                                     
THEN 
 1883      &                 *exp(0.025d0* 
ta_dgc(ikl,k))
 
 1885             qs_aut   =  max(qs_aut,  
zer0         )
 
 1886             qs_aut   =  min(qs_aut,  
qi__cm(ikl,k))
 
 1887             cnsaut   =      qs_aut*  
ccnicm(ikl,k)                     &
 
 1925         ELSE IF (auto_i_sundqv)                                     
THEN 
 1941      &     *(1.-exp(-dqidum *dqidum))                                  &
 
 1945             qs_aut =    min(
qi__cm(ikl,k) , qs_aut)
 
 1946             qs_aut =    max(
zer0          , qs_aut)
 
 1947             cnsaut =        
ccnicm(ikl,k) * qs_aut                     &
 
 1973             stop   
'AutoConversion of Cloud crystals is not defined' 
 2027             flag_qr_acw = qw__ok * qr0_ok
 
 2037             qr_acw =        pr_acw*
dt__cm *flag_qr_acw
 
 2038             qr_acw =    min(qr_acw,
qw__cm(ikl,k))
 
 2084             flag_qs_acw = qw__ok * qs0_ok
 
 2096            IF      (graupel_shape)                                  then
 
 2101            ELSE IF (planes__shape)                                  then
 
 2105            ELSE IF (aggrega_shape)                                  then
 
 2110             stop   
'Snow Particles Shape             is not defined' 
 2114             qs_acw = min(qs_acw,
qw__cm(ikl,k))
 
 2122             flag_qs_acw   =                (1.d0 - flag_ta_pos) * qs_acw
 
 2219             flag_qs_aci = qi__ok * qs0_ok * flag_ta_neg
 
 2227             effaci = exp(0.025d0*
ta_dgc(ikl,k))                         
 
 2234            IF      (graupel_shape)                                  
THEN 
 2238            ELSE IF (planes__shape)                                  
THEN 
 2242            ELSE IF (aggrega_shape)                                  
THEN 
 2246             stop   
'Snow Particles Shape             is not defined' 
 2249             qs_aci =     ps_aci * 
dt__cm * flag_qs_aci
 
 2250             qs_aci = min(qs_aci,
qi__cm(ikl,k))
 
 2252             cnsaci        = 
ccnicm(ikl,k) * qs_aci                     &
 
 2348             flag_qr_aci = qi__ok * qr0_ok * flag_ta_neg
 
 2362             qr_aci =     pr_aci*
dt__cm   * flag_qr_aci
 
 2363             qr_aci = min(qr_aci,
qi__cm(ikl,k))
 
 2399             qi_acr =        pi_acr*
dt__cm * flag_qr_aci
 
 2400             qi_acr =    min(qi_acr,
qr__cm(ikl,k))
 
 2467             flag_qr_acs = qr0_ok * qs0_ok
 
 2486             qr_acs =            pr_acs       *
dt__cm  * flag_qr_acs
 
 2487             qr_acs =        min(qr_acs,       
qr__cm(ikl,k))
 
 2502             flag_qs_acr      =   max(qr0_ok,qs0_ok)
 
 2512             qs_acr =     
ps_acr(ikl,k)*
dt__cm *flag_qr_acs  *flag_qs_acr
 
 2513             qs_acr = min(qs_acr,
qs__cm(ikl,k))
 
 2526             qr_acs_s      =                 qr_acs *      flag_ta_neg
 
 2527             qs_acr_r      =                 qs_acr *(1.d0-flag_ta_neg)
 
 2693             flag_qr_evp = qr0_ok * flag_dryair
 
 2696      &          + 3940.d0    *           sqrt(
sqrrro(ikl,k))           &
 
 2697      &                       /exp(2.9d0  *log(
lamdar(ikl,k)))           
 
 2701             pr_evp = 2. *
pinmbr*(1.d0 -rh_liq)*
n0___r*lr_num/lr_den
 
 2703             qr_evp = min(qr_evp,       
qr__cm(ikl,k))
 
 2708             qr_evp = max(qr_evp,
zer0)       *         flag_qr_evp
 
 2765      &             + 238.d0  *          sqrt(
sqrrro(ikl,k))            &
 
 2766      &                      /exp(2.625d0*log(
lamdas(ikl,k)))            
 
 2773      &                       /(1.d3*
roa_dy(ikl,k)*ls_den)
 
 2782             qs_sub = max(qs_sub               ,dqsiqv)*    flag_sursat &
 
 2783      &         + min(min(qs_sub,
qs__cm(ikl,k)),dqsiqv)*(1.-flag_sursat) 
 
 2785             qs_sub =     qs_sub * qs0_ok
 
 2843             flag_qsmelt = qs0_ok * flag_ta_pos
 
 2852      &           + 238.   *             sqrt(
sqrrro(ikl,k))            &
 
 2853      &                    / exp(2.625d0 *log(
lamdas(ikl,k)))
 
 2859             acoefm = 0.025d00 *xcoefm                                  &
 
 2862             bcoefm = 62.34d+3 *
roa_dy(ikl,k)                           &
 
 2865             bcoefm = min(-
epsn,bcoefm)
 
 2870             qsmelt = max( qsmelt,0.           ) *flag_qsmelt            
 
 2871             qsmelt = min( qsmelt,
qs__cm(ikl,k))                         
 
 2931             flag_freeze = qr0_ok * flag_ta_neg
 
 2939             ps_frz = 1.974d4 *
n0___r                                   &
 
 2941      &                     *(exp(-0.66d0  *
ta_dgc(ikl,k))-1.d0)
 
 2942             qs_frz =     ps_frz * 
dt__cm  *flag_freeze
 
 2943             qs_frz = min(qs_frz,
qr__cm(ikl,k))
 
 2989  6022          
format(/,
'CMiPhy STATISTICS'                            &
 
 2990      &                /,
'=================')
 
 2992  6026          
format(  
'    T_Air Qv   Qw g/kg  Qi g/kg  CLOUDS % '   &
 
 2993      &                 ,              
' Qs g/kg  Qr g/kg'              &
 
 3012  6023          
format(i3,f6.1,f5.2,2f9.6,f9.1,2f9.3,8f9.6)
 
 3017  6024          
format(  8
x,
'Z [km]'                                    &
 
 3019      &                 ,
' RH.i.[%]'     ,9
x                            &
 
 3037  6025          
format(i3,f11.3,    2f9.1,9
x,  2f9.1,8f9.6)
 
 3094             flag_fall_i = qi__ok  * ccniok
 
 3099             fallvi(ikl,k) =      flag_fall_i * 7.d2*di_pri             &
 
 3148           qirodz          =         
qi__cm(ikl,k) *a_rodz              &
 
 3150           qsrodz          =         
qs__cm(ikl,k) *a_rodz              &
 
 3152           qrrodz          =         
qr__cm(ikl,k) *a_rodz              &
 
 3158      &                       min(2.,qiflux        /a_rodz       )       
 
 3160      &                       min(2.,qsflux        /a_rodz       )       
 
 3162      &                       min(2.,qrflux        /a_rodz       )       
 
 3166           qiloss(k)       =         qirodz        *iratio              &
 
 3168           qsloss(k)       =         qsrodz        *sratio              &
 
 3170           qrloss(k)       =         qrrodz        *rratio              &
 
 3175           qirodz          =         qirodz        -
qiloss(k)           &
 
 3177           qsrodz          =         qsrodz        -
qsloss(k)           &
 
 3179           qrrodz          =         qrrodz        -
qrloss(k)           &
 
 3185      &   (
ta__cm(ikl,k  ) * a_rodz                                     &
 
 3190           qi__cm(ikl,k)   = qirodz                /a_rodz       
 
 3191           qs__cm(ikl,k)   = qsrodz                /a_rodz       
 
 3192           qr__cm(ikl,k)   = qrrodz                /a_rodz       
 
 3221      &                                   +
qs__cm(ikl,k) * 0.33         &
 
 3222      &               * (1.-min(1.,exp((
ta__cm(ikl,k) -258.15)*0.1))))  &
 
 3223      &               / (0.02     *     
qvswcm(ikl,k)                )
 
 3227      &                                   +
qs__cm(ikl,k) -3.e-9       ))
 
 3237             argexp=  ((
rh_max                  -rhumid) * qvs_wi)**0.49
 
 3239      &                                         +
qs__cm(ikl,k) *  0.33  &
 
 3240      &          * (1.-min(1.,exp((
ta__cm(ikl,k)-258.15)*0.1))))        &
 
 3243             cfracm(ikl,k) = ( rhumid ** 0.25 ) * ( 1. - exp(-argexp) )
 
 3325  1030   
format(//,i4,
'UT',i2,
'm',i2,
's (iter.',i6,
')  /  Pt.(',2i4,
')' &
 
 3326      &         ,/,
'  ==========================================')
 
 3332      &     
'            |  Water Vapor |  Cloud Ice, Time n & n+1',    &
 
 3333      &     
'   Cloud Ice Nucleation Processes    |',                   &
 
 3334      &     
'   Bergeron   Sublimation   Melting  ',                    &
 
 3335      &   /,
'  k    z[m] |  qv   [g/kg] |  qi_n [g/kg] qi_n+[g/kg]',    &
 
 3336      &     
' QiHm1[g/kg] QiHm2[g/kg] QiCnd[g/kg] |',                   &
 
 3337      &     
'  QiDep[g/kg] QiSub[g/kg] QiMlt[q/kg]',                    &
 
 3338      &   /,
'------------+--------------+-------------------------',    &
 
 3339      &     
'-------------------------------------+',                   &
 
 3340      &     
'-------------------------------------',                    &
 
 3341      &   /,(i3,f8.1,
' | ',f12.6,
' | ',2f12.6,3d12.4,
' | ',3d12.4))
 
 3350      &     
'            |  Snow Flakes, Time n&n+1 Autoconver. |',     &
 
 3351      &     
'  Accretion Processes ===> Snow Flakes            |',      &
 
 3352      &     
'  Sublimation | Term.F.Vel',                               &
 
 3353      &   /,
'  k    z[m] |  qs_n [g/kg] qs_n+[g/kg] QsAUT[g/kg] |',     &
 
 3354      &     
'  Qsaci[g/kg] Qsacw[g/kg] Qiacr[g/kg] Qsacr[g/kg] |',      &
 
 3355      &     
'  QsSub[g/kg] | vs   [m/s]',                               &
 
 3356      &   /,
'------------+--------------------------------------+',     &
 
 3357      &     
'--------------------------------------------------+',      &
 
 3358      &     
'--------------+-----------',                               &
 
 3359      &   /,(i3,f8.1,
' | ',2f12.6,e12.4,
' | ',4d12.4,
' | ',e12.4,       &
 
 3366      &   /,
'            | Temperat.|  Cloud Water, Time n&n+1',        &
 
 3367      &     
' Condens/Evp | Cloud ',                                    &
 
 3368      &   /,
'  k    z[m] | T    [K] |  qw_n [g/kg] qw_n+[g/kg]',        &
 
 3369      &     
' QwEvp[g/kg] | Fract.',                                    &
 
 3370      &   /,
'------------+----------+-------------------------',        &
 
 3371      &     
'-------------+-------',                                    &
 
 3372      &   /,(i3,f8.1,
' | ',f8.3,
' | ',2f12.6,e12.4,
' | ',f5.1))
 
 3381      &  /,
'            | Rain Drops, Time n&n+1   Autoconver. |',      &
 
 3382      &    
'  Accretion Processes ===> Rain Drops |',                   &
 
 3383      &    
'  Evaporation  Freezing   | Term.F.Vel',                    &
 
 3384      &  /,
'  k    z[m] |  qr_n [g/kg] qr_n+[g/kg] Qraut[g/kg] |',      &
 
 3385      &    
'  Qracw[g/kg] Qraci[g/kg] Qracs[g/kg] |',                   &
 
 3386      &    
'  QrEvp[g/kg] QsFre[g/kg] | vr   [m/s]',                    &
 
 3387      &  /,
'------------+--------------------------------------+',      &
 
 3388      &    
'--------------------------------------+',                   &
 
 3389      &    
'--------------------------+-----------',                    &
 
 3390      &  /,(i3,f8.1,
' | ',2f12.6,e12.4,
' | ',3d12.4,
' | ',2d12.4,       &
 
 3430  606    
format(i9,
'  Before mPhy:  E0 =',f12.6,
'  W0 = ',f9.6,3
x,a20   &
 
 3431      &   ,3
x,/,9
x,
'  Before Prec:  E1 =',f12.6,
'  W1 = ',f9.6          &
 
 3432      &   ,   /,9
x,
'  After  Prec:  E2 =',f12.6,
'  W2 = ',f9.6          &
 
 3433      &   ,                                     
'  W Flux =',f9.6       &
 
 3434      &   ,                                     
'  Div(W) =',e9.3)
 
 3443  1037         
format(/,
' Ice-Crystal mPhy ',                           &
 
 3444      &                   2
x,
' ',2
x,1
x,i2,
'h',i2,
'UT',                  &
 
 3445      &                 
' -- Grid Point (',i5,
',',i5,
')',               &
 
 3446      &  /,
' =========================================================='&
 
 3447      &   ,     /,
'     |  z  [m] | T  [K] | qi[g/kg] |'                &
 
 3448      &   ,            
' Ni [m-3] | Ni0[m-3] | vi [m/s] | qs[g/kg] |'   &
 
 3449      &   ,     /,
'-----+---------+--------+----------+'                &
 
 3450      &   ,            
'----------+----------+----------+----------+')
 
 3456  1038         
format((i4,
' |' ,  f8.1,
' |',f7.2,
' |',f9.6,
' |',        &
 
 3457      &            2(d9.3,
' |'),2(f9.6,
' |')))
 
real(kind=real8), save r_1by3
 
real(kind=real8), save ea_min
 
real(kind=real8), save c_sund
 
real(kind=real8), dimension(31), save aa1
 
real(kind=real8), save rhcrit
 
real(kind=real8), dimension(:,:), allocatable, save qvswcm
 
real(kind=real8), save wa__hm
 
real(kind=real8), dimension(:,:), allocatable, save fallvr
 
real(kind=real8), save c2_ekm
 
real(kind=real8), dimension(:,:), allocatable, save fallvi
 
real(kind=real8), dimension(:,:), allocatable, save lamdas
 
real(kind=real8), save cc2
 
real(kind=real8), save un_1
 
real(kind=real8), dimension(:), allocatable, save qi_io0
 
real(kind=real8), dimension(:,:), allocatable, save qid_cm
 
real(kind=real8), dimension(:,:), allocatable, save kzh_at
 
real(kind=real8), dimension(:,:), allocatable, save qv__dy
 
real(kind=real8), dimension(:,:), allocatable, save qwd_cm
 
integer, dimension(npt_cm), save j0__cm
 
real(kind=real8), save qi0_dc
 
real(kind=real8), dimension(:,:), allocatable, save ta_dgc
 
real(kind=real8), dimension(:,:), allocatable, save qw__cm
 
real(kind=real8), dimension(:,:), allocatable, save ccnwcm
 
real(kind=real8), save tmaxhm
 
integer, parameter mz1_cm
 
real(kind=real8), save t_nuic
 
real(kind=real8), save c1_ekm
 
real(kind=real8), dimension(:,:), allocatable, save qr__cm
 
real(kind=real8), dimension(:), allocatable, save raincm
 
real(kind=real8), save qw_vol
 
real(kind=real8), save cfrmin
 
real(kind=real8), save pinmbr
 
real(kind=real8), dimension(:,:), allocatable, save ps_acr
 
real(kind=real8), dimension(:,:), allocatable, save cfracm
 
real(kind=real8), save b_nuic
 
real(kind=real8), save lc_cpd
 
real(kind=real8), save a_nuic
 
real(kind=real8), dimension(:), allocatable, save dsigmi
 
real(kind=real8), save a_nuid
 
real(kind=real8), save grav_i
 
real(kind=real8), dimension(:,:), allocatable, save ps_acw
 
real(kind=real8), save expwat
 
real(kind=real8), dimension(:,:), allocatable, save fletch
 
real(kind=real8), dimension(:), allocatable, save qrloss
 
real(kind=real8), dimension(:,:), allocatable, save qsieff
 
real(kind=real8), save t_nuid
 
integer, dimension(npt_cm), save i0__cm
 
real(kind=real8), save qs__d0
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL false
 
real(kind=real8), save rh_max
 
real(kind=real8), dimension(:,:), allocatable, save wa__dy
 
real(kind=real8), save qwturb
 
real(kind=real8), dimension(:,:), allocatable, save qvsicm
 
real(kind=real8), save r_dair
 
real(kind=real8), dimension(:,:), allocatable, save ccnicm
 
real(kind=real8), save n0___r
 
real(kind=real8), dimension(:), allocatable, save ice_cm
 
real(kind=real8), save tminhm
 
real(kind=real8), save rwcrit
 
real(kind=real8), dimension(:), allocatable, save qsloss
 
real(kind=real8), save watice
 
real(kind=real8), save di_hex
 
real(kind=real8), dimension(:,:), allocatable, save z___dy
 
real(kind=real8), save cc1
 
integer, parameter npt_cm
 
real(kind=real8), dimension(:,:), allocatable, save fallvs
 
!$Header!c c INCLUDE fxyprim h c c c Fonctions in line c c REAL fyprim REAL rj c c il faut la calculer avant d appeler ces fonctions c c c Fonctions a changer selon x(x) et y(y) choisis.c-----------------------------------------------------------------c c.....ici
 
real(kind=real8), save tqwfrz
 
real(kind=real8), dimension(:), allocatable, save qw_io0
 
real(kind=real8), save qv_min
 
real(kind=real8), dimension(:,:), allocatable, save roa_dy
 
!$Id itapm1 ENDIF!IM on interpole les champs sur les niveaux STD de pression!IM a chaque pas de temps de la physique c!positionnement de l argument logique a false c!pour ne pas recalculer deux fois la meme chose!c!a cet effet un appel a plevel_new a ete deplace c!a la fin de la serie d appels c!la boucle DO nlevSTD a ete internalisee c!dans d ou la creation de cette routine c c!CALL ulevSTD CALL &zphi philevSTD CALL &zx_rh rhlevSTD!DO klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon klev DO klon du jour ou toutes les read_climoz CALL true
 
real(kind=real8), dimension(:), allocatable, save snowcm
 
real(kind=real8), save r_1000
 
real(kind=real8), dimension(:), allocatable, save psa_dy
 
real(kind=real8), dimension(:,:), allocatable, save tke_at
 
real(kind=real8), save qismax
 
real(kind=real8), save epsq
 
real(kind=real8), save pt__dy
 
real(kind=real8), dimension(:), allocatable, save sigma
 
real(kind=real8), dimension(:,:), allocatable, save qi__cm
 
real(kind=real8), dimension(:), allocatable, save qiloss
 
integer, dimension(npt_cm), save ikl0cm
 
real(kind=real8), dimension(:,:), allocatable, save lamdar
 
real(kind=real8), dimension(:), allocatable, save qwloss
 
real(kind=real8), save tf_sno
 
real(kind=real8), save zer0
 
real(kind=real8), dimension(:,:), allocatable, save qs__cm
 
real(kind=real8), save b_nuid
 
real(kind=real8), dimension(:,:), allocatable, save ta__cm
 
real(kind=real8), save n0___s
 
real(kind=real8), save dd0
 
real(kind=real8), dimension(:,:), allocatable, save qr___0
 
real(kind=real8), dimension(:,:), allocatable, save qs___0
 
real(kind=real8), dimension(31), save aa2
 
real(kind=real8), save qw_max
 
real(kind=real8), dimension(:,:), allocatable, save fallvw
 
real(kind=real8), save ssimax
 
real(kind=real8), save epsn
 
real(kind=real8), save ls_cpd
 
real(kind=real8), dimension(:,:), allocatable, save sqrrro
 
real(kind=real8), save dt__cm
 
real(kind=real8), save ea_max
 
real(kind=real8), save lv_cpd
 
real(kind=real8), save expwa2