2 MODULE module_data_rrtmgaeropt
5 INTEGER nswbands,nlwbands ! wave bands for rrtmg radiation scheme
6 PARAMETER (nswbands =4,nlwbands=16)
8 !*************************************************************
9 !czhao hard coding the refractive index of water and aerosols
11 ! * Most of the wavelength refractive indices below are based on values
12 ! used in the Community Atmosphere Model (CAM)
13 ! * For now, shortwave refractive index is not wavelength depenedent
14 ! and set to 0.003 as described in Zhao et al. ACP (2010)
15 ! * Wavelength dependant shortwave refractive index used by CAM is
16 ! commented out for now
19 real,dimension(1:nswbands),save :: refrwsw,refiwsw
20 real,dimension(1:nlwbands),save :: refrwlw,refiwlw
21 data refrwsw /1.35,1.34,1.33,1.33/
22 data refiwsw /1.524e-8,2.494e-9,1.638e-9,3.128e-6/
23 data refrwlw /1.532,1.524,1.420,1.274,1.161,1.142,1.232,1.266,1.296, &
24 1.321,1.342,1.315,1.330,1.339,1.350,1.408/
25 data refiwlw / 0.336,0.360,0.426,0.403,0.321,0.115,0.0471,0.039,0.034, &
26 0.0344,0.092,0.012,0.013,0.01,0.0049,0.0142/
29 real,dimension(1:nswbands),save :: refrsw_dust,refisw_dust
30 real,dimension(1:nlwbands),save :: refrlw_dust,refilw_dust
31 !data refrsw_dust /nswbands*1.530/
32 data refrsw_dust /nswbands*1.550/
33 ! data refisw_dust /0.024,0.0135,0.0063,0.004/
34 data refisw_dust /nswbands*0.003/
35 data refrlw_dust /2.340,2.904,1.748,1.508,1.911,1.822,2.917,1.557, &
36 1.242,1.447,1.432,1.473,1.495,1.5,1.5,1.51/
37 data refilw_dust /0.7,0.857,0.462,0.263,0.319,0.26,0.65,0.373,0.093, &
38 0.105,0.061,0.0245,0.011,0.008,0.0068,0.018/
41 real,dimension(1:nswbands),save :: refrsw_bc,refisw_bc
42 real,dimension(1:nlwbands),save :: refrlw_bc,refilw_bc
43 data refrsw_bc /nswbands*1.95/
44 data refisw_bc /nswbands*0.79/
45 data refrlw_bc /nlwbands*1.95/
46 data refilw_bc /nlwbands*0.79/
49 real,dimension(1:nswbands),save :: refrsw_oc,refisw_oc
50 real,dimension(1:nlwbands),save :: refrlw_oc,refilw_oc
51 !data refrsw_oc /1.53,1.53,1.53,1.52/
52 data refrsw_oc /nswbands*1.45/
53 !data refisw_oc /0.00776,0.005,0.00567,0.0156/
54 data refisw_oc /nswbands*0.0/
55 data refrlw_oc /1.86,1.91,1.988,1.439,1.606,1.7,1.888,2.489,1.219, &
56 1.419,1.426,1.446,1.457,1.458,1.455,1.443/
57 data refilw_oc /0.5,0.268,0.185,0.198,0.059,0.0488,0.11,0.3345,0.065, &
58 0.058,0.0261,0.0142,0.013,0.01,0.005,0.0057/
61 real,dimension(1:nswbands),save :: refrsw_seas,refisw_seas
62 real,dimension(1:nlwbands),save :: refrlw_seas,refilw_seas
63 data refrsw_seas /1.51,1.5,1.5,1.47/
64 data refisw_seas /0.866e-6,7.019e-8,1.184e-8,0.00015/
65 data refrlw_seas /1.74,1.76,1.78,1.456,1.41,1.48,1.56,1.63,1.4,1.43, &
66 1.56,1.45,1.485,1.486,1.48,1.48 /
67 data refilw_seas /0.1978,0.1978,0.129,0.038,0.019,0.014,0.016,0.03,0.012, &
68 0.0064,0.0196,0.0029,0.0017,0.0014,0.0014,0.00176/
71 real,dimension(1:nswbands),save :: refrsw_sulf,refisw_sulf
72 real,dimension(1:nlwbands),save :: refrlw_sulf,refilw_sulf
73 !data refrsw_sulf /1.468,1.442,1.43,1.422/
74 data refrsw_sulf /nswbands*1.52/
75 data refisw_sulf /3*1.0e-9,1.75e-6/
76 data refrlw_sulf /1.89,1.91,1.93,1.586,1.678,1.758,1.855,1.597,1.15, &
77 1.26,1.42,1.35,1.379,1.385,1.385,1.367/
78 data refilw_sulf /0.22,0.152,0.0846,0.2225,0.195,0.441,0.696,0.695, &
79 0.459,0.161,0.172,0.14,0.12,0.122,0.126,0.158/
81 !*************************************************************
83 real, save :: wavmin(nswbands) ! Min wavelength (um) of interval
84 !data wavmin /3.077,2.500,2.150,1.942,1.626,1.299, &
85 data wavmin /0.25,0.35,0.55,0.998/
86 real, save :: wavmax(nswbands) ! Max wavelength (um) of interval
87 !data wavmax/3.846,3.077,2.500,2.150,1.942,1.626, &
88 data wavmax/0.35,0.45,0.65,1.000/
89 real, save :: wavenumber1_longwave(nlwbands) !Longwave limits (cm-1)
90 data wavenumber1_longwave /10.,350.,500.,630.,700.,820.,980.,1080.,1180.,1390.,1480.,1800.,2080.,2250.,2390.,2600./
91 real, save :: wavenumber2_longwave(nlwbands) !Longwave limits (cm-1)
92 data wavenumber2_longwave /350.,500.,630.,700.,820.,980.,1080.,1180.,1390.,1480.,1800.,2080., 2250.,2390.,2600.,3250./
95 integer,parameter :: maxd_amode=3
96 integer,parameter :: ntot_amode=3
97 integer,parameter :: maxd_bin=8
98 integer,parameter :: ntot_bin=8
100 !Chebychev polynomial
101 !integer,parameter :: prefr=7,prefi=10
102 integer,parameter :: prefr=7,prefi=7
103 integer,parameter :: ncoef=50
104 real,parameter :: rmmin=0.005e-4,rmmax=50.e-4 ! cm
105 real,save:: refrtabsw(prefr,nswbands)
106 real,save:: refitabsw(prefi,nswbands)
107 real,save:: refrtablw(prefr,nlwbands)
108 real,save:: refitablw(prefi,nlwbands)
109 !coefficients for parameterizing aerosol radiative properties
110 !in terms of refractive index and wet radius
111 real,save:: extpsw(ncoef,prefr,prefi,nswbands) !specific extinction
112 real,save:: abspsw(ncoef,prefr,prefi,nswbands) !specific absorption
113 real,save:: ascatpsw(ncoef,prefr,prefi,nswbands) !specific scattering
114 real,save:: asmpsw(ncoef,prefr,prefi,nswbands) !asymmetry factor
115 real,save:: sbackpsw(ncoef,prefr,prefi,nswbands)
116 real,save:: pmom2psw(ncoef,prefr,prefi,nswbands)
117 real,save:: pmom3psw(ncoef,prefr,prefi,nswbands)
118 real,save:: pmom4psw(ncoef,prefr,prefi,nswbands)
119 real,save:: pmom5psw(ncoef,prefr,prefi,nswbands)
120 real,save:: pmom6psw(ncoef,prefr,prefi,nswbands)
121 real,save:: pmom7psw(ncoef,prefr,prefi,nswbands)
122 real,save:: extplw(ncoef,prefr,prefi,nlwbands) !specific extinction
123 real,save:: absplw(ncoef,prefr,prefi,nlwbands) !specific absorption
124 real,save:: ascatplw(ncoef,prefr,prefi,nlwbands) !specific scattering
125 real,save:: asmplw(ncoef,prefr,prefi,nlwbands) !asymmetry factor
127 real,save :: wavmidsw(nswbands)
128 data wavmidsw / 0.30e-4, 0.40e-4, 0.60e-4 ,0.999e-04 /
129 !now czhao use 0.45 instead of 0.40 becaues of incorrect AOD from 0.40
130 !data wavmidsw / 0.30e-4, 0.45e-4, 0.60e-4 ,0.999e-04 /
131 real,save :: wavmidlw(nlwbands)
132 complex, save :: crefwsw(nswbands) ! complex refractive index fro water
133 complex, save :: crefwlw(nlwbands)
137 END MODULE module_data_rrtmgaeropt