/[MITgcm]/MITgcm_contrib/jscott/igsm/src/gr_for_3docean.F
ViewVC logotype

Contents of /MITgcm_contrib/jscott/igsm/src/gr_for_3docean.F

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


Revision 1.1 - (show annotations) (download)
Fri Aug 11 19:35:31 2006 UTC (19 years ago) by jscott
Branch: MAIN
CVS Tags: HEAD
atm2d package

1
2 #include "ctrparam.h"
3
4 ! ==========================================================
5 !
6 ! GROUND.F: THIS SUBROUTINE USES THE SURFACE FLUXES TO
7 ! PREDICT IN TIME THE GROUND TEMPERATURE, GROUND
8 ! WATER AND ICE, AND SNOW MELTING.
9 !
10 ! ----------------------------------------------------------
11 !
12 ! Revision History:
13 !
14 ! When Who What
15 ! ---- ---------- -------
16 ! 073100 Chien Wang add cpp & dmax dmin -> max, min
17 !
18 ! ==========================================================
19
20 SUBROUTINE GRFOROCEAN 7001.
21 C**** 7001.5
22 C**** THIS SUBROUTINE USES THE SURFACE FLUXES TO PREDICT IN TIME THE 7002.
23 C**** GROUND TEMPERATURE, GROUND WATER AND ICE, AND SNOW MELTING. 7002.5
24 C**** 7003.
25
26 #include "BD2G04.COM" 7003.5
27
28 COMMON U,V,T,P,Q 7004.
29 COMMON/WORK3/E0(IO0,JM0,4),E1(IO0,JM0,4),EVAPOR(IO0,JM0,4) 7004.5
30 COMMON/OT/OTA(IO0,JM0),OTB(IO0,JM0),OTC(IO0,JM0) 7005.
31 COMMON/SPEC2/KM,KINC,COEK,C3LAND(IO0,JM0),C3OICE(IO0,JM0) 7005.1
32 * ,C3LICE(IO0,JM0),WMGE(IO0,JM0),TSSFC(1,JM0,4) 7005.2
33 common/qfl/QFLUX(JM0,0:13),ZOAV(JM0),QFLUXT(JM0)
34 COMMON/OLDZO/Z1OOLD(IO0,JM0)
35 DIMENSION FWATER(JM0),TOBS(JM0),TF68(JM0),DELR(JM0) 7005.3
36 DATA SHV/0./,SHW/4185./,SHI/2060./,RHOW/1000./,RHOI/916.6/, 7005.9
37 * ALAMI/2.1762/,TFO/-1.56/,Z1I/.1/,Z2LI/2.9/,Z1E/.1/,Z2E/4./ 7006.
38 INTEGER JDOFM(13) 7006.1
39 DATA JDOFM/0,31,59,90,120,151,181,212,243,273,304,334,365/ 7006.2
40 DATA Z2OIM/0.9/,Z2OIX/4.9/ 7006.5
41 DATA TTRUNC/0./ 7007.
42 DATA IFIRST/1/ 7007.5
43 C**** 7008.
44 C**** FDATA 2 LAND COVERAGE (1) 7008.5
45 C**** 3 RATIO OF LAND ICE COVERAGE TO LAND COVERAGE (1) 7009.
46 C**** 7009.5
47 C**** ODATA 1 OCEAN TEMPERATURE (C) 7010.
48 C**** 2 RATIO OF OCEAN ICE COVERAGE TO WATER COVERAGE (1) 7010.5
49 C**** 3 OCEAN ICE AMOUNT OF SECOND LAYER (KG/M**2) 7011.
50 C**** 7011.5
51 C**** GDATA 1 OCEAN ICE SNOW AMOUNT (KG/M**2) 7012.
52 C**** 2 EARTH SNOW AMOUNT (KG/M**2) 7012.5
53 C**** 3 OCEAN ICE TEMPERATURE OF FIRST LAYER (C) 7013.
54 C**** 4 EARTH TEMPERATURE OF FIRST LAYER (C) 7013.5
55 C**** 5 EARTH WATER OF FIRST LAYER (KG/M**2) 7014.
56 C**** 6 EARTH ICE OF FIRST LAYER (KG/M**2) 7014.5
57 C**** 7 OCEAN ICE TEMPERATURE OF SECOND LAYER (C) 7015.
58 C**** 8 EARTH TEMPERATURE OF SECOND LAYER (C) 7015.5
59 C**** 9 EARTH WATER OF SECOND LAYER (KG/M**2) 7016.
60 C**** 10 EARTH ICE OF SECOND LAYER (KG/M**2) 7016.5
61 C**** 12 LAND ICE SNOW AMOUNT (KG/M**2) 7017.
62 C**** 13 LAND ICE TEMPERATURE OF FIRST LAYER (C) 7017.5
63 C**** 14 LAND ICE TEMPERATURE OF SECOND LAYER (C) 7018.
64 C**** 7018.5
65 C**** VDATA 9 WATER FIELD CAPACITY OF FIRST LAYER (KG/M**2) 7019.
66 C**** 10 WATER FIELD CAPACITY OF SECOND LAYER (KG/M**2) 7019.5
67 C**** 7020.
68 IF(IFIRST.NE.1) GO TO 50 7020.5
69 IFIRST=0 7021.
70 FIO=IO 7021.1
71 JDAYPR=0
72 10 DTSRCE=NDYN*DT 7023.
73 ACE1I=Z1I*RHOI 7023.5
74 AC2OIM=Z2OIM*RHOI 7024.
75 ATRUNC=2.**(-13) 7024.5
76 BYZICX=1./(Z1I+Z2OIX) 7024.6
77 HC1I=ACE1I*SHI 7025.
78 HC2LI=Z2LI*RHOI*SHI 7025.5
79 HC1DE=Z1E*1129950. 7026.
80 HC2DE=Z2E*1129950.+3.5*.125*RHOW*3100. 7026.5
81 DIFFUS=DTSRCE/SDAY 7027.
82 C OTCOR=-.927E18 7027.1
83 c print *,'E0(1,j,1)'
84 c print *,(E0(1,j,1),j=1,JM0)
85 50 ANGLE=TWOPI*JDAY/365. 7027.5
86 DO 55 MONTH=1,12 7027.6
87 IF(JDAY.LE.JDOFM(MONTH+1)) GO TO 56 7027.7
88 55 CONTINUE 7027.8
89 56 CONTINUE 7027.9
90 SINANG=SIN(ANGLE) 7028.
91 COSANG=COS(ANGLE) 7028.5
92 C**** 7029.
93 C**** OUTSIDE LOOP OVER J AND I, EXECUTED ONCE FOR EACH GRID POINT 7029.5
94 C**** 7030.
95 JRPR=0
96 DO 980 J=1,JM 7030.5
97 IMAX=IM 7031.
98 IF((J.EQ.1).OR.(J.EQ.JM)) IMAX=1 7031.5
99 C DELR(J)=(TF68(J)-TOBS(J))*Z1O(1,J)*RHOW*SHW/(365.*SDAY) 7031.6
100 BF1DT=0. 7032.
101 CF1DT=0. 7032.5
102 AOTDT=0. 7033.
103 COTDT=0. 7033.5
104 AEFO=0. 7034.
105 CEFI=0. 7034.5
106 BEDIFS=0. 7035.
107 CEDIFS=0. 7035.5
108 BERUN0=0. 7036.
109 CF2DT=0. 7036.5
110 BERUN2=0. 7037.
111 CERUN2=0. 7037.5
112 AERUN4=0. 7038.
113 CERUN4=0. 7038.5
114 ATG1=0. 7039.
115 BTG1=0. 7039.5
116 CTG1=0. 7040.
117 ATG2=0. 7040.5
118 BTG2=0. 7041.
119 CTG2=0. 7041.5
120 ATG3=0. 7042.
121 AEVAP=0. 7042.5
122 BEVAP=0. 7043.
123 CEVAP=0. 7043.5
124 BDIFS=0. 7044.
125 CDIFS=0. 7044.5
126 AIFO=0. 7045.
127 CIFI=0. 7045.5
128 BRUN0=0. 7046.
129 CRUN0=0. 7046.5
130 BRUN2=0. 7047.
131 CRUN2=0. 7047.5
132 ARUN4=0. 7048.
133 CRUN4=0. 7048.5
134 BWTR1=0. 7049.
135 BACE1=0. 7049.5
136 BWTR2=0. 7050.
137 BACE2=0. 7050.5
138 CACE2=0. 7051.
139 BSNOW=0. 7051.5
140 CSNOW=0. 7052.
141 CICOV=0. 7052.5
142 c DO 960 I=1,IMAX 7053.
143 I=1
144 C**** 7053.5
145 C**** DETERMINE SURFACE CONDITIONS 7054.
146 C**** 7054.5
147 PLAND=FDATA(I,J,2) 7055.
148 PWATER=1.-PLAND 7055.5
149 PLICE=FDATA(I,J,3)*PLAND 7056.
150 PEARTH=PLAND-PLICE 7056.5
151 ROICE=ODATA(I,J,2) 7057.
152 POICE=ROICE*PWATER 7057.5
153 POCEAN=PWATER-POICE 7058.
154 if(POCEAN.LE.1.E-5)then
155 POCEAN=0.
156 POICE=PWATER
157 endif
158 JR=J
159 DXYPJ=DXYP(J) 7059.
160 SNOWS=0. 7059.5
161 WTR1S=0. 7060.
162 ACE1S=0. 7060.5
163 WTR2S=0. 7061.
164 ACE2S=0. 7061.5
165 TG1S=0. 7062.
166 TG2S=0. 7062.5
167 EVAPS=0. 7063.
168 RUN0S=0. 7063.5
169 DIFSS=0. 7064.
170 C**** 7064.5
171 IF(PWATER.LE.0.0) GO TO 400 7065.
172 C**** 7065.5
173 C**** OCEAN 7066.
174 C**** 7066.5
175 EVAP=EVAPOR(I,J,1) 7067.
176 ATG1=ATG1+ODATA(I,J,1)*POCEAN 7067.5
177 TG1S=TG1S+ODATA(I,J,1)*POCEAN 7068.
178 AEVAP=AEVAP+EVAP*POCEAN 7068.5
179 EVAPS=EVAPS+EVAP*POCEAN 7069.
180 AIJ(I,J,61)=AIJ(I,J,61)+EVAP*POCEAN 7069.5
181 ATG2=ATG2+ODATA(I,J,4)*POCEAN 7070.5
182 TG2S=TG2S+ODATA(I,J,4)*POCEAN 7071.
183 ATG3=ATG3+ODATA(I,J,5)*POCEAN 7070.5
184 IF(POICE.GT.0.) GO TO 110 7071.5
185 GO TO 400 7072.
186 C**** 7093.
187 C**** OCEAN ICE 7093.5
188 C**** 7094.
189 110 SNOW=GDATA(I,J,1) 7094.5
190 TG1=GDATA(I,J,3) 7095.
191 TG2=GDATA(I,J,7) 7095.5
192 ACE2=ODATA(I,J,3) 7096.
193 C AIJ(I,J,1)=AIJ(I,J,1)+POICE 7096.5
194 AIJ(I,J,58)=AIJ(I,J,58)+ACE2*POICE 7097.
195 F0DT=E0(I,J,2) 7097.5
196 AIJ(I,J,66)=AIJ(I,J,66)+F0DT*POICE 7098.
197 F1DT=E1(I,J,2) 7098.5
198 EVAP=EVAPOR(I,J,2) 7099.
199 AIJ(I,J,62)=AIJ(I,J,62)+EVAP*POICE 7099.5
200 Z2=ACE2/RHOI 7100.
201 IF(KOCEAN.NE.1) GO TO 120 7100.5
202 WTRI0=WTRO-(SNOW+ACE1I+ACE2) 7101.
203 EIW0=WTRI0*TGW*SHW 7101.5
204 WTRW0=WTRO-ROICE*(SNOW+ACE1I+ACE2) 7102.
205 ENRGW0=WTRW0*TGW*SHW 7102.5
206 RUN0=0. 7103.
207 DIFSI=0. 7103.5
208 EDIFSI=0. 7104.
209 RUN4=-EVAP 7104.5
210 ERUN4=TGW*RUN4*SHW 7105.
211 CERUN4=CERUN4+ERUN4*POICE 7105.5
212 CRUN4=CRUN4+RUN4*POICE 7106.
213 C**** 7106.5
214 C**** OCEAN ICE, CALCULATE TG1 7107.
215 C**** 7107.5
216 120 SNANDI=SNOW+ACE1I-EVAP 7108.
217 C**** 7124.
218 C**** 7125.
219 200 F2DT=DTSRCE*(TG2-TFO)*ALAMI*2./Z2
220 CSNOW=CSNOW+SNOW*POICE 7160.5
221 CTG1=CTG1+TG1*POICE 7161.
222 CTG2=CTG2+TG2*POICE 7161.5
223 CACE2=CACE2+ACE2*POICE 7162.
224 CF1DT=CF1DT+F1DT*POICE 7162.5
225 CF2DT=CF2DT+F2DT*POICE 7163.
226 CEVAP=CEVAP+EVAP*POICE 7163.5
227 CICOV=CICOV+POICE 7164.
228 SNOWS=SNOWS+SNOW*POICE 7164.5
229 TG1S=TG1S+TG1*POICE 7165.
230 ACE1S=ACE1S+ACE1I*POICE 7165.5
231 ACE2S=ACE2S+ACE2*POICE 7166.
232 TG2S=TG2S+TG2*POICE 7166.5
233 EVAPS=EVAPS+EVAP*POICE 7167.
234 C**** 7167.5
235 400 continue
236 C**** 7306.5
237 C**** ACCUMULATE DIAGNOSTICS 7307.
238 C**** 7307.5
239 C**** LONGITUDINALLY INTEGRATED QUANTITIES FOR DIAGJ 7316.
240 CJ(J,15)=CJ(J,15)+CF2DT 7316.5
241 AJ(J,17)=AJ(J,17)+ATG2 7317.
242 CJ(J,17)=CJ(J,17)+CTG2 7318.
243 AJ(J,18)=AJ(J,18)+ATG1 7318.5
244 CJ(J,18)=CJ(J,18)+CTG1 7319.5
245 AJ(J,19)=AJ(J,19)+AEVAP 7320.
246 CJ(J,19)=CJ(J,19)+CEVAP 7321.
247 CJ(J,30)=CJ(J,30)+CICOV 7321.5
248 CCC AJ(J,33)=AJ(J,33)+AOTDT 7322.
249 CCC CJ(J,33)=CJ(J,33)+COTDT 7322.5
250 AJ(J,34)=AJ(J,34)+ATG3 7323.
251 CJ(J,41)=CJ(J,41)+CEDIFS 7324.5
252 CJ(J,42)=CJ(J,42)+CF1DT 7325.5
253 AJ(J,43)=AJ(J,43)+AEFO 7326.
254 CJ(J,43)=CJ(J,43)+(CERUN2+CEFI) 7327.
255 CJ(J,45)=CJ(J,45)+CDIFS 7328.
256 AJ(J,46)=AJ(J,46)+AIFO 7328.5
257 CJ(J,46)=CJ(J,46)+(CRUN2+CIFI) 7329.5
258 AJ(J,47)=AJ(J,47)+ARUN4 7330.
259 CJ(J,47)=CJ(J,47)+CRUN4 7330.5
260 AJ(J,48)=AJ(J,48)+AERUN4 7331.
261 CJ(J,48)=CJ(J,48)+CERUN4 7331.5
262 CJ(J,52)=CJ(J,52)+CACE2 7334.
263 CJ(J,53)=CJ(J,53)+CSNOW 7335.
264 CJ(J,54)=CJ(J,54)+CRUN0 7336.
265 980 CONTINUE 7336.5
266 RETURN 7337.
267 END 7337.5

  ViewVC Help
Powered by ViewVC 1.1.22