Ignore:
Timestamp:
Dec 10, 2009, 10:02:56 AM (15 years ago)
Author:
Laurent Fairhead
Message:

Merged LMDZ4-dev branch changes r1241:1278 into the trunk
Running trunk and LMDZ4-dev in LMDZOR configuration on local
machine (sequential) and SX8 (4-proc) yields identical results
(restart and restartphy are identical binarily)
Log history from r1241 to r1278 is available by switching to
source:LMDZ4/branches/LMDZ4-dev-20091210

Location:
LMDZ4/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • LMDZ4/trunk

  • LMDZ4/trunk/libf/phylmd/newmicro.F

    r1146 r1279  
    1 !
    2 ! $Header$
    3 !
     1! $Id$
     2!     
    43      SUBROUTINE newmicro (paprs, pplay,ok_newmicro,
    54     .                  t, pqlwp, pclc, pcltau, pclemi,
     
    76     s                  xflwp, xfiwp, xflwc, xfiwc,
    87     e                  ok_aie,
    9      e                  sulfate, sulfate_pi,
     8     e                  mass_solu_aero, mass_solu_aero_pi,
    109     e                  bl95_b0, bl95_b1,
    11      s                  cldtaupi, re, fl)
     10     s                  cldtaupi, re, fl, reliq, reice)
     11
    1212      USE dimphy
    1313      IMPLICIT none
     
    2222c
    2323c ok_aie--input-L-apply aerosol indirect effect or not
    24 c sulfate-input-R-sulfate aerosol mass concentration [um/m^3]
    25 c sulfate_pi-input-R-dito, pre-industrial value
     24c mass_solu_aero-----input-R-total mass concentration for all soluble aerosols[ug/m^3]
     25c mass_solu_aero_pi--input-R-dito, pre-industrial value
    2626c bl95_b0-input-R-a parameter, may be varied for tests (s-sea, l-land)
    2727c bl95_b1-input-R-a parameter, may be varied for tests (    -"-      )
     
    9494      LOGICAL ok_a1lwpdep       ! a1 LWP dependent?
    9595     
    96       REAL sulfate(klon, klev)  ! sulfate aerosol mass concentration [ug m-3]
     96      REAL mass_solu_aero(klon, klev)    ! total mass concentration for all soluble aerosols [ug m-3]
     97      REAL mass_solu_aero_pi(klon, klev) ! - " - (pre-industrial value)
    9798      REAL cdnc(klon, klev)     ! cloud droplet number concentration [m-3]
    9899      REAL re(klon, klev)       ! cloud droplet effective radius [um]
    99       REAL sulfate_pi(klon, klev)  ! sulfate aerosol mass concentration [ug m-3] (pre-industrial value)
    100100      REAL cdnc_pi(klon, klev)     ! cloud droplet number concentration [m-3] (pi value)
    101101      REAL re_pi(klon, klev)       ! cloud droplet effective radius [um] (pi value)
     
    119119      REAL diff_paprs(klon, klev), zfice1, zfice2(klon, klev)
    120120      REAL rad_chaud_tab(klon, klev), zflwp_var, zfiwp_var
     121
     122! Abderrahmane oct 2009
     123      Real reliq(klon, klev), reice(klon, klev)
    121124
    122125c
     
    157160                                !             
    158161                  cdnc(i,k) = 10.**(bl95_b0+bl95_b1*
    159      &                 log(MAX(sulfate(i,k),1.e-4))/log(10.))*1.e6 !-m-3
     162     &               log(MAX(mass_solu_aero(i,k),1.e-4))/log(10.))*1.e6 !-m-3
    160163                                ! Cloud droplet number concentration (CDNC) is restricted
    161164                                ! to be within [20, 1000 cm^3]
     
    165168                                !
    166169                  cdnc_pi(i,k) = 10.**(bl95_b0+bl95_b1*
    167      &                 log(MAX(sulfate_pi(i,k),1.e-4))/log(10.))*1.e6 !-m-3
     170     &               log(MAX(mass_solu_aero_pi(i,k),1.e-4))/log(10.))*1.e6 !-m-3
    168171                  cdnc_pi(i,k)=MIN(1000.e6,MAX(20.e6,cdnc_pi(i,k)))
    169172               ENDDO
     
    221224                  re(i,k) = rad_chaud_tab(i,k)*fl(i,k)
    222225                 
     226                  rel = 0.
     227                  rei = 0.
    223228                  pclc(i,k) = 0.0
    224229                  pcltau(i,k) = 0.0
     
    252257                     cldtaupi(i,k) = 3.0/2.0 * zflwp_var / radius
    253258     &                    + zfiwp_var * (3.448e-03  + 2.431/rei)
     259
    254260                  ENDIF         ! ok_aie
    255261                                ! For output diagnostics
     
    280286c     for ice clouds, Ebert & Curry (1992)]
    281287                 
    282                   if (zflwp_var.eq.0.) rel = 1.
    283                   if (zfiwp_var.eq.0. .or. rei.le.0.) rei = 1.
    284                   pcltau(i,k) = 3.0/2.0 * ( zflwp_var/rel )
     288                 if (zflwp_var.eq.0.) rel = 1.
     289                 if (zfiwp_var.eq.0. .or. rei.le.0.) rei = 1.
     290                 pcltau(i,k) = 3.0/2.0 * ( zflwp_var/rel )
    285291     &                 + zfiwp_var * (3.448e-03  + 2.431/rei)
    286292c     -- cloud infrared emissivity:
     
    296302
    297303               ENDIF
    298                
     304              reliq(i,k)=rel
     305              reice(i,k)=rei
     306!              if (i.eq.1) then
     307!              print*,'Dans newmicro rel, rei :',rel, rei
     308!              print*,'Dans newmicro reliq, reice :',
     309!     $             reliq(i,k),reice(i,k)
     310!              endif
     311
    299312            ENDDO
    300313         ENDDO
     
    400413            DO i = 1, klon
    401414               zclear(i)=zclear(i)*(1.-MAX(pclc(i,k),zcloud(i)))
    402      &              /(1.-MIN(zcloud(i),1.-ZEPSEC))
     415     &              /(1.-MIN(real(zcloud(i), kind=8),1.-ZEPSEC))
    403416               pct(i)=1.-zclear(i)
    404417               IF (pplay(i,k).LE.cetahb*paprs(i,1)) THEN
    405418                  pch(i) = pch(i)*(1.-MAX(pclc(i,k),zcloud(i)))
    406      &                 /(1.-MIN(zcloud(i),1.-ZEPSEC))
     419     &                 /(1.-MIN(real(zcloud(i), kind=8),1.-ZEPSEC))
    407420               ELSE IF (pplay(i,k).GT.cetahb*paprs(i,1) .AND.
    408421     &                 pplay(i,k).LE.cetamb*paprs(i,1)) THEN
    409422                  pcm(i) = pcm(i)*(1.-MAX(pclc(i,k),zcloud(i)))
    410      &                 /(1.-MIN(zcloud(i),1.-ZEPSEC))
     423     &                 /(1.-MIN(real(zcloud(i), kind=8),1.-ZEPSEC))
    411424               ELSE IF (pplay(i,k).GT.cetamb*paprs(i,1)) THEN
    412425                  pcl(i) = pcl(i)*(1.-MAX(pclc(i,k),zcloud(i)))
    413      &                 /(1.-MIN(zcloud(i),1.-ZEPSEC))
     426     &                 /(1.-MIN(real(zcloud(i), kind=8),1.-ZEPSEC))
    414427               endif
    415428               zcloud(i)=pclc(i,k)
Note: See TracChangeset for help on using the changeset viewer.