Changeset 744 for trunk/LMDZ.MARS/libf


Ignore:
Timestamp:
Jul 26, 2012, 10:27:29 AM (12 years ago)
Author:
tnavarro
Message:

forgot updatereffrad in commit 740

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/LMDZ.MARS/libf/phymars/updatereffrad.F

    r633 r744  
    22     &                rdust,rice,nuice,
    33     &                reffrad,nueffrad,
    4      &                pq,tauscaling)
    5 
     4     &                pq,tauscaling,tau,pplay)
     5       USE updaterad
    66       IMPLICIT NONE
    77c=======================================================================
     
    4646c     Tracer mass mixing ratio (kg/kg)
    4747      REAL pq(ngrid,nlayer,nqmx)
    48       real rdust(ngridmx,nlayermx) ! Dust geometric mean radius (m)
     48      REAL rdust(ngridmx,nlayermx) ! Dust geometric mean radius (m)
     49     
     50      REAL pplay(ngrid,nlayer) ! altitude at the middle of the layers
     51      REAL tau(ngrid,naerkind)
     52
    4953
    5054c     Outputs:
     
    96100          DO l=1,nlayer
    97101            DO ig=1, ngrid
    98               rdust(ig,l) =
    99      &          CBRT(r3n_q*pq(ig,l,igcm_dust_mass)/
    100      &          max(pq(ig,l,igcm_dust_number),0.01))
    101               rdust(ig,l)=min(max(rdust(ig,l),1.e-10),500.e-6)
     102              call updaterdust(pq(ig,l,igcm_dust_mass),
     103     &                         pq(ig,l,igcm_dust_number),rdust(ig,l))
    102104              nueffdust(ig,l) = exp(varian**2.)-1.
    103105             ENDDO
     
    114116c       1.2 Water-ice particles
    115117c       -----------------------
    116         IF (water.AND.activice) THEN         
    117           IF ((firstcall).or.(microphys.eqv..false.)) THEN
     118
     119        IF (water.AND.activice) THEN
     120         IF (microphys) THEN
     121         
     122          IF (firstcall) THEN
    118123            DO l=1,nlayer
    119124              DO ig=1,ngrid
    120                 rice(ig,l) = max(CBRT(
    121      &            (pq(ig,l,igcm_h2o_ice)/rho_ice +
    122      &            ccn0*(4./3.)*pi*rdust(ig,l)**3.) /
    123      &            (ccn0*4./3.*pi)),rdust(ig,l) )
    124                 rice(ig,l)=min(max(rice(ig,l),1.e-10),500.e-6)
     125                call updaterice_micro(pq(ig,l,igcm_h2o_ice),
     126     &                                pq(ig,l,igcm_ccn_mass),
     127     &                                pq(ig,l,igcm_ccn_number),
     128     &                                1.e-3,rice(ig,l),
     129     &                                rhocloud(ig,l))
    125130                nuice(ig,l) = nuice_ref
    126131              ENDDO
     
    130135c    Indeed it is scaled on the prescribed dust opacity via a 'tauscaling' coefficient
    131136c    computed after radiative transfer.
    132 c    Therefore, we use a typical value ccn0 at firstcall, like it is done without microphysics.
    133137          ELSE
    134138            DO l=1,nlayer
    135139              DO ig=1,ngrid
    136                 Mo = pq(ig,l,igcm_h2o_ice) +
    137      &              pq(ig,l,igcm_ccn_mass)* tauscaling(ig) + 1.e-30
    138                 No = pq(ig,l,igcm_ccn_number)* tauscaling(ig)+ 1e-30
    139                 rhocloud(ig,l) =  pq(ig,l,igcm_h2o_ice)*rho_ice / Mo
    140      &           + pq(ig,l,igcm_ccn_mass)*tauscaling(ig)*rho_dust/Mo
    141                 rhocloud(ig,l) =
    142      &            min(max(rhocloud(ig,l),rho_ice),rho_dust)
    143                 rice(ig,l) =
    144      &           CBRT( Mo/No * 0.75 / pi / rhocloud(ig,l))
    145                 rice(ig,l)=min(max(rice(ig,l),1.e-10),500.e-6)
     140                call updaterice_micro(pq(ig,l,igcm_h2o_ice),
     141     &                                pq(ig,l,igcm_ccn_mass),
     142     &                                pq(ig,l,igcm_ccn_number),
     143     &                                tauscaling(ig),rice(ig,l),
     144     &                                rhocloud(ig,l))
    146145                nuice(ig,l) = nuice_ref
    147               ENDDO
    148             ENDDO
    149           ENDIF ! of if ((firstcall).or.(microphys.eq.false))
    150         ENDIF ! of if (water.AND.activice)
    151        
     146               ENDDO
     147             ENDDO
     148          ENDIF ! of if firstcall
     149         
     150        ELSE ! if not microphys
     151         
     152          DO l=1,nlayer
     153            DO ig=1,ngrid   
     154              call updaterice_typ(pq(ig,l,igcm_h2o_ice),
     155     &                          tau(ig,1),pplay(ig,l),rice(ig,l))
     156              nuice(ig,l) = nuice_ref
     157            ENDDO
     158          ENDDO
     159 
     160        ENDIF ! of if microphys
     161       ENDIF ! of if (water.AND.activice)
    152162
    153163c==================================================================
Note: See TracChangeset for help on using the changeset viewer.