Ignore:
Timestamp:
Dec 15, 2003, 6:50:41 PM (20 years ago)
Author:
lmdzadmin
Message:

Phasage avec la version de Ionela
IM/LF

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ.3.3/branches/rel-LF/libf/phylmd/newmicro.F

    r418 r486  
    11      SUBROUTINE newmicro (paprs, pplay,ok_newmicro,
    22     .                  t, pqlwp, pclc, pcltau, pclemi,
    3      .                  pch, pcl, pcm, pct, pctlwp)
     3cIM    .                  pch, pcl, pcm, pct, pctlwp)
     4     .                  pch, pcl, pcm, pct, pctlwp,
     5     .                  xflwp, xfiwp, xflwc, xfiwc)
     6
    47      IMPLICIT none
    58c======================================================================
     
    3639C
    3740      INTEGER i, k
    38       REAL zflwp, zradef, zfice, zmsac
     41cIM: 091003   REAL zflwp, zradef, zfice, zmsac
     42      REAL zflwp(klon), zradef, zfice, zmsac
     43cIM: 091003 rajout
     44      REAL xflwp(klon), xfiwp(klon)
     45      REAL xflwc(klon,klev), xfiwc(klon,klev)
    3946c
    4047      REAL radius, rad_chaud
     
    5360      logical ok_newmicro
    5461c     parameter (ok_newmicro=.FALSE.)
    55       real rel, tc, rei, zfiwp
     62cIM: 091003   real rel, tc, rei, zfiwp
     63      real rel, tc, rei, zfiwp(klon)
    5664      real k_liq, k_ice0, k_ice, DF
    5765      parameter (k_liq=0.0903, k_ice0=0.005) ! units=m2/g
     
    6270c Calculer l'epaisseur optique et l'emmissivite des nuages
    6371c
     72cIM inversion des DO
     73      DO i = 1, klon
     74       xflwp(i)=0.
     75       xfiwp(i)=0.
    6476      DO k = 1, klev
    65       DO i = 1, klon
     77c
     78       xflwc(i,k)=0.
     79       xfiwc(i,k)=0.
     80c
    6681         rad_chaud = rad_chau1
    6782         IF (k.LE.3) rad_chaud = rad_chau2
    6883         pclc(i,k) = MAX(pclc(i,k), seuil_neb)
    69          zflwp = 1000.*pqlwp(i,k)/RG/pclc(i,k)
     84         zflwp(i) = 1000.*pqlwp(i,k)/RG/pclc(i,k)
    7085     .          *(paprs(i,k)-paprs(i,k+1))
    7186         zfice = 1.0 - (t(i,k)-t_glace) / (273.13-t_glace)
     
    7489         radius = rad_chaud * (1.-zfice) + rad_froid * zfice
    7590         coef = coef_chau * (1.-zfice) + coef_froi * zfice
    76          pcltau(i,k) = 3.0/2.0 * zflwp / radius
    77          pclemi(i,k) = 1.0 - EXP( - coef * zflwp)
     91         pcltau(i,k) = 3.0/2.0 * zflwp(i) / radius
     92         pclemi(i,k) = 1.0 - EXP( - coef * zflwp(i))
    7893
    7994         if (ok_newmicro) then
     
    8499         zfice = MIN(MAX(zfice,0.0),1.0)
    85100
    86          zflwp = 1000.*(1.-zfice)*pqlwp(i,k)/pclc(i,k)
    87      :          *(paprs(i,k)-paprs(i,k+1))/RG
    88          zfiwp = 1000.*zfice*pqlwp(i,k)/pclc(i,k)
    89      :          *(paprs(i,k)-paprs(i,k+1))/RG
     101         zflwp(i) = 1000.*(1.-zfice)*pqlwp(i,k)/pclc(i,k)
     102     :          *(paprs(i,k)-paprs(i,k+1))/RG
     103         zfiwp(i) = 1000.*zfice*pqlwp(i,k)/pclc(i,k)
     104     :          *(paprs(i,k)-paprs(i,k+1))/RG
     105
     106         xflwp(i) = xflwp(i)+ (1.-zfice)*pqlwp(i,k)
     107     :          *(paprs(i,k)-paprs(i,k+1))/RG
     108         xfiwp(i) = xfiwp(i)+ zfice*pqlwp(i,k)
     109     :          *(paprs(i,k)-paprs(i,k+1))/RG
     110
     111cIM Total Liquid/Ice water content
     112         xflwc(i,k) = xflwc(i,k)+(1.-zfice)*pqlwp(i,k)
     113         xfiwc(i,k) = xfiwc(i,k)+zfice*pqlwp(i,k)
     114cIM In-Cloud Liquid/Ice water content
     115c        xflwc(i,k) = xflwc(i,k)+(1.-zfice)*pqlwp(i,k)/pclc(i,k)
     116c        xfiwc(i,k) = xfiwc(i,k)+zfice*pqlwp(i,k)/pclc(i,k)
    90117
    91118c -- effective cloud droplet radius (microns):
     
    107134c  for ice clouds, Ebert & Curry (1992)]
    108135
    109          if (zflwp.eq.0.) rel = 1.
    110          if (zfiwp.eq.0. .or. rei.le.0.) rei = 1.
    111          pcltau(i,k) = 3.0/2.0 * ( zflwp/rel )
    112      .             + zfiwp * (3.448e-03  + 2.431/rei)
     136         if (zflwp(i).eq.0.) rel = 1.
     137         if (zfiwp(i).eq.0. .or. rei.le.0.) rei = 1.
     138         pcltau(i,k) = 3.0/2.0 * ( zflwp(i)/rel )
     139     .             + zfiwp(i) * (3.448e-03  + 2.431/rei)
    113140
    114141c -- cloud infrared emissivity:
     
    121148
    122149         pclemi(i,k) = 1.0
    123      .      - EXP( - coef_chau*zflwp - DF*k_ice*zfiwp )
     150     .      - EXP( - coef_chau*zflwp(i) - DF*k_ice*zfiwp(i) )
    124151
    125152         endif ! ok_newmicro
Note: See TracChangeset for help on using the changeset viewer.