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

Annotation 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 - (hide 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 jscott 1.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