Ignore:
Timestamp:
Jul 22, 2024, 9:29:09 PM (6 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

Location:
LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer
Files:
18 edited

Legend:

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

    r5098 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE AER_SEDIMNT(pdtphys, t_seri, pplay, paprs, tr_seri, dens_aer)
    55
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/aerophys.F90

    r4950 r5099  
    11! $Id$
    2 !
     2
    33MODULE aerophys
    4 !
     4
    55  IMPLICIT NONE
    6 !
     6
    77  REAL,PARAMETER    :: ropx=1500.0              ! default aerosol particle mass density [kg/m3]
    88  REAL,PARAMETER    :: dens_aer_dry=1848.682308 ! dry aerosol particle mass density at T_0=293K[kg/m3]
     
    2525  REAL, PARAMETER   :: mNatome=14.0067*1.66E-27 ! Mass of an N atome [kg]
    2626  REAL, PARAMETER   :: rgas=8.3145 ! molar gas cste (J⋅K−1⋅mol−1=m3⋅Pa⋅K−1⋅mol−1=kg⋅m2⋅s−2⋅K−1⋅mol−1)
    27   !
     27
    2828  REAL, PARAMETER   :: MH2O  =1000.*mH2Omol     ! Mass of 1 molec [g] (18.016*1.66E-24)
    2929  REAL, PARAMETER   :: MH2SO4=1000.*mH2SO4mol   ! Mass of 1 molec [g] (98.082*1.66E-24)
    3030  REAL, PARAMETER   :: BOLZ  =1.381E-16         ! Boltzmann constant [dyn.cm/K]
    31 !
     31
    3232END MODULE aerophys
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/calcaerosolstrato_rrtm.F90

    r5098 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE calcaerosolstrato_rrtm(pplay,t_seri,paprs,debut)
    55
  • 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)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/cond_evap_tstep_mod.F90

    r5098 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44MODULE cond_evap_tstep_mod
    55
     
    1111      SUBROUTINE condens_evapor_rate_kelvin(R2SO4G,t_seri,pplay,R2SO4, &
    1212   DENSO4,f_r_wet,R2SO4ik,DENSO4ik,f_r_wetik,FL,ASO4,DNDR)
    13 !
     13
    1414!     INPUT:
    1515!     R2SO4G: number density of gaseous H2SO4 [molecules/cm3]
     
    127127!       Kelvin factor (MKS)
    128128        fkelvin=exp( 2.*1.e-3*surtens*1.e-6*mvh2so4/ (1.e-2*RRSI_wet(IK)*rgas*temp) )
    129 !                             
     129
    130130        DNDR(IK) =DND*fkelvin
    131131
     
    167167      SUBROUTINE condens_evapor_rate(R2SO4G,t_seri,pplay,ACTSO4,R2SO4, &
    168168   DENSO4,f_r_wet,FL,ASO4,DNDR)
    169 !
     169
    170170!     INPUT:
    171171!     R2SO4: aerosol H2SO4 weight fraction (percent)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/interp_sulf_input.F90

    r5098 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE interp_sulf_input(debutphy,pdtphys,paprs,tr_seri)
    55
     
    8484
    8585  REAL H2SO4_lifetime_glo(klon_glo,klev)
    86 !
     86
    8787  REAL, ALLOCATABLE, SAVE :: OCS_clim(:,:)
    8888  REAL, ALLOCATABLE, SAVE :: SO2_clim(:,:)
    8989!$OMP THREADPRIVATE(OCS_clim,SO2_clim)
    90 !
     90
    9191  INTEGER i, k, kk, j
    9292  REAL p_bound
     
    108108  2.47875223e+02,   1.50343923e+02,   9.11881985e+01, &
    109109  5.53084382e+01,   3.35462635e+01,   0.0           /)
    110 !
     110
    111111 IF (.NOT.ALLOCATED(OCS_clim)) ALLOCATE(OCS_clim(klon,klev))
    112112 IF (.NOT.ALLOCATED(SO2_clim)) ALLOCATE(SO2_clim(klon,klev))
     
    311311 
    312312  IF (is_mpi_root.AND.is_omp_root) THEN
    313 !
     313
    314314    DEALLOCATE(OCS_clim_in,SO2_clim_in,O3_clim_in)
    315315    DEALLOCATE(OCS_clim_mth,SO2_clim_mth,O3_clim_mth)
     
    318318    DEALLOCATE(OCS_lifetime_mth, SO2_lifetime_mth, H2SO4_lifetime_mth)
    319319    DEALLOCATE(OCS_lifetime_tmp, SO2_lifetime_tmp, H2SO4_lifetime_tmp)
    320 !
     320
    321321  ENDIF !--is_mpi_root and is_omp_root
    322322
     
    334334  DO i=1, klon
    335335    DO k=1, klev
    336       !
     336
    337337      !--OCS and SO2 prescribed back to their clim values below p_bound
    338338      IF (paprs(i,k)>p_bound) THEN
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/micphy_tstep.F90

    r5098 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE micphy_tstep(pdtphys,tr_seri,t_seri,pplay,paprs,rh,is_strato)
    55
     
    6363 
    6464  DO ilon=1, klon
    65 !
     65
    6666!--initialisation of diagnostic
    6767  budg_h2so4_to_part(ilon)=0.0
    68 !
     68
    6969  DO ilev=1, klev
    70 !
     70
    7171!--initialisation of diagnostic
    7272  budg_3D_nucl(ilon,ilev)=0.0
    7373  budg_3D_cond_evap(ilon,ilev)=0.0
    74 !
     74
    7575  ! only in the stratosphere
    7676  IF (is_strato(ilon,ilev)) THEN
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/miecalc_aer.F90

    r5098 r5099  
    33!-------Mie computations for a size distribution
    44!       of homogeneous spheres.
    5 !
     5
    66!==========================================================
    77!--Ref : Toon and Ackerman, Applied Optics, 1981
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/minmaxsimple.F90

    r3526 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE minmaxsimple(zq,qmin,qmax,comment)
    55  USE dimphy
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/nucleation_tstep_mod.F90

    r5098 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44MODULE nucleation_tstep_mod
    55
     
    136136
    137137  !    Fortran 90 subroutine binapara
    138   !
     138
    139139  !    Calculates parametrized values of nucleation rate,
    140140  !    mole fraction of sulphuric acid
     
    142142  !    in H2O-H2SO4 system IF temperature, saturatio ratio of water and
    143143  !    sulfuric acid concentration  are given.
    144   !
     144
    145145  !    Copyright (C) 2002 Hanna Vehkamäki
    146   !
     146
    147147  !    Division of Atmospheric Sciences
    148148  !    Department of Physical Sciences
     
    150150  !    FIN-00014 University of Helsinki
    151151  !    Finland
    152   !   
     152
    153153  !    hanna.vehkamaki@helsinki.fi
    154154
     
    300300
    301301  !    Fortran 90 subroutine newbinapara
    302   !
     302
    303303  !    Calculates parametrized values for neutral and ion-induced sulfuric acid-water particle formation rate
    304304  !    of critical clusters,
     
    307307  !    and, optionally, either condensation sink due to pre-existing particle and ion pair production rate,
    308308  !    or atmospheric concentration of negative ions are given.
    309   !
     309
    310310  !    The code calculates also the kinetic limit and the particle formation rate
    311311  !    above this limit (in which case we set ntot=1 and na=1)
    312   !
     312
    313313  !    Copyright (C)2018 Määttänen et al. 2018
    314   !   
     314
    315315  !    anni.maattanen@latmos.ipsl.fr
    316316  !    joonas.merikanto@fmi.fi
    317317  !    hanna.vehkamaki@helsinki.fi
    318   !
     318
    319319  !    References
    320320  !    A. Määttänen, J. Merikanto, H. Henschel, J. Duplissy, R. Makkonen,
     
    322322  !    neutral and ion-induced sulfuric acid-water particle formation in
    323323  !    nucleation and kinetic regimes, J. Geophys. Res. Atmos., 122, doi:10.1002/2017JD027429.
    324   !
     324
    325325  !    Brasseur, G., and A.  Chatel (1983),  paper  presented  at  the  9th  Annual  Meeting  of  the 
    326326  !    European Geophysical Society, Leeds, Great Britain, August 1982.
    327   ! 
     327
    328328  !    Dunne, Eimear M., et al.(2016), Global atmospheric particle formation from CERN CLOUD measurements,
    329329  !    Science 354.6316, 1119-1124.   
    330   !
    331330
    332331  USE aerophys
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/ocs_to_so2.F90

    r5098 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE ocs_to_so2(pdtphys,tr_seri,t_seri,pplay,paprs,is_strato)
    55
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/so2_to_h2so4.F90

    r5098 r5099  
    1 !
     1
    22! $Id$
    3 !
     3
    44SUBROUTINE SO2_TO_H2SO4(pdtphys,tr_seri,t_seri,pplay,paprs,is_strato)
    55
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/stratH2O_methox.F90

    r5098 r5099  
    1 !
     1
    22! $Id: stratH2O_methox.F90 3677 2020-05-06 15:18:32Z oboucher $
    3 !
     3
    44SUBROUTINE stratH2O_methox(debutphy,paprs,dq_ch4mmr)
    5 !
     5
    66! output: CH4VMR in MMR/s (mass mixing ratio/s or kg H2O/kg air/s)
    77
     
    6060  REAL, ALLOCATABLE :: CH4RVMR_tmp(:, :)
    6161  REAL CH4RVMR_glo(klon_glo,klev)
    62 !
     62
    6363  INTEGER i, k, kk, j
    6464 
     
    7777  2.47875223e+02,   1.50343923e+02,   9.11881985e+01, &
    7878  5.53084382e+01,   3.35462635e+01,   0.0           /)
    79 !
    80  
     79
    8180  IF (debutphy .OR. mth_cur /= mth_pre) THEN
    8281     
     
    136135             
    137136              DO kk=1, n_lev
    138                  !
     137
    139138                 CH4RVMR_glo(i,k)=CH4RVMR_glo(i,k)+ &
    140139                      MAX(0.0,MIN(paprs_glo(i,k),paprs_input(kk)) &
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/strataer_nuc_mod.F90

    r4950 r5099  
    2424    !Config Def  = F
    2525    !Config Help = Used in physiq.F
    26     !
     26
    2727    CALL getin_p('flag_nuc_rate_box',flag_nuc_rate_box)
    2828    CALL getin_p('nuclat_min',nuclat_min)
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/stratdistrib.F90

    r5098 r5099  
    1 !
     1
    22! $Id: stratemit.F90  2022-07-04 mmarchand $
    3 !
     3
    44SUBROUTINE STRATDISTRIB(altLMDz,altemiss,sigma_alt,f_lay_emiss)
    5 !
     5
    66  USE dimphy, ONLY : klon,klev
    77  USE strataer_local_var_mod
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/stratemit.F90

    r5098 r5099  
    1 !
     1
    22! $Id: stratemit.F90  2022-07-04 mmarchand $
    3 !
     3
    44SUBROUTINE STRATEMIT(pdtphys,pdt,xlat,xlon,t_seri,pplay,paprs,tr_seri,&
    55                    m_emiss_vol_daily,latmin,latmax,lonmin,lonmax,altemiss,sigma_alt,id_spec,&
     
    7878     xlon(i)>=lonmin-dlon .AND. &
    7979     xlon(i)<lonmax+dlon ) THEN
    80                    !
     80
    8181          WRITE(*,*) 'coordinates of volcanic injection point=',&
    8282      xlat(i),xlon(i),day_cur,mth_cur,year_cur
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/sulfate_aer_mod.F90

    r5087 r5099  
    88!*******************************************************************
    99      SUBROUTINE STRACOMP_KELVIN(sh,t_seri,pplay)
    10 !
     10
    1111!     Aerosol H2SO4 weight fraction as a function of PH2O and temperature
    1212!     INPUT:
     
    1414!     t_seri: temperature (K)
    1515!     pplay: middle layer pression (Pa)
    16 !
     16
    1717!     Modified in modules:
    1818!     R2SO4: aerosol H2SO4 weight fraction (percent)
     
    115115!            aerosol density (gr/cm3) = f(T,h2so4 mass fraction)
    116116             denso4ik=density(temp,wpp)
    117 !           
     117
    118118!            recalculate Kelvin factor with surface tension and radwet
    119119!                              with new R2SO4B and DENSO4B
     
    134134             f_r_wetB(ilon,ilev,IK) = (dens_aer_dry/(DENSO4B(ilon,ilev,IK)*1.e3)/ &
    135135      (R2SO4B(ilon,ilev,IK)*1.e-2))**third
    136 !
     136
    137137!             print*,'R,Rwet(m),kelvin,h2so4(%),ro=',RRSI(ik),radwet,fkelvin, &
    138138!              &  R2SO4B(ilon,ilev,IK),DENSO4B(ilon,ilev,IK)
     
    160160!   klev: number of altitude bands in the model domain
    161161!   for IFS: perhaps add another dimension for longitude
    162 !
     162
    163163!   OUTPUT:
    164164!   R2SO4: aerosol H2SO4 weight fraction (percent)
     
    175175     
    176176    REAL PMB(klon,klev), H2O(klon,klev)
    177 !
     177
    178178!   working variables
    179179    INTEGER I,J,K
     
    187187    REAL YC(M)
    188188    REAL XC1, XC16, YC1, YC28
    189 !
     189
    190190    SAVE INSTEP,F,XC,YC,XC1,XC16,YC1,YC28
    191191!$OMP THREADPRIVATE(INSTEP,F,XC,YC,XC1,XC16,YC1,YC28)
     
    216216       XC(15)=30.0
    217217       XC(16)=100.0
    218 !
     218
    219219       YC(1)=175.0
    220220       DO I=2,28
     
    226226         XC(I)=XC(I)*1.0E-4
    227227       ENDDO
    228 !
     228
    229229       XC1=XC(1)+1.E-10
    230230       XC16=XC(16)-1.E-8
     
    247247       F(6,17)=86.79
    248248       F(6,18)=88.32
    249 !
     249
    250250!      ADD FACTOR  BECAUSE THE SLOP IS TOO IMPORTANT
    251251!      NOT FOR THIS ONE BUT THE REST
     
    256256       F(6,2)=A*YC(2) + B
    257257       F(6,3)=A*YC(3) + B
    258 !
     258
    259259       F(7,4)=37.02
    260260       F(7,5)=49.46
     
    272272       F(7,17)=85.85
    273273       F(7,18)=87.33
    274 !
     274
    275275       A=(F(7,5)-F(7,4))/( (YC(5)-YC(4))*2.0)
    276276       B=-A*YC(4) + F(7,4)
     
    278278       F(7,2)=A*YC(2) + B
    279279       F(7,3)=A*YC(3) + B
    280 !
     280
    281281       F(8,4)=25.85
    282282       F(8,5)=42.26
     
    294294       F(8,17)=84.67
    295295       F(8,18)=86.10
    296 !
     296
    297297       A=(F(8,5)-F(8,4))/( (YC(5)-YC(4))*2.5 )
    298298       B=-A*YC(4) + F(8,4)
     
    300300       F(8,2)=A*YC(2) + B
    301301       F(8,3)=A*YC(3) + B
    302 !
     302
    303303       F(9,4)=15.38
    304304       F(9,5)=39.35
     
    316316       F(9,17)=84.25
    317317       F(9,18)=85.66
    318 !
     318
    319319       A=(F(9,5)-F(9,4))/( (YC(5)-YC(4))*7.0)
    320320       B=-A*YC(4) + F(9,4)
     
    322322       F(9,2)=A*YC(2) + B
    323323       F(9,3)=A*YC(3) + B
    324 !
     324
    325325       F(10,4)=0.0
    326326       F(10,5)=34.02
     
    338338       F(10,17)=83.57
    339339       F(10,18)=84.97
    340 !
     340
    341341       A=(F(10,6)-F(10,5))/( (YC(6)-YC(5))*1.5)
    342342       B=-A*YC(5) + F(10,5)
     
    345345       F(10,3)=A*YC(3) + B
    346346       F(10,4)=A*YC(4) + B
    347 !
     347
    348348       F(11,4)=0.0
    349349       F(11,5)=29.02
     
    361361       F(11,17)=83.03
    362362       F(11,18)=84.44
    363 !
     363
    364364       A=(F(11,6)-F(11,5))/( (YC(6)-YC(5))*2.5 )
    365365       B=-A*YC(5) + F(11,5)
     
    368368       F(11,3)=A*YC(3) + B
    369369       F(11,4)=A*YC(4) + B
    370 !
     370
    371371       F(12,4)=0.0
    372372       F(12,5)=23.13
     
    384384       F(12,17)=82.58
    385385       F(12,18)=83.99
    386 !
     386
    387387       A=(F(12,6)-F(12,5))/( (YC(6)-YC(5))*3.5 )
    388388       B=-A*YC(5) + F(12,5)
     
    391391       F(12,3)=A*YC(3) + B
    392392       F(12,4)=A*YC(4) + B
    393 !
     393
    394394       F(13,4)=0.0
    395395       F(13,5)=0.0
     
    407407       F(13,17)=82.02
    408408       F(13,18)=83.44
    409 !
     409
    410410       A=(F(13,7)-F(13,6))/( (YC(7)-YC(6))*2.0)
    411411       B=-A*YC(6) + F(13,6)
     
    415415       F(13,4)=A*YC(4) + B
    416416       F(13,5)=A*YC(5) + B
    417 !
     417
    418418       F(14,4)=0.0
    419419       F(14,5)=0.0
     
    431431       F(14,17)=81.26
    432432       F(14,18)=82.72
    433 !
     433
    434434       A=(F(14,7)-F(14,6))/( (YC(7)-YC(6))*2.5 )
    435435       B=-A*YC(6) + F(14,6)
     
    439439       F(14,4)=A*YC(4) + B
    440440       F(14,5)=A*YC(5) + B
    441 !
     441
    442442       F(15,4)=0.0
    443443       F(15,5)=0.0
     
    455455       F(15,17)=80.12
    456456       F(15,18)=81.64
    457 !
     457
    458458       A=(F(15,8)-F(15,7))/( (YC(8)-YC(7))*1.5)
    459459       B=-A*YC(7) + F(15,7)
     
    546546!   klev: number of altitude bands in the model domain
    547547!   for IFS: perhaps add another dimension for longitude
    548 !
     548
    549549!   OUTPUT:
    550550!   ACTSO4: H2SO4 activity (percent)
     
    624624!   VERY ROUGH APPROXIMATION (SEE FOR WATER IN HANDBOOK
    625625!   LINEAR 2% FOR 30 DEGREES with RESPECT TO WATER)
    626 !   
     626
    627627!   INPUT:
    628628!   R2SO4: aerosol H2SO4 weight fraction (percent)
     
    631631!   klev: number of altitude bands in the model domain
    632632!   for IFS: perhaps add another dimension for longitude
    633 !
     633
    634634!   OUTPUT:
    635635!   DENSO4: aerosol mass density (gr/cm3 = aerosol mass/aerosol volume)
    636 !   
     636
    637637    USE dimphy, ONLY : klon,klev
    638638    USE phys_local_var_mod, ONLY: R2SO4, DENSO4
     
    657657!***********************************************************
    658658    SUBROUTINE FIND(X,Y,XC,YC,F,VAL,N,M)
    659 !
     659
    660660!   BI-LINEAR INTERPOLATION
    661661
     
    666666!   YC: Table temperature (K)
    667667!   F: Table aerosol H2SO4 weight fraction=f(XC,YC) (percent)
    668 !
     668
    669669!   OUTPUT:
    670670!   VAL: aerosol H2SO4 weight fraction (percent)
     
    674674    INTEGER N,M
    675675    REAL X,Y,XC(N),YC(M),F(N,M),VAL
    676 !
     676
    677677!   working variables
    678678    INTEGER  IERX,IERY,JX,JY,JXP1,JYP1
     
    768768      real function psh2so4(T) result(psh2so4_out)
    769769!     equilibrium H2SO4 pressure over pure H2SO4 solution (Pa)
    770 !
     770
    771771!---->Ayers et.al. (1980), GRL (7) pp 433-436
    772772!     plus corrections for lower temperatures by Kulmala and Laaksonen (1990)
     
    810810     real function psh2o(T) result(psh2o_out)
    811811!     equilibrium H2O pressure over pure liquid water (Pa)
    812 !
     812
    813813      implicit none
    814814      real, intent(in) :: T
     
    930930!     as a function of temperature and  H2O pressure, using
    931931!     the parameterization of Tabazadeh et al., GRL, p1931, 1997.
    932 !
     932
    933933!   Parameters
    934 !
     934
    935935!    input:
    936936!      T.....temperature (K)
    937937!      pph2o..... amhbiant 2o pressure (Pa)
    938 !
     938
    939939!    output:
    940940!      wph2so4......sulfuric acid composition (weight percent wt % h2so4)
    941941!                     = h2so4 mass fraction*100.
    942 !
     942
    943943      implicit none
    944944      real, intent(in) :: pph2o, T
     
    10591059       return
    10601060     end function rmvh2o
    1061 !
     1061
    10621062END MODULE sulfate_aer_mod
  • LMDZ6/branches/Amaury_dev/libf/phylmd/StratAer/traccoag_mod.F90

    r5098 r5099  
    11MODULE traccoag_mod
    2 !
     2
    33! This module calculates the concentration of aerosol particles in certain size bins
    44! considering coagulation and sedimentation.
    5 !
     5
    66CONTAINS
    77
     
    190190       
    191191    CASE(2) ! stratospheric aerosol injections (SAI)
    192 !
     192
    193193     ! Computing duration of SAI in days...
    194194     ! ... starting from 0...
Note: See TracChangeset for help on using the changeset viewer.