Ignore:
Timestamp:
Jan 27, 2016, 10:42:32 AM (8 years ago)
Author:
idelkadi
Message:

Mise a jour du simulateur COSP (passage de la version v3.2 a la version v1.4) :

  • mise a jour des sources pour ISCCP, CALIPSO et PARASOL
  • prise en compte des changements de phases pour les nuages (Calipso)
  • rajout de plusieurs diagnostiques (fraction nuageuse en fonction de la temperature, ...)

http://lmdz.lmd.jussieu.fr/Members/aidelkadi/cosp

File:
1 edited

Legend:

Unmodified
Added
Removed
  • LMDZ5/trunk/libf/phylmd/cosp/zeff.F90

    r1907 r2428  
     1! $Revision: 88 $, $Date: 2013-11-13 15:08:38 +0100 (mer. 13 nov. 2013) $
     2! $URL: http://cfmip-obs-sim.googlecode.com/svn/stable/v1.4.0/quickbeam/zeff.f90 $
    13  subroutine zeff(freq,D,N,nsizes,k2,tt,ice,xr,z_eff,z_ray,kr,qe,qs,rho_e)
    24  use math_lib
     
    1517!   [nsizes]    number of discrete drop sizes
    1618!   [k2]        |K|^2, -1=use frequency dependent default
    17 !   [tt]        hydrometeor temperature (C)
     19!   [tt]        hydrometeor temperature (K)
    1820!   [ice]       indicates volume consists of ice
    1921!   [xr]        perform Rayleigh calculations?
     
    4244! ----- INTERNAL -----
    4345  integer :: &
    44   correct_for_rho               ! correct for density flag
     46  correct_for_rho        ! correct for density flag
    4547  real*8, dimension(nsizes) :: &
    46   D0, &                         ! D in (m)
    47   N0, &                         ! N in m^-3 m^-1
    48   sizep, &                      ! size parameter
    49   qext, &                       ! extinction efficiency
    50   qbsca, &                      ! backscatter efficiency
    51   rho_ice, &                    ! bulk density ice (kg m^-3)
    52   f                             ! ice fraction
     48  D0, &                  ! D in (m)
     49  N0, &                  ! N in m^-3 m^-1
     50  sizep, &               ! size parameter
     51  qext, &           ! extinction efficiency
     52  qbsca, &               ! backscatter efficiency
     53  rho_ice, &             ! bulk density ice (kg m^-3)
     54  f                 ! ice fraction
     55  real*8, dimension(nsizes) :: xtemp
    5356  real*8 :: &
    54   wl, &                         ! wavelength (m)
     57  wl, &                  ! wavelength (m)
    5558  cr                            ! kr(dB/km) = cr * kr(1/km)
    5659  complex*16 :: &
    57   m                             ! complex index of refraction of bulk form
     60  m                 ! complex index of refraction of bulk form
    5861  complex*16, dimension(nsizes) :: &
    59   m0                            ! complex index of refraction
     62  m0                ! complex index of refraction
    6063 
    6164  integer*4 :: i,one
    6265  real*8 :: pi
    6366  real*8 :: eta_sum, eta_mie, const, z0_eff, z0_ray, k_sum, &
    64             n_r, n_i, dqv(1), dqxt, dqsc, dbsc, dg, dph(1)
     67            n_r, n_i, dqv(1), dqsc, dg, dph(1)
    6568  integer*4 :: err
    6669  complex*16 :: Xs1(1), Xs2(1)
     
    7275
    7376! // conversions
    74   D0 = d*1E-6                   ! m
    75   N0 = n*1E12                   ! 1/(m^3 m)
    76   wl = 2.99792458/(freq*10)     ! m
     77  D0 = d*1E-6            ! m
     78  N0 = n*1E12            ! 1/(m^3 m)
     79  wl = 2.99792458/(freq*10)   ! m
    7780 
    7881! // dielectric constant |k^2| defaults
     
    127130    eta_sum = qbsca(1)*(n(1)*1E6)*D0(1)**2
    128131  else
    129     call avint(qbsca*N0*D0**2,D0,nsizes,D0(1),D0(size(D0,1)),eta_sum)
     132    xtemp = qbsca*N0*D0**2
     133    call avint(xtemp,D0,nsizes,D0(1),D0(size(D0,1)),eta_sum)
    130134  endif
    131135 
     
    140144    k_sum = qext(1)*(n(1)*1E6)*D0(1)**2
    141145  else
    142     call avint(qext*N0*D0**2,D0,nsizes,D0(1),D0(size(D0,1)),k_sum)
     146    xtemp = qext*N0*D0**2
     147    call avint(xtemp,D0,nsizes,D0(1),D0(size(D0,1)),k_sum)
    143148  endif
    144149  cr = 10./log(10.)
    145150  kr = k_sum*0.25*pi*(1000.*cr)
    146        
     151     
    147152! // z_ray = sum[D^6*N(D)*deltaD]
    148153  if (xr == 1) then
     
    151156      z0_ray = (n(1)*1E6)*D0(1)**6
    152157    else
    153       call avint(N0*D0**6,D0,nsizes,D0(1),D0(size(D0)),z0_ray)
     158      xtemp = N0*D0**6
     159      call avint(xtemp,D0,nsizes,D0(1),D0(size(D0)),z0_ray)
    154160    endif
    155161  endif
Note: See TracChangeset for help on using the changeset viewer.