/[MITgcm]/MITgcm/pkg/seaice/budget.F
ViewVC logotype

Diff of /MITgcm/pkg/seaice/budget.F

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

revision 1.1 by heimbach, Mon Nov 11 22:01:21 2002 UTC revision 1.2 by heimbach, Tue Nov 12 20:47:27 2002 UTC
# Line 0  Line 1 
1    C
2    
3    #include "SEAICE_OPTIONS.h"
4    
5    CStartOfInterface
6          SUBROUTINE BUDGET(UG, TICE, HICE1, FICE1, KOPEN, bi, bj)
7    C     /==========================================================\
8    C     | SUBROUTINE budget                                        |
9    C     | o Calculate ice growth rate                              |
10    C     |==========================================================|
11    C     \==========================================================/
12          IMPLICIT NONE
13    
14    C     === Global variables ===
15    #include "SIZE.h"
16    #include "EEPARAMS.h"
17    #include "SEAICE_PARAMS.h"
18    #include "SEAICE_FFIELDS.h"
19    
20    C     Subset of variables from SEAICE.h
21          _RL HEFF       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,3,nSx,nSy)
22          _RL HSNOW      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,  nSx,nSy)
23          _RL QNETO      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,  nSx,nSy)
24          _RL QNETI      (1-OLx:sNx+OLx,1-OLy:sNy+OLy,  nSx,nSy)
25          _RL QSWO       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,  nSx,nSy)
26          _RL QSWI       (1-OLx:sNx+OLx,1-OLy:sNy+OLy,  nSx,nSy)
27          COMMON/TRANS/HEFF,HSNOW
28          COMMON/QFLUX/QNETO,QNETI,QSWO,QSWI
29    
30    C     === Routine arguments ===
31          _RL UG         (1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
32          _RL TICE       (1-OLx:sNx+OLx, 1-OLy:sNy+OLy,  nSx,nSy)
33          _RL HICE1      (1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
34          _RL FICE1       (1-OLx:sNx+OLx, 1-OLy:sNy+OLy,  nSx,nSy)
35          INTEGER KOPEN
36          INTEGER bi, bj
37    CEndOfInterface
38    
39    #ifdef ALLOW_SEAICE
40    
41    C     === Local variables ===
42    C     i,j,k,bi,bj - Loop counters
43    
44          INTEGER i, j
45          INTEGER ITER
46          _RL  QS1, C1, C2, C3, C4, C5, TB, D1, D1W, D1I, D3
47          _RL  TMELT, TMELTP, XKI, XKS, HCUT, ASNOW, XIO
48    
49          _RL HICE       (1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
50          _RL ALB        (1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
51          _RL A1         (1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
52          _RL A2         (1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
53          _RL A3         (1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
54          _RL B          (1-OLx:sNx+OLx, 1-OLy:sNy+OLy)
55    
56    C IF KOPEN LT 0 THAN DO OPEN WATER BUDGET
57    C NOW DEFINE ASSORTED CONSTANTS
58    C SATURATION VAPOR PRESSURE CONSTANT
59          QS1=0.622D+00/1013.0D+00
60    C MAYKUTS CONSTANTS FOR SAT. VAP. PRESSURE TEMP. POLYNOMIAL
61          C1=2.7798202D-06
62          C2=-2.6913393D-03
63          C3=0.97920849D+00
64          C4=-158.63779D+00
65          C5=9653.1925D+00
66    C FREEZING TEMPERATURE OF SEAWATER
67          TB=271.2D+00
68    C SENSIBLE HEAT CONSTANT
69          D1=SEAICE_sensHeat
70    C WATER LATENT HEAT CONSTANT
71          D1W=SEAICE_latentWater
72    C ICE LATENT HEAT CONSTANT
73          D1I=SEAICE_latentIce
74    C STEFAN BOLTZMAN CONSTANT TIMES 0.97 EMISSIVITY
75          D3=SEAICE_emissivity
76    C MELTING TEMPERATURE OF ICE
77          TMELT=273.16D+00
78          TMELTP=273.159D+00
79    C ICE CONDUCTIVITY
80          XKI=SEAICE_iceConduct
81    C SNOW CONDUCTIVITY
82          XKS=SEAICE_snowConduct
83    C CUTOFF SNOW THICKNESS
84          HCUT=SEAICE_snowThick
85    C PENETRATION SHORTWAVE RADIATION FACTOR
86          XIO=SEAICE_shortwave
87    
88          DO J=1,sNy
89           DO I=1,sNx
90            TICE(I,J,bi,bj)=MIN(273.16+MAX_TICE,TICE(I,J,bi,bj))
91            TAIR(I,J,bi,bj)=MAX(273.16+MIN_TAIR,TAIR(I,J,bi,bj))
92            FLO(I,J,bi,bj)=MAX(MIN_FLO,FLO(I,J,bi,bj))
93           ENDDO
94          ENDDO
95    
96    C NOW DECIDE IF OPEN WATER OR ICE
97          IF(KOPEN.LE.0) THEN
98    
99    C NOW DETERMINE OPEN WATER HEAT BUD. ASSUMING TICE=WATER TEMP.
100    C WATER ALBEDO IS ASSUMED TO BE 0.1                      
101             DO J=1,sNy
102              DO I=1,sNx
103               ALB(I,J)=SEAICE_waterAlbedo                                
104               A1(I,J)=(1.0-ALB(I,J))*FSH(I,J,bi,bj)+FLO(I,J,bi,bj)
105         &            +D1*UG(I,J)*TAIR(I,J,bi,bj)+D1W*UG(I,J)*QA(I,J,bi,bj)
106               B(I,J)=QS1*6.11D+00*EXP(17.2694D+00*(TICE(I,J,bi,bj)-TMELT)
107         &           /(TICE(I,J,bi,bj)-TMELT+237.3D+00))                  
108               A2(I,J)=-D1*UG(I,J)*TICE(I,J,bi,bj)-D1W*UG(I,J)*B(I,J)
109         &            -D3*(TICE(I,J,bi,bj)**4)
110               FICE1(I,J,bi,bj)=-A1(I,J)-A2(I,J)    
111               QSWO(I,J,bi,bj)=-(1.0-ALB(I,J))*FSH(I,J,bi,bj)
112               QNETO(I,J,bi,bj)=FICE1(I,J,bi,bj)-QSWO(I,J,bi,bj)
113              ENDDO
114             ENDDO
115    
116          ELSE
117    
118    C COME HERE IF ICE COVER                              
119    C FIRST PUT MINIMUM ON ICE THICKNESS              
120             DO J=1,sNy
121              DO I=1,sNx
122               HICE(I,J)=MAX(HICE1(I,J),0.05D+00)
123               HICE(I,J)=MIN(HICE(I,J),9.0D+00)
124              ENDDO
125             ENDDO
126    C NOW DECIDE ON ALBEDO                      
127             DO J=1,sNy
128              DO I=1,sNx
129               ALB(I,J)=0.75E+00
130               IF(TICE(I,J,bi,bj).GT.TMELTP) ALB(I,J)=SEAICE_albedo
131               ASNOW=SEAICE_drySnowAlb
132               IF(TICE(I,J,bi,bj).GT.TMELTP) ASNOW=SEAICE_wetSnowAlb
133               IF(HSNOW(I,J,bi,bj).GT.HCUT) THEN
134                ALB(I,J)=ASNOW
135               ELSE
136                ALB(I,J)=ALB(I,J)+(HSNOW(I,J,bi,bj)/HCUT)*(ASNOW-ALB(I,J))
137                IF(ALB(I,J).GT.ASNOW) ALB(I,J)=ASNOW
138               END IF
139              ENDDO
140             ENDDO
141    C NOW DETERMINE FIXED FORCING TERM IN HEAT BUDGET
142             DO J=1,sNy
143              DO I=1,sNx
144               IF(HSNOW(I,J,bi,bj).GT.0.0) THEN
145    C NO SW PENETRATION WITH SNOW
146                A1(I,J)=(1.0-ALB(I,J))*FSH(I,J,bi,bj)+FLO(I,J,bi,bj)
147         &       +D1*UG(I,J)*TAIR(I,J,bi,bj)+D1I*UG(I,J)*QA(I,J,bi,bj)
148               ELSE
149    C SW PENETRATION UNDER ICE
150                A1(I,J)=(1.0-ALB(I,J))*FSH(I,J,bi,bj)
151         &       *(1.0-XIO*EXP(-1.5*HICE(I,J)))+FLO(I,J,bi,bj)
152         &       +D1*UG(I,J)*TAIR(I,J,bi,bj)+D1I*UG(I,J)*QA(I,J,bi,bj)
153               ENDIF
154              ENDDO
155             ENDDO
156    C NOW COMPUTE OTHER TERMS IN HEAT BUDGET                        
157    C COME HERE AT START OF ITERATION                              
158             DO ITER=1,IMAX_TICE
159    
160              DO J=1,sNy
161               DO I=1,sNx
162                B(I,J)=QS1*(C1*TICE(I,J,bi,bj)**4+C2*TICE(I,J,bi,bj)**3
163         ?            +C3*TICE(I,J,bi,bj)**2+C4*TICE(I,J,bi,bj)+C5)
164                A2(I,J)=-D1*UG(I,J)*TICE(I,J,bi,bj)-D1I*UG(I,J)*B(I,J)
165         ?             -D3*(TICE(I,J,bi,bj)**4)
166                B(I,J)=XKS/(HSNOW(I,J,bi,bj)/HICE(I,J)+XKS/XKI)/HICE(I,J)
167                A3(I,J)=4.0D+00*D3*(TICE(I,J,bi,bj)**3)+B(I,J)+D1*UG(I,J)
168                B(I,J)=B(I,J)*(TB-TICE(I,J,bi,bj))
169    cdm
170    cdm   if(TICE(I,J,bi,bj).le.206.)
171    cdm  &           print '(A,3i4,f12.2)','### ITER,I,J,TICE',
172    cdm  &           ITER,I,J,TICE(I,J,bi,bj)
173    cdm
174               ENDDO
175              ENDDO
176    C NOW DECIDE IF IT IS TIME TO ESTIMATE GROWTH RATES
177    C NOW DETERMINE NEW ICE TEMPERATURE              
178              DO J=1,sNy
179               DO I=1,sNx
180                TICE(I,J,bi,bj)=TICE(I,J,bi,bj)
181         &                     +(A1(I,J)+A2(I,J)+B(I,J))/A3(I,J)
182                TICE(I,J,bi,bj)=MAX(273.16+MIN_TICE,TICE(I,J,bi,bj))
183               ENDDO
184              ENDDO
185    C NOW DECIDE IF ITERATIONS ARE COMPLETE                  
186    C NOW SET ICE TEMP TO MIN OF TMELT/ITERATION RESULT  
187    c          IF(ITER.EQ.IMAX_TICE) THEN
188                DO J=1,sNy
189                 DO I=1,sNx
190                  TICE(I,J,bi,bj)=MIN(TICE(I,J,bi,bj),TMELT)            
191                 ENDDO
192                ENDDO
193    c          ENDIF
194    
195             ENDDO
196    
197             DO J=1,sNy
198              DO I=1,sNx
199               FICE1(I,J,bi,bj)=-A1(I,J)-A2(I,J)    
200               IF(HSNOW(I,J,bi,bj).GT.0.0) THEN
201    C NO SW PENETRATION WITH SNOW
202                QSWI(I,J,bi,bj)=0.0
203               ELSE
204    C SW PENETRATION UNDER ICE
205                QSWI(I,J,bi,bj)=-(1.0-ALB(I,J))*FSH(I,J,bi,bj)
206         &       *XIO*EXP(-1.5*HICE(I,J))
207               ENDIF
208              ENDDO
209             ENDDO
210    
211          END IF
212    
213    #endif ALLOW_SEAICE
214    
215          RETURN
216          END

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.2

  ViewVC Help
Powered by ViewVC 1.1.22