/[MITgcm]/MITgcm_contrib/jscott/igsm/src_chem/chemtrop0.F
ViewVC logotype

Contents of /MITgcm_contrib/jscott/igsm/src_chem/chemtrop0.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.1 - (show annotations) (download)
Thu Sep 17 17:40:33 2009 UTC (15 years, 10 months ago) by jscott
Branch: MAIN
CVS Tags: HEAD
chem module archive

1
2 #include "ctrparam.h"
3
4 ! ============================================================
5 !
6 ! CHEMTROP0.F: Interface for subroutine CHEMTROP.F
7 ! of MIT Global Chemistry Model
8 !
9 ! ------------------------------------------------------------
10 !
11 ! Author: Chien Wang
12 ! MIT Joint Program on Science and Policy
13 ! of Global Change
14 !
15 ! ----------------------------------------------------------
16 !
17 ! Revision History:
18 !
19 ! When Who What
20 ! ---- ---------- -------
21 ! 052300 Chien Wang rev.
22 ! 080200 Chien Wang repack based on CliChem3 & add cpp
23 ! 092801 Chien Wang add bc and oc
24 ! 093001 Chien Wang add S(VI) RH dependency
25 ! 051904 Chien Wang rev.
26 !
27 ! ==========================================================
28
29 !
30 subroutine chemtrop0(ifss, pT, qv, dtr, nloop)
31 ! =============================================
32
33 #include "chem_para"
34 #include "chem_com"
35
36 #include "BD2G04.COM"
37
38 common U,V,T,P,Q
39
40 dimension pT (nlon,nlat,nlev)
41 dimension Temp(nlon,nlat,nlev)
42 dimension qv (nlon,nlat,nlev)
43 dimension den (nlon,nlat,nlev)
44 dimension rh (nlon,nlat,nlev)
45
46 dimension tmp_co (nlon,nlat,nlev)
47 dimension tmp_ch4 (nlon,nlat,nlev)
48 dimension tmp_o3 (nlon,nlat,nlev)
49 dimension tmp_svi (nlon,nlat,nlev)
50 dimension tmp_no (nlon,nlat,nlev)
51 dimension tmp_no2 (nlon,nlat,nlev)
52 dimension tmp_nv (nlon,nlat,nlev)
53 dimension tmp_ch2o(nlon,nlat,nlev)
54
55 ! --------------------------------------------
56
57 #if ( defined CPL_CHEM )
58
59 ktrop = n_tropopause
60
61 c === 032697
62 c === add diagnostic procedure:
63 c
64 do k=1,ktrop
65 do j=1,nlat
66 tmp_co (1,j,k) = co (1,j,k)
67 tmp_ch4 (1,j,k) = ch4 (1,j,k)
68 tmp_o3 (1,j,k) = o3 (1,j,k)
69 tmp_svi (1,j,k) = h2so4(1,j,k)
70 tmp_no (1,j,k) = xno (1,j,k)
71 tmp_no2 (1,j,k) = xno2 (1,j,k)
72 tmp_nv (1,j,k) = hno3 (1,j,k)
73 tmp_ch2o(1,j,k) = ch2o (1,j,k)
74 enddo
75 enddo
76
77 c---------
78 c Note the T from
79 c main.f is a fraction of potential temprerature
80 c
81 do k = 1, nlev
82 do j = 1,n2dh
83 airptmp1 = (sig(k)*p(1,j) + 10.0)
84 Temp(1,j,k) = T(1,j,k)*airptmp1**0.286
85 den(1,j,k) = airptmp1/(2.87*Temp(1,j,k))
86 rh (1,j,k) = 3.80/airpress(k)
87 & *exp(17.67*(Temp(1,j,k) - 273.15)
88 & /(Temp(1,j,k) - 29.65))
89 rh (1,j,k) = qv(1,j,k)/rh(1,j,k)*100.0
90 end do
91 end do
92
93 c do 2 ntime =1,nloop
94
95 call chemtrop(dtr, 0, ktrop, Temp, qv, den)
96
97 c2 continue
98
99 c === 032697
100 c === add diagnostic procedure:
101 c
102 do k=1,ktrop
103 do j=1,nlat
104 photo_co (1,j,k) = photo_co (1,j,k)
105 & + (co (1,j,k) - tmp_co (1,j,k))
106 & *airmass(1,j,k)*1.e-18 !TGspecies
107 photo_ch4 (1,j,k) = photo_ch4 (1,j,k)
108 & + (ch4 (1,j,k) - tmp_ch4 (1,j,k))
109 & *airmass(1,j,k)*1.e-18 !TGspecies
110 photo_o3 (1,j,k) = photo_o3 (1,j,k)
111 & + (o3 (1,j,k) - tmp_o3 (1,j,k))
112 & *airmass(1,j,k)*1.e-18 !TGspecies
113 photo_svi (1,j,k) = photo_svi (1,j,k)
114 & + (h2so4(1,j,k) - tmp_svi (1,j,k))
115 & *airmass(1,j,k)*1.e-18 !TGspecies
116 photo_no (1,j,k) = photo_no (1,j,k)
117 & + (xno (1,j,k) - tmp_no (1,j,k))
118 & *airmass(1,j,k)*1.e-18 !TGspecies
119 photo_no2 (1,j,k) = photo_no2 (1,j,k)
120 & + (xno2 (1,j,k) - tmp_no2 (1,j,k))
121 & *airmass(1,j,k)*1.e-18 !TGspecies
122 photo_nv (1,j,k) = photo_nv (1,j,k)
123 & + (hno3 (1,j,k) - tmp_nv (1,j,k))
124 & *airmass(1,j,k)*1.e-18 !TGspecies
125 photo_ch2o (1,j,k) = photo_ch2o(1,j,k)
126 & + (ch2o (1,j,k) - tmp_ch2o(1,j,k))
127 & *airmass(1,j,k)*1.e-18 !TGspecies
128 enddo
129 enddo
130
131
132 i = 1
133
134 do j=1,nlat
135 sviod(i,j,nlev ) = 0.0
136 sviod(i,j,nlev1) = 0.0
137 bcod (i,j,nlev ) = 0.0
138 bcod (i,j,nlev1) = 0.0
139 ocod (i,j,nlev ) = 0.0
140 ocod (i,j,nlev1) = 0.0
141 end do
142
143 do k=nlev1,1,-1
144 do j=1,nlat
145 ! =====
146 ! Calculate optical depth of S(VI) aerosols:
147 ! ref. Charlson et al., 1992
148 !
149 ! Qex*f(rh) = 5.0*1.7 for rh = 80%
150 !qex_svi = 8.5e-6/dxyp(j)
151 !
152 ! === add frh based on calculated rh
153 !
154 if ( rh(i,j,k) .le. 60.0 ) then
155 frh = 1.0
156 else if ( rh(i,j,k) .ge. 80.0 ) then
157 frh = 2.8
158 else
159 frh = rh(i,j,k)
160 frh = -9.2906106183
161 & + frh*(0.52570211505
162 & + frh*(-0.0089285760691+5.0877212432e-05*frh))
163 end if
164 qex_svi = 5.0e-6*frh/dxyp(j)
165 &
166
167 ! === bc
168 ! Qex*f(rh) = 9.0*1.0 (550 micron)
169 qex_bc = 8.0e-6/dxyp(j) ! normal
170 !qex_bc = 11.0e-6/dxyp(j) ! high
171
172 ! === oc
173 ! Qex*f(rh) = 6.8*1.0 (550 micron), assume rh factor
174 qex_oc = 6.8e-6/dxyp(j)
175
176 sviod(i,j,k) = sviod(i,j,k+1)
177 & + airmass(i,j,k)*h2so4(i,j,k)*qex_svi
178 ! if( j.eq.33.and.k.eq.1) then
179 ! print *,airmass(i,j,k),rh(i,j,k),qex_svi
180 ! print *,h2so4(i,j,k),sviod(i,j,k+1),sviod(i,j,k)
181 ! endif
182 bcod(i,j,k) = bcod(i,j,k+1)
183 & + airmass(i,j,k)*bcarbon(i,j,k)*qex_bc
184 ocod(i,j,k) = ocod(i,j,k+1)
185 & + airmass(i,j,k)*ocarbon(i,j,k)*qex_oc
186 end do
187 end do
188 #endif
189
190 return
191 end
192

  ViewVC Help
Powered by ViewVC 1.1.22