Changeset 2428 for LMDZ5/trunk/libf/phylmd/cosp/zeff.F90
- Timestamp:
- Jan 27, 2016, 10:42:32 AM (8 years ago)
- 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 $ 1 3 subroutine zeff(freq,D,N,nsizes,k2,tt,ice,xr,z_eff,z_ray,kr,qe,qs,rho_e) 2 4 use math_lib … … 15 17 ! [nsizes] number of discrete drop sizes 16 18 ! [k2] |K|^2, -1=use frequency dependent default 17 ! [tt] hydrometeor temperature ( C)19 ! [tt] hydrometeor temperature (K) 18 20 ! [ice] indicates volume consists of ice 19 21 ! [xr] perform Rayleigh calculations? … … 42 44 ! ----- INTERNAL ----- 43 45 integer :: & 44 correct_for_rho 46 correct_for_rho ! correct for density flag 45 47 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 53 56 real*8 :: & 54 wl, & 57 wl, & ! wavelength (m) 55 58 cr ! kr(dB/km) = cr * kr(1/km) 56 59 complex*16 :: & 57 m 60 m ! complex index of refraction of bulk form 58 61 complex*16, dimension(nsizes) :: & 59 m0 62 m0 ! complex index of refraction 60 63 61 64 integer*4 :: i,one 62 65 real*8 :: pi 63 66 real*8 :: eta_sum, eta_mie, const, z0_eff, z0_ray, k_sum, & 64 n_r, n_i, dqv(1), dq xt, dqsc, dbsc, dg, dph(1)67 n_r, n_i, dqv(1), dqsc, dg, dph(1) 65 68 integer*4 :: err 66 69 complex*16 :: Xs1(1), Xs2(1) … … 72 75 73 76 ! // conversions 74 D0 = d*1E-6 75 N0 = n*1E12 76 wl = 2.99792458/(freq*10) 77 D0 = d*1E-6 ! m 78 N0 = n*1E12 ! 1/(m^3 m) 79 wl = 2.99792458/(freq*10) ! m 77 80 78 81 ! // dielectric constant |k^2| defaults … … 127 130 eta_sum = qbsca(1)*(n(1)*1E6)*D0(1)**2 128 131 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) 130 134 endif 131 135 … … 140 144 k_sum = qext(1)*(n(1)*1E6)*D0(1)**2 141 145 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) 143 148 endif 144 149 cr = 10./log(10.) 145 150 kr = k_sum*0.25*pi*(1000.*cr) 146 151 147 152 ! // z_ray = sum[D^6*N(D)*deltaD] 148 153 if (xr == 1) then … … 151 156 z0_ray = (n(1)*1E6)*D0(1)**6 152 157 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) 154 160 endif 155 161 endif
Note: See TracChangeset
for help on using the changeset viewer.