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

Annotation of /MITgcm_contrib/jscott/igsm/src/grocean.F

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


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

1 jscott 1.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 GROCEAN(mndriver) 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/WORK1/CONV(IM0,JM0,LM0),PK(IM0,JM0,LM0),PREC(IM0,JM0),
30     & TPREC(IM0,JM0) 4005.5
31     COMMON/WORK3/E0(IO0,JM0,4),E1(IO0,JM0,4),EVAPOR(IO0,JM0,4) 7004.5
32     COMMON/OT/OTA(IO0,JM0),OTB(IO0,JM0),OTC(IO0,JM0) 7005.
33     COMMON/SPEC2/KM,KINC,COEK,C3LAND(IO0,JM0),C3OICE(IO0,JM0) 7005.1
34     * ,C3LICE(IO0,JM0),WMGE(IO0,JM0),TSSFC(1,JM0,4) 7005.2
35     common/qfl/QFLUX(JM0,0:13),ZOAV(JM0),QFLUXT(JM0)
36     COMMON/OLDZO/Z1OOLD(IO0,JM0)
37     DIMENSION FWATER(JM0),TOBS(JM0),TF68(JM0),DELR(JM0) 7005.3
38     DATA SHV/0./,SHW/4185./,SHI/2060./,RHOW/1000./,RHOI/916.6/, 7005.9
39     * ALAMI/2.1762/,TFO/-1.56/,Z1I/.1/,Z2LI/2.9/,Z1E/.1/,Z2E/4./ 7006.
40     INTEGER JDOFM(13) 7006.1
41     DATA JDOFM/0,31,59,90,120,151,181,212,243,273,304,334,365/ 7006.2
42     DATA Z2OIM/0.9/,Z2OIX/4.9/ 7006.5
43     DATA TTRUNC/0./ 7007.
44     DATA IFIRST/1/ 7007.5
45     C**** 7008.
46     C**** FDATA 2 LAND COVERAGE (1) 7008.5
47     C**** 3 RATIO OF LAND ICE COVERAGE TO LAND COVERAGE (1) 7009.
48     C**** 7009.5
49     C**** ODATA 1 OCEAN TEMPERATURE (C) 7010.
50     C**** 2 RATIO OF OCEAN ICE COVERAGE TO WATER COVERAGE (1) 7010.5
51     C**** 3 OCEAN ICE AMOUNT OF SECOND LAYER (KG/M**2) 7011.
52     C**** 7011.5
53     C**** GDATA 1 OCEAN ICE SNOW AMOUNT (KG/M**2) 7012.
54     C**** 2 EARTH SNOW AMOUNT (KG/M**2) 7012.5
55     C**** 3 OCEAN ICE TEMPERATURE OF FIRST LAYER (C) 7013.
56     C**** 4 EARTH TEMPERATURE OF FIRST LAYER (C) 7013.5
57     C**** 5 EARTH WATER OF FIRST LAYER (KG/M**2) 7014.
58     C**** 6 EARTH ICE OF FIRST LAYER (KG/M**2) 7014.5
59     C**** 7 OCEAN ICE TEMPERATURE OF SECOND LAYER (C) 7015.
60     C**** 8 EARTH TEMPERATURE OF SECOND LAYER (C) 7015.5
61     C**** 9 EARTH WATER OF SECOND LAYER (KG/M**2) 7016.
62     C**** 10 EARTH ICE OF SECOND LAYER (KG/M**2) 7016.5
63     C**** 12 LAND ICE SNOW AMOUNT (KG/M**2) 7017.
64     C**** 13 LAND ICE TEMPERATURE OF FIRST LAYER (C) 7017.5
65     C**** 14 LAND ICE TEMPERATURE OF SECOND LAYER (C) 7018.
66     C**** 7018.5
67     C**** VDATA 9 WATER FIELD CAPACITY OF FIRST LAYER (KG/M**2) 7019.
68     C**** 10 WATER FIELD CAPACITY OF SECOND LAYER (KG/M**2) 7019.5
69     C**** 7020.
70     IF(IFIRST.NE.1) GO TO 50 7020.5
71     IFIRST=0 7021.
72     FIO=IO 7021.1
73     JDAYPR=0
74     IF(KOCEAN.NE.1) GO TO 10 7021.5
75     DO 30 ii=1,12
76     DO 30 J=1,JM 7022.88
77     SUMJ=SUMJ+QFLUX(J,ii)*DXYP(J)/12.
78     30 continue
79     SUMJ=SUMJ/AREAG 7022.9
80     WRITE(6,31) SUMJ 7022.91
81     31 FORMAT(1X,'GLOBAL ANNUAL MEAN QFLUX ',E15.4)
82     10 DTSRCE=NDYN*DT 7023.
83     ACE1I=Z1I*RHOI 7023.5
84     AC2OIM=Z2OIM*RHOI 7024.
85     ATRUNC=2.**(-13) 7024.5
86     BYZICX=1./(Z1I+Z2OIX) 7024.6
87     HC1I=ACE1I*SHI 7025.
88     HC2LI=Z2LI*RHOI*SHI 7025.5
89     HC1DE=Z1E*1129950. 7026.
90     HC2DE=Z2E*1129950.+3.5*.125*RHOW*3100. 7026.5
91     DIFFUS=DTSRCE/SDAY 7027.
92     C OTCOR=-.927E18 7027.1
93     print *,'From GROCEAN PREC over ocean'
94     print *,'E0(1,j,1)'
95     print *,(E0(1,j,1),j=1,JM0)
96     50 ANGLE=TWOPI*JDAY/365. 7027.5
97     DO 55 MONTH=1,12 7027.6
98     IF(JDAY.LE.JDOFM(MONTH+1)) GO TO 56 7027.7
99     55 CONTINUE 7027.8
100     56 CONTINUE 7027.9
101     SINANG=SIN(ANGLE) 7028.
102     COSANG=COS(ANGLE) 7028.5
103     C**** 7029.
104     C**** OUTSIDE LOOP OVER J AND I, EXECUTED ONCE FOR EACH GRID POINT 7029.5
105     C**** 7030.
106     JRPR=0
107     DO 980 J=1,JM 7030.5
108     if(J.eq.-3.and.TAU.ge. 17520.00)then
109     print *,'ODATA(1,J,1)=',ODATA(1,J,1)
110     print *,'ODATA(1,J,2)=',ODATA(1,J,2)
111     print *,'ODATA(1,J,3)=',ODATA(1,J,3)
112     endif
113     IMAX=IM 7031.
114     IF((J.EQ.1).OR.(J.EQ.JM)) IMAX=1 7031.5
115     BF1DT=0. 7032.
116     CF1DT=0. 7032.5
117     AOTDT=0. 7033.
118     COTDT=0. 7033.5
119     AEFO=0. 7034.
120     CEFI=0. 7034.5
121     BEDIFS=0. 7035.
122     CEDIFS=0. 7035.5
123     BERUN0=0. 7036.
124     CF2DT=0. 7036.5
125     BERUN2=0. 7037.
126     CERUN2=0. 7037.5
127     AERUN4=0. 7038.
128     CERUN4=0. 7038.5
129     ATG1=0. 7039.
130     BTG1=0. 7039.5
131     CTG1=0. 7040.
132     ATG2=0. 7040.5
133     BTG2=0. 7041.
134     CTG2=0. 7041.5
135     ATG3=0. 7042.
136     AEVAP=0. 7042.5
137     BEVAP=0. 7043.
138     CEVAP=0. 7043.5
139     BDIFS=0. 7044.
140     CDIFS=0. 7044.5
141     AIFO=0. 7045.
142     CIFI=0. 7045.5
143     BRUN0=0. 7046.
144     CRUN0=0. 7046.5
145     BRUN2=0. 7047.
146     CRUN2=0. 7047.5
147     ARUN4=0. 7048.
148     CRUN4=0. 7048.5
149     BWTR1=0. 7049.
150     BACE1=0. 7049.5
151     BWTR2=0. 7050.
152     BACE2=0. 7050.5
153     CACE2=0. 7051.
154     BSNOW=0. 7051.5
155     CSNOW=0. 7052.
156     CICOV=0. 7052.5
157     DO 960 I=1,IMAX 7053.
158     C**** 7053.5
159     C**** DETERMINE SURFACE CONDITIONS 7054.
160     C**** 7054.5
161     PLAND=FDATA(I,J,2) 7055.
162     PWATER=1.-PLAND 7055.5
163     PLICE=FDATA(I,J,3)*PLAND 7056.
164     PEARTH=PLAND-PLICE 7056.5
165     ROICE=ODATA(I,J,2) 7057.
166     POICE=ROICE*PWATER 7057.5
167     POCEAN=PWATER-POICE 7058.
168     if(POCEAN.LE.1.E-5)then
169     POCEAN=0.
170     POICE=PWATER
171     endif
172     JR=J
173     DXYPJ=DXYP(J) 7059.
174     SNOWS=0. 7059.5
175     WTR1S=0. 7060.
176     ACE1S=0. 7060.5
177     WTR2S=0. 7061.
178     ACE2S=0. 7061.5
179     TG1S=0. 7062.
180     TG2S=0. 7062.5
181     EVAPS=0. 7063.
182     RUN0S=0. 7063.5
183     DIFSS=0. 7064.
184     C**** CALCULATE PRECIPITATION HEAT FLUX (FALLS AT 0 DEGREES CENTIGRADE) 4044.5
185     PRCP=PREC(I,J) 4045.
186     if (fland.lt.1.0)then
187     PRCP=PRCP*(1.-fland*prlnd2total(j,mndriver))
188     & /(1.-fland)
189     endif
190     TPRCP=TPREC(I,J) 4045.5
191     IF(TPRCP.LT.0.) GO TO 530 4046.
192     C EPRCP=PRCP*TPRCP*SHW 4046.5
193     EPRCP=0. 4047.
194     ENRGP=EPRCP 4047.5
195     GO TO 550 4048.
196     C EPRCP=PRCP*TPRCP*SHI 4048.5
197     530 EPRCP=0. 4049.
198     ENRGP=EPRCP-PRCP*LHM 4049.5
199     AIJ(I,J,70)=AIJ(I,J,70)+PRCP 4050.
200     550 CONTINUE
201     c if(TAU.ge.17520.0.and.TAU.lt.17524.0)then
202     c print *,'GROCEAN TAU=',TAU
203     c print *,'PRCP=',PRCP,' TPRCP=',TPRCP
204     c print *,'ENRGP=',ENRGP
205     c endif
206     C****
207     C**** 7064.5
208     IF(PWATER.LE.0.0) GO TO 400 7065.
209     C**** 7065.5
210     C**** OCEAN 7066.
211     C**** 7066.5
212     EVAP=EVAPOR(I,J,1) 7067.
213     ATG1=ATG1+ODATA(I,J,1)*POCEAN 7067.5
214     TG1S=TG1S+ODATA(I,J,1)*POCEAN 7068.
215     AEVAP=AEVAP+EVAP*POCEAN 7068.5
216     EVAPS=EVAPS+EVAP*POCEAN 7069.
217     AIJ(I,J,61)=AIJ(I,J,61)+EVAP*POCEAN 7069.5
218     IF(KOCEAN.EQ.1) GO TO 60 7070.
219     ATG2=ATG2+ODATA(I,J,1)*POCEAN 7070.5
220     TG2S=TG2S+ODATA(I,J,1)*POCEAN 7071.
221     IF(POICE.GT.0.) GO TO 110 7071.5
222     GO TO 400 7072.
223     60 TGW=ODATA(I,J,1) 7072.5
224     OTDT=DTSRCE*QFLUXT(J)
225     AIJ(I,J,57)=AIJ(I,J,57)+TGW 7073.
226     WTRO=Z1O(I,J)*RHOW 7073.5
227     ENRGO0=WTRO*TGW*SHW 7074.
228     EOFRZ=WTRO*TFO*SHW 7074.5
229     ENRGFO=0.
230     ENRGO=0.
231     ACEFO=0.
232     if(POCEAN.LE.0.0)go to 100
233     F0DT=E0(I,J,1) 7075.
234     AIJ(I,J,65)=AIJ(I,J,65)+F0DT*POCEAN 7075.5
235     ATG2=ATG2+ODATA(I,J,4)*POCEAN 7076.5
236     TG2S=TG2S+ODATA(I,J,4)*POCEAN 7077.
237     ATG3=ATG3+ODATA(I,J,5)*POCEAN 7077.5
238     AOTDT=AOTDT+OTDT*POCEAN 7078.
239     CPRE RUN4=-EVAP 7078.5
240     RUN4=PRCP-EVAP 7078.5
241     if(J.eq.-3.and.TAU.ge. 17520.00)then
242     print *,'EVAP=',EVAP,' PRCP=',PRCP
243     endif
244     ERUN4=RUN4*TGW*SHW 7079.
245     AERUN4=AERUN4+ERUN4*POCEAN 7079.5
246     ARUN4=ARUN4+RUN4*POCEAN 7080.
247     CPRE ENRGO=F0DT+OTDT-ERUN4 7080.5
248     ENRGO=F0DT+OTDT+ENRGP-ERUN4 7080.5
249     IF(ENRGO0+ENRGO.LT.EOFRZ) GO TO 80 7081.
250     C**** FLUXES RECOMPUTE TGO WHICH IS ABOVE FREEZING POINT FOR OCEAN 7081.5
251     ENRGFO=0. 7082.
252     ACEFO=0. 7082.5
253     IF(ROICE.GT.0.) GO TO 100 7083.
254     ODATA(I,J,1)=TGW+(ENRGO/(WTRO*SHW)+TTRUNC) 7083.5
255     if(J.eq.-3.and.TAU.ge. 17520.00)then
256     print *,'1 ODATA(i,j,1)=',ODATA(i,j,1)
257     print *,'TGW=',TGW,' WTRO=',WTRO
258     print *,'RHOW=',RHOW,' Z1O(i,j)=',Z1O(i,j)
259     print *,'SHW=',SHW
260     endif
261     GO TO 400 7084.
262     C**** FLUXES COOL TGO TO FREEZING POINT FOR OCEAN AND FORM SOME ICE 7084.5
263     80 ACEFO=(ENRGO0+ENRGO-EOFRZ)/(TFO*(SHI-SHW)-LHM) 7085.
264     ENRGFO=ACEFO*(TFO*SHI-LHM) 7085.5
265     AEFO=AEFO-ENRGFO*POCEAN 7086.
266     AIFO=AIFO-ACEFO*POCEAN 7086.5
267     IF(ROICE.GT.0.) GO TO 100 7087.
268     ROICE=ACEFO/(ACE1I+AC2OIM) 7087.5
269     ODATA(I,J,1)=TFO 7088.
270     c if(J.eq.8.and.TAU.ge. 17520.00)then
271     c print *,'2 ODATA(i,j,1)=',ODATA(i,j,1)
272     c endif
273     if(J.eq.-3.and.TAU.ge. 17520.00)then
274     print *,'ROICE==',ROICE
275     endif
276     ODATA(I,J,2)=ROICE 7088.5
277     GDATA(I,J,1)=0. 7089.
278     GDATA(I,J,3)=TFO 7089.5
279     GDATA(I,J,7)=TFO 7090.
280     ODATA(I,J,3)=AC2OIM 7090.5
281     GO TO 400 7091.
282     C**** 7091.5
283     100 ACE2F=0. 7092.
284     ACE2M=0. 7092.5
285     C**** 7093.
286     C**** OCEAN ICE 7093.5
287     C**** 7094.
288     110 SNOW=GDATA(I,J,1) 7094.5
289     TG1=GDATA(I,J,3) 7095.
290     TG2=GDATA(I,J,7) 7095.5
291     ACE2=ODATA(I,J,3) 7096.
292     C AIJ(I,J,1)=AIJ(I,J,1)+POICE 7096.5
293     AIJ(I,J,58)=AIJ(I,J,58)+ACE2*POICE 7097.
294     F0DT=E0(I,J,2) 7097.5
295     AIJ(I,J,66)=AIJ(I,J,66)+F0DT*POICE 7098.
296     F1DT=E1(I,J,2) 7098.5
297     EVAP=EVAPOR(I,J,2) 7099.
298     AIJ(I,J,62)=AIJ(I,J,62)+EVAP*POICE 7099.5
299     Z2=ACE2/RHOI 7100.
300     IF(KOCEAN.NE.1) GO TO 120 7100.5
301     WTRI0=WTRO-(SNOW+ACE1I+ACE2) 7101.
302     EIW0=WTRI0*TGW*SHW 7101.5
303     WTRW0=WTRO-ROICE*(SNOW+ACE1I+ACE2) 7102.
304     ENRGW0=WTRW0*TGW*SHW 7102.5
305     RUN0=0. 7103.
306     DIFSI=0. 7103.5
307     EDIFSI=0. 7104.
308     RUN4=-EVAP 7104.5
309     ERUN4=TGW*RUN4*SHW 7105.
310     CERUN4=CERUN4+ERUN4*POICE 7105.5
311     CRUN4=CRUN4+RUN4*POICE 7106.
312     C**** 7106.5
313     C**** OCEAN ICE, CALCULATE TG1 7107.
314     C**** 7107.5
315     120 SNANDI=SNOW+ACE1I-EVAP 7108.
316     if(TPRCP.lt.0.0)then
317     SNANDI=SNANDI+PRCP
318     endif
319     HC1=SNANDI*SHI 7108.5
320     ENRG1=F0DT+EVAP*(TG1*SHI-LHM)-F1DT 7109.
321     C PRE
322     ENRG1=ENRG1+ENRGP
323     if(J.eq.-3.and.TAU.ge. 17520.00)then
324     print *,'ENRG1=',ENRG1,' ENRGP=',ENRGP
325     print *,'ENRGEV=',EVAP*(TG1*SHI-LHM)
326     print *,'F0DT=',F0DT,' F1DT=',F1DT
327     endif
328     C PRE
329     IF(ENRG1.LE.-TG1*HC1) GO TO 130 7109.5
330     C**** FLUXES HEAT UP TG1 TO FREEZING POINT AND MELT SOME SNOW AND ICE 7110.
331     RUN0=(ENRG1+TG1*HC1)/LHM 7110.5
332     TG1=0. 7111.
333     SNANDI=SNANDI-RUN0 7111.5
334     CRUN0=CRUN0+RUN0*POICE 7112.
335     RUN0S=RUN0S+RUN0*POICE 7112.5
336     GO TO 140 7113.
337     C**** FLUXES RECOMPUTE TG1 WHICH IS BELOW FREEZING POINT 7113.5
338     130 TG1=TG1+ENRG1/HC1 7114.
339     140 IF(SNANDI.GE.ACE1I) GO TO 160 7114.5
340     C**** SOME ICE HAS MELTED OR EVAPORATED, TAKE IT FROM G2 7115.
341     SNOW=0. 7115.5
342     DIFS=SNANDI-ACE1I 7116.
343     TG1=(TG1*SNANDI-TG2*DIFS)/ACE1I 7116.5
344     EDIFS=DIFS*(TG2*SHI-LHM) 7117.
345     IF(KOCEAN.EQ.1) GO TO 150 7117.5
346     CEDIFS=CEDIFS+EDIFS*POICE 7118.
347     CDIFS=CDIFS+DIFS*POICE 7118.5
348     CERUN2=CERUN2+EDIFS*POICE 7119.
349     CRUN2=CRUN2+DIFS*POICE 7119.5
350     DIFSS=DIFSS+DIFS*POICE 7120.
351     GO TO 200 7120.5
352     150 ACE2=ACE2+(DIFS+ATRUNC) 7121.
353     DIFSI=ROICE*DIFS 7121.5
354     EDIFSI=ROICE*EDIFS 7122.
355     GO TO 210 7122.5
356     160 SNOW=SNANDI-ACE1I 7123.
357     C FROM PREC
358     if(SNOW.GT.ACE1I)then
359     C**** SNOW IS COMPACTED INTO ICE, ICE FROM LAYER 1 GOES DOWN TO LAYER 2
360     DIFS=SNOW-.9*ACE1I 4095.5
361     SNOW=.9*ACE1I 4096.
362     EDIFS=DIFS*(TG1*SHI-LHM) 4096.5
363     IF(KOCEAN.EQ.0) THEN
364     ERUN2=DIFS*(TG2*SHI-LHM) 4097.5
365     CEDIFS=CEDIFS+EDIFS*POICE 4098.5
366     CDIFS=CDIFS+DIFS*POICE 4099.
367     DIFSS=DIFSS+DIFS*POICE 4099.5
368     CERUN2=CERUN2+ERUN2*POICE 4100.
369     CRUN2=CRUN2+DIFS*POICE 4100.5
370     ENDIF
371     C**** DIFFUSION CHANGES ICE AMOUNT AND TEMPERATURE OF SECOND LAYER 4101.5
372     TG2=TG2+(TG1-TG2)*DIFS/(ACE2+DIFS)
373     endif
374     C FROM PREC
375     IF(KOCEAN.EQ.1) GO TO 210 7123.5
376     C**** 7124.
377     C**** OCEAN ICE, CALCULATE TG2 7124.5
378     C**** 7125.
379     200 F2DT=DTSRCE*(TG2-TFO)*ALAMI*2./Z2
380     TG2=TG2+(F1DT-F2DT)/(ACE2*SHI) 7126.
381     GO TO 370 7126.5
382     210 F2DT=DTSRCE*(TG2-TGW)*ALAMI*2./Z2
383     ENRG2=F1DT-F2DT 7127.5
384     ENRGIW=F2DT+OTDT-ERUN4 7128.
385     ENRGFI=0. 7128.5
386     HC2=ACE2*SHI 7129.
387     IF(ENRG2.LE.-TG2*HC2) GO TO 220 7129.5
388     C**** FLUXES HEAT UP TG2 TO FREEZING POINT AND MELT SOME ICE 7130.
389     ACE2M=(ENRG2+TG2*HC2)/LHM 7130.5
390     TG2=0. 7131.
391     ACE2=ACE2+(-ACE2M+ATRUNC) 7131.5
392     AIFI=AIFI+ACE2M*POICE 7132.
393     GO TO 300 7132.5
394     C**** CALCULATE THE ENERGY OF THE WATER BELOW THE ICE AT THE FREEZING 7133.
395     C**** POINT AND TEST WHETHER NEW ICE MUST BE FORMED 7133.5
396     220 WTRI1=WTRO-(SNOW+ACE1I+ACE2) 7134.
397     EFIW=WTRI1*TFO*SHW 7134.5
398     IF(EIW0+ENRGIW.LT.EFIW) GO TO 240 7135.
399     C**** FLUXES RECOMPUTE TG2, THE WATER BELOW THE ICE IS ABOVE FREEZING 7135.5
400     TG2=TG2+ENRG2/HC2 7136.
401     GO TO 300 7136.5
402     C**** FLUXES WOULD COOL TGIW TO BELOW FREEZING, FREEZE SOME MORE ICE 7137.
403     240 ACE2F=(EIW0+ENRGIW-EFIW)/(TFO*(SHI-SHW)-LHM) 7137.5
404     ENRGFI=ACE2F*(TFO*SHI-LHM) 7138.
405     CEFI=CEFI-ENRGFI*POICE 7138.5
406     CIFI=CIFI-ACE2F*POICE 7139.
407     ACE2=ACE2+(ACE2F+ATRUNC) 7139.5
408     TG2=TG2+(ENRG2+ACE2F*(TFO-TG2)*SHI)/(ACE2*SHI) 7140.
409     C**** 7140.5
410     C**** CALCULATE COMPOSITE TEMPERATURES AND REDISTRIBUTION OF ICE 7141.
411     C**** 7141.5
412     300 WTRW=WTRW0-(1.-ROICE)*ACEFO+ROICE*(RUN0-RUN4+ACE2M-ACE2F) 7142.
413     ENRGW=ENRGW0+(1.-ROICE)*(ENRGO-ENRGFO)+ROICE*(ENRGIW-ENRGFI) 7142.5
414     TGW=ENRGW/(WTRW*SHW)+TTRUNC 7143.
415     if(J.eq.-3.and.TAU.ge. 17520.00)then
416     print *,' ENRGW=',ENRGW
417     print *,' ENRGW0=',ENRGW0
418     print *,' ENRGO=',ENRGO
419     print *,' ENRGFO=',ENRGFO
420     print *,' ENRGIW=',ENRGIW
421     print *,' ENRGFI=',ENRGFI
422     print *,' ROICE=',ROICE
423     endif
424     IF(ACEFO.LE.0.) GO TO 310 7143.5
425     C**** NEW ICE FORMED ON THE OCEAN SURFACE 7144.
426     DRO=(1.-ROICE)*ACEFO/(ACE1I+AC2OIM) 7144.5
427     TG1=TG1+(TFO-TG1)*DRO*ACE1I/(ROICE*(SNOW+ACE1I)+DRO*ACE1I) 7145.
428     TG2=TG2+(TFO-TG2)*DRO*AC2OIM/(ROICE*ACE2+DRO*AC2OIM) 7145.5
429     SNOW=SNOW*ROICE/(ROICE+DRO) 7146.
430     ROICE=ROICE+DRO 7146.5
431     ACE2=ACE2+(DRO*(AC2OIM-ACE2)/ROICE+ATRUNC) 7147.
432     310 IF(ACE2.GE.AC2OIM) GO TO 320 7147.5
433     C**** ICE IS TO THIN, COMPRESS IT HORIZONTALLY 7148.
434     ROICEN=ROICE*(ACE1I+ACE2)/(ACE1I+AC2OIM) 7148.5
435     GO TO 340 7149.
436     320 OPNOCN=.06*(RHOI/(ACE1I+ACE2)-BYZICX) 7149.5
437     IF(1.-ROICE.GT.OPNOCN) GO TO 360 7149.6
438     C**** TOO LITTLE OPEN OCEAN, COMPRESS THE ICE HORIZONTALLY 7150.
439     ROICEN=1.-OPNOCN 7150.5
440     340 DRI=ROICE-ROICEN 7151.
441     DIFS=DRI*ACE1I/ROICE 7151.5
442     SNOW=SNOW*(ROICE/ROICEN) 7152.
443     TG2=TG2+(TG1-TG2)*DIFS/(ACE2+DIFS) 7152.5
444     ACE2=ACE2+(DRI*(ACE1I+ACE2)/ROICEN+ATRUNC) 7153.
445     EDIFSI=EDIFSI+ROICE*DIFS*(TG1*SHI-LHM) 7153.5
446     DIFSI=DIFSI+ROICE*DIFS 7154.
447     ROICE=ROICEN 7154.5
448     C**** RESAVE PROGNOSTIC QUANTITIES 7155.
449     360 ODATA(I,J,1)=TGW 7155.5
450     if(J.eq.-3.and.TAU.ge. 17520.00)then
451     print *,'3 ODATA(i,j,1)=',ODATA(i,j,1)
452     endif
453     if(ROICE.lt.0.0.or.ACE2.lt.AC2OIM)then
454     print *,'From ground'
455     print *,'J=',' ROICE=',ROICE,' ACE2=',ACE2
456     stop
457     endif
458     if(J.eq.-3.and.TAU.ge. 17520.00)then
459     print *,'after 360 ROICE==',ROICE
460     print *,' TG1=',TG1,' TG2=',TG2
461     endif
462     ODATA(I,J,2)=ROICE 7156.
463     ODATA(I,J,3)=ACE2 7156.5
464     COTDT=COTDT+OTDT*POICE 7157.
465     CEDIFS=CEDIFS+EDIFSI*PWATER 7157.5
466     CDIFS=CDIFS+DIFSI*PWATER 7158.
467     DIFSS=DIFSS+DIFSI*PWATER 7158.5
468     370 GDATA(I,J,1)=SNOW 7159.
469     GDATA(I,J,3)=TG1 7159.5
470     GDATA(I,J,7)=TG2 7160.
471     CSNOW=CSNOW+SNOW*POICE 7160.5
472     CTG1=CTG1+TG1*POICE 7161.
473     CTG2=CTG2+TG2*POICE 7161.5
474     CACE2=CACE2+ACE2*POICE 7162.
475     CF1DT=CF1DT+F1DT*POICE 7162.5
476     CF2DT=CF2DT+F2DT*POICE 7163.
477     CEVAP=CEVAP+EVAP*POICE 7163.5
478     CICOV=CICOV+POICE 7164.
479     SNOWS=SNOWS+SNOW*POICE 7164.5
480     TG1S=TG1S+TG1*POICE 7165.
481     ACE1S=ACE1S+ACE1I*POICE 7165.5
482     ACE2S=ACE2S+ACE2*POICE 7166.
483     TG2S=TG2S+TG2*POICE 7166.5
484     EVAPS=EVAPS+EVAP*POICE 7167.
485     C**** 7167.5
486     400 continue
487     AIJ(I,J,7)=AIJ(I,J,7)+(WTR1+ACE1)/WFC1 7305.5
488     AIJ(I,J,50)=AIJ(I,J,50)+(WTR1+ACE1+WTR2+ACE2) 7306.
489     C**** 7306.5
490     C**** ACCUMULATE DIAGNOSTICS 7307.
491     C**** 7307.5
492     C**** QUANTITIES ACCUMULATED FOR LATITUDE-LONGITUDE MAPS IN DIAGIJ 7314.
493     950 AIJ(I,J,6)=AIJ(I,J,6)+EVAPS 7314.5
494     AIJ(I,J,28)=AIJ(I,J,28)+TG1S 7315.
495     960 CONTINUE 7315.5
496     C**** LONGITUDINALLY INTEGRATED QUANTITIES FOR DIAGJ 7316.
497     CJ(J,15)=CJ(J,15)+CF2DT 7316.5
498     AJ(J,17)=AJ(J,17)+ATG2 7317.
499     CJ(J,17)=CJ(J,17)+CTG2 7318.
500     AJ(J,18)=AJ(J,18)+ATG1 7318.5
501     CJ(J,18)=CJ(J,18)+CTG1 7319.5
502     AJ(J,19)=AJ(J,19)+AEVAP 7320.
503     CJ(J,19)=CJ(J,19)+CEVAP 7321.
504     CJ(J,30)=CJ(J,30)+CICOV 7321.5
505     CCC AJ(J,33)=AJ(J,33)+AOTDT 7322.
506     CCC CJ(J,33)=CJ(J,33)+COTDT 7322.5
507     AJ(J,34)=AJ(J,34)+ATG3 7323.
508     CJ(J,41)=CJ(J,41)+CEDIFS 7324.5
509     CJ(J,42)=CJ(J,42)+CF1DT 7325.5
510     AJ(J,43)=AJ(J,43)+AEFO 7326.
511     CJ(J,43)=CJ(J,43)+(CERUN2+CEFI) 7327.
512     CJ(J,45)=CJ(J,45)+CDIFS 7328.
513     AJ(J,46)=AJ(J,46)+AIFO 7328.5
514     CJ(J,46)=CJ(J,46)+(CRUN2+CIFI) 7329.5
515     AJ(J,47)=AJ(J,47)+ARUN4 7330.
516     CJ(J,47)=CJ(J,47)+CRUN4 7330.5
517     AJ(J,48)=AJ(J,48)+AERUN4 7331.
518     CJ(J,48)=CJ(J,48)+CERUN4 7331.5
519     CJ(J,52)=CJ(J,52)+CACE2 7334.
520     CJ(J,53)=CJ(J,53)+CSNOW 7335.
521     CJ(J,54)=CJ(J,54)+CRUN0 7336.
522     c if(J.eq.8.and.TAU.ge. 17520.00)then
523     c print *,'4 ODATA(1,j,1)=',ODATA(1,j,1)
524     c endif
525     980 CONTINUE 7336.5
526     RETURN 7337.
527     END 7337.5

  ViewVC Help
Powered by ViewVC 1.1.22