Ignore:
Timestamp:
Jul 22, 2024, 9:29:09 PM (2 months ago)
Author:
abarral
Message:

Replace most uses of CPP_DUST by the corresponding logical defined in lmdz_cppkeys_wrapper.F90
Convert several files from .F to .f90 to allow Dust to compile w/o rrtm/ecrad
Create lmdz_yoerad.f90
(lint) Remove "!" on otherwise empty line

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/coagulate.F90

    r5098 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE COAGULATE(pdtcoag,mdw,tr_seri,t_seri,pplay,dens_aer,is_strato)
    55  !     -----------------------------------------------------------------------
    6   !
     6
    77  !     Author : Christoph Kleinschmitt (with Olivier Boucher)
    88  !     ------
    9   !
     9
    1010  !     purpose
    1111  !     -------
    12   !
     12
    1313  !     interface
    1414  !     ---------
     
    1717  !       tr_seri        tracer mixing ratios               [kg/kg]
    1818  !       mdw             # or mass median diameter          [m]
    19   !
     19
    2020  !     method
    2121  !     ------
    22   !
     22
    2323  !     -----------------------------------------------------------------------
    2424
     
    204204  DO j=1, nbtr_bin
    205205  DO i=1, nbtr_bin
    206 !
     206
    207207     num=4.*RPI*(radiuswet(i)+radiuswet(j))*(Di(i)+Di(j))
    208208     denom=(radiuswet(i)+radiuswet(j))/(radiuswet(i)+radiuswet(j)+sqrt(delta(i)**2.+delta(j)**2.))+ &
    209209   4.*(Di(i)+Di(j))/(sqrt(thvelpar(i)**2.+thvelpar(j)**2.)*(radiuswet(i)+radiuswet(j)))
    210210     beta(i,j)=num/denom
    211 !
     211
    212212!--compute enhancement factor due to van der Waals forces
    213213   IF (ok_vdw == 0) THEN      !--no enhancement factor
     
    222222      EvdW = 1. + SQRT(AvdWi/3.)/(1.+bvdW0*SQRT(AvdWi)) + bvdW1*xvdW + bvdW3*xvdW**3.
    223223   ENDIF
    224 !
     224
    225225   beta(i,j)=beta(i,j)*EvdW
    226226
     
    247247       numi=0.0
    248248       DO i=1, k-1
    249 !           
     249
    250250!           see Jacobson: " In order to conserve volume and volume concentration (which
    251251!           coagulation physically does) while giving up some accuracy in number concentration"
    252 !
     252
    253253!           Coagulation of i and j giving k
    254254!           with V(i) and then V(j) because it considers i,j and j,i with the double loop
    255 !
     255
    256256!           BUT WHY WET VOLUME V(i) in old STRATAER? tracers are already dry aerosols and coagulation
    257257!           kernel beta(i,j) accounts for wet aerosols -> reply below
    258 !
     258
    259259!             numi=numi+ff(i,j,k)*beta(i,j)*V(i)*tr_tp1(ilon,ilev,i)*tr_t(ilon,ilev,j)
    260260            numi=numi+ff(i,j,k)*beta(i,j)*Vdry(i)*tr_tp1(ilon,ilev,i)*tr_t(ilon,ilev,j)
     
    266266!      tr_tp1(ilon,ilev,k)=(V(k)*tr_t(ilon,ilev,k)+pdtcoag*num)/( (1.+pdtcoag*denom)*V(k) )
    267267    tr_tp1(ilon,ilev,k)=(Vdry(k)*tr_t(ilon,ilev,k)+pdtcoag*num)/( (1.+pdtcoag*denom)*Vdry(k) )
    268 !
     268
    269269!       In constant composition (no dependency on aerosol size because no kelvin effect)
    270270!       V(l)= (f_r_wet(ilon,ilev)**3)*((mdw(l)/2.)**3) = (f_r_wet(ilon,ilev)**3)*Vdry(i)
Note: See TracChangeset for help on using the changeset viewer.