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

Annotation of /MITgcm/pkg/seaice/seaice_solve4temp.F

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


Revision 1.1 - (hide annotations) (download)
Thu Sep 23 22:46:24 2010 UTC (13 years, 8 months ago) by jmc
Branch: MAIN
new S/R seaice_solve4temp.F: this is the merged version of Ian Fenty
code (seaice_budget_ice_if.F) which enable to recover old standard
code (seaice_budget_ice.F) when option USE_ORIGINAL_SBI is defined.

1 jmc 1.1 C $Header: $
2     C $Name: $
3    
4     #include "SEAICE_OPTIONS.h"
5     #define USE_ORIGINAL_SBI
6    
7     CBOP
8     C !ROUTINE: SEAICE_SOLVE4TEMP
9     C !INTERFACE:
10     SUBROUTINE SEAICE_SOLVE4TEMP(
11     I UG, HICE_ACTUAL, HSNOW_ACTUAL,
12     U TSURF,
13     #ifdef SEAICE_ALLOW_TD_IF
14     O F_io_net, F_ia_net,
15     #endif
16     O F_ia, IcePenetSWFlux,
17     I bi, bj, myTime, myIter, myThid )
18    
19     C !DESCRIPTION: \bv
20     C *==========================================================*
21     C | SUBROUTINE SOLVE4TEMP
22     C | o Calculate ice growth rate, surface fluxes and
23     C | temperature of ice surface.
24     C | see Hibler, MWR, 108, 1943-1973, 1980
25     C *==========================================================*
26     C \ev
27    
28     C !USES:
29     IMPLICIT NONE
30     C === Global variables ===
31     #include "SIZE.h"
32     #include "GRID.h"
33     #include "EEPARAMS.h"
34     #include "FFIELDS.h"
35     #include "SEAICE.h"
36     #include "SEAICE_PARAMS.h"
37     #ifdef SEAICE_VARIABLE_FREEZING_POINT
38     #include "DYNVARS.h"
39     #endif /* SEAICE_VARIABLE_FREEZING_POINT */
40     #ifdef ALLOW_EXF
41     # include "EXF_OPTIONS.h"
42     # include "EXF_FIELDS.h"
43     #endif
44    
45     C !INPUT/OUTPUT PARAMETERS
46     C === Routine arguments ===
47     C INPUT:
48     C UG :: thermal wind of atmosphere
49     C HICE_ACTUAL :: actual ice thickness
50     C HSNOW_ACTUAL :: actual snow thickness
51     C TSURF :: surface temperature of ice in Kelvin, updated
52     C bi,bj :: loop indices
53     C OUTPUT:
54     C F_io_net :: net upward conductive heat flux through ice at the base of the ice
55     C F_ia_net :: net heat flux divergence at the sea ice/snow surface:
56     C includes ice conductive fluxes and atmospheric fluxes (W/m^2)
57     C F_ia :: upward sea ice/snow surface heat flux to atmosphere (W/m^2)
58     C IcePenetSWFlux :: short wave heat flux under ice
59     _RL UG (1:sNx,1:sNy)
60     _RL HICE_ACTUAL (1:sNx,1:sNy)
61     _RL HSNOW_ACTUAL (1:sNx,1:sNy)
62     _RL TSURF (1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
63     _RL F_io_net (1:sNx,1:sNy)
64     _RL F_ia_net (1:sNx,1:sNy)
65     _RL F_ia (1:sNx,1:sNy)
66     _RL IcePenetSWFlux (1:sNx,1:sNy)
67     INTEGER bi, bj
68     _RL myTime
69     INTEGER myIter, myThid
70     CEOP
71    
72     C !LOCAL VARIABLES:
73     C === Local variables ===
74     _RL F_swi (1:sNx,1:sNy)
75     _RL F_lwd (1:sNx,1:sNy)
76     _RL F_lwu (1:sNx,1:sNy)
77     _RL F_lh (1:sNx,1:sNy)
78     _RL F_sens (1:sNx,1:sNy)
79     _RL F_c (1:sNx,1:sNy)
80     _RL qhice (1:sNx,1:sNy)
81    
82     _RL AbsorbedSWFlux (1:sNx,1:sNy)
83     _RL IcePenetSWFluxFrac (1:sNx,1:sNy)
84    
85     C local copies of global variables
86     _RL tsurfLoc (1:sNx,1:sNy)
87     _RL atempLoc (1:sNx,1:sNy)
88     _RL lwdownLoc (1:sNx,1:sNy)
89     _RL ALB (1:sNx,1:sNy)
90     _RL ALB_ICE (1:sNx,1:sNy)
91     _RL ALB_SNOW (1:sNx,1:sNy)
92    
93     INTEGER KOPEN
94     C i,j - Loop counters
95     INTEGER i, j
96     INTEGER ITER
97    
98     _RL TB, D1, D1I, D3
99     _RL TMELT, XKI, XKS, HCUT, XIO, dFiDTs1
100     _RL SurfMeltTemp
101    
102     c Constants to calculate Saturation Vapor Pressure
103     #ifdef USE_ORIGINAL_SBI
104     _RL TMELTP, C1, C2, C3, C4, C5, QS1
105     _RL A2 (1:sNx,1:sNy)
106     _RL A3 (1:sNx,1:sNy)
107     _RL B (1:sNx,1:sNy)
108     _RL A1 (1:sNx,1:sNy)
109     #else
110     _RL aa1,aa2,bb1,bb2,Ppascals,cc0,cc1,cc2,cc3t
111     C specific humidity at ice surface variables
112     _RL mm_pi,mm_log10pi,dqhice_dTice
113     #endif
114    
115     C effective conductivity of combined ice and snow
116     _RL effConduct
117    
118    
119     C powers of temperature
120     _RL t1, t2, t3, t4
121     _RL TEN
122    
123    
124     TEN = 10.0 _d 0
125     #ifdef USE_ORIGINAL_SBI
126     C MAYKUTS CONSTANTS FOR SAT. VAP. PRESSURE TEMP. POLYNOMIAL
127     C1=2.7798202 _d -06
128     C2=-2.6913393 _d -03
129     C3=0.97920849 _d +00
130     C4=-158.63779 _d +00
131     C5=9653.1925 _d +00
132    
133     QS1=0.622 _d +00/1013.0 _d +00
134    
135     #else
136     aa1 = 2663.5 _d 0
137     aa2 = 12.537 _d 0
138     bb1 = 0.622 _d 0
139     bb2 = ONE - bb1
140     Ppascals = 100000. _d 0
141     cc0 = TEN ** aa2
142     cc1 = cc0*aa1*bb1*Ppascals*log(10. _d 0)
143     cc2 = cc0*bb2
144     #endif
145    
146     C FREEZING TEMPERATURE OF SEAWATER
147     #ifndef SEAICE_VARIABLE_FREEZING_POINT
148     c Use a constant seaswater freezing point
149     #ifdef USE_ORIGINAL_SBI
150     TB=271.2 _d 0
151     #else
152     TB=273.15 _d 0 + SEAICE_freeze
153     #endif
154     #else
155     c Use a variable seawater freezing point
156     TB = -0.0575 _d 0*salt(I,J,kSrf,bi,bj) + 0.0901 _d 0
157     & + 273.15 _d 0
158     #endif
159    
160     C SENSIBLE HEAT CONSTANT
161     D1=SEAICE_sensHeat
162    
163     C ICE LATENT HEAT CONSTANT
164     D1I=SEAICE_latentIce
165    
166     C STEFAN BOLTZMAN CONSTANT TIMES 0.97 EMISSIVITY
167     D3=SEAICE_emissivity
168    
169     C MELTING TEMPERATURE OF ICE
170     #ifdef USE_ORIGINAL_SBI
171     TMELT=273.16 _d +00
172     TMELTP=273.159 _d +00
173     SurfMeltTemp = TMELTP
174     #else
175     TMELT = 273.15 _d 0
176     SurfMeltTemp = TMELT
177     #endif
178    
179     C ICE CONDUCTIVITY
180     XKI=SEAICE_iceConduct
181    
182     C SNOW CONDUCTIVITY
183     XKS=SEAICE_snowConduct
184    
185     C CUTOFF SNOW THICKNESS
186     HCUT=SEAICE_snowThick
187    
188     C PENETRATION SHORTWAVE RADIATION FACTOR
189     XIO=SEAICE_shortwave
190    
191    
192     c Initialize variables
193     DO J=1,sNy
194     DO I=1,sNx
195     IcePenetSWFlux (I,J) = 0. _d 0
196     IcePenetSWFluxFrac (I,J) = 0. _d 0
197     AbsorbedSWFlux (I,J) = 0. _d 0
198    
199     qhice (I,J) = 0. _d 0
200     F_ia (I,J) = 0. _d 0
201    
202     F_io_net (I,J) = 0. _d 0
203     F_ia_net (I,J) = 0. _d 0
204    
205     c Reset the snow/ice surface to TMELT and bound the atmospheric temperature
206     #ifdef USE_ORIGINAL_SBI
207     tsurfLoc (I,J) = MIN(273.16 _d 0+MAX_TICE,TSURF(I,J,bi,bj))
208     atempLoc (I,J) = MAX(273.16 _d 0+MIN_ATEMP,ATEMP(I,J,bi,bj))
209     A1(I,J) = ZERO
210     A2(I,J) = ZERO
211     A3(I,J) = ZERO
212     c B(I,J) = ZERO
213     lwdownLoc(I,J) = MAX(MIN_LWDOWN,LWDOWN(I,J,bi,bj))
214     #else
215     F_swi (I,J) = 0. _d 0
216     F_lwd (I,J) = 0. _d 0
217     F_lwu (I,J) = 0. _d 0
218     F_lh (I,J) = 0. _d 0
219     F_sens (I,J) = 0. _d 0
220    
221     tsurfLoc(I,J) = TSURF(I,J,bi,bj)
222     atempLoc (I,J) = MAX(TMELT + MIN_ATEMP,ATEMP(I,J,bi,bj))
223     lwdownLoc(I,J) = LWDOWN(I,J,bi,bj)
224     #endif
225    
226     ENDDO
227     ENDDO
228    
229     DO J=1,sNy
230     DO I=1,sNx
231    
232     C DECIDE ON ALBEDO
233     IF (HICE_ACTUAL(I,J) .GT. ZERO) THEN
234    
235     IF ( YC(I,J,bi,bj) .LT. ZERO ) THEN
236     IF (tsurfLoc(I,J) .GE. SurfMeltTemp) THEN
237     ALB_ICE (I,J) = SEAICE_wetIceAlb_south
238     ALB_SNOW(I,J) = SEAICE_wetSnowAlb_south
239     ELSE ! no surface melting
240     ALB_ICE (I,J) = SEAICE_dryIceAlb_south
241     ALB_SNOW(I,J) = SEAICE_drySnowAlb_south
242     ENDIF
243     ELSE !/ Northern Hemisphere
244     IF (tsurfLoc(I,J) .GE. SurfMeltTemp) THEN
245     ALB_ICE (I,J) = SEAICE_wetIceAlb
246     ALB_SNOW(I,J) = SEAICE_wetSnowAlb
247     ELSE ! no surface melting
248     ALB_ICE (I,J) = SEAICE_dryIceAlb
249     ALB_SNOW(I,J) = SEAICE_drySnowAlb
250     ENDIF
251     ENDIF !/ Albedo for snow and ice
252    
253     #ifdef USE_ORIGINAL_SBI
254     c If actual snow thickness exceeds the cutoff thickness, use the
255     c snow albedo
256     IF (HSNOW_ACTUAL(I,J) .GT. HCUT) THEN
257     ALB(I,J) = ALB_SNOW(I,J)
258    
259     c otherwise, use some combination of ice and snow albedo
260     c (What is the source of this formulation ?)
261     ELSE
262     ALB(I,J) = MIN(ALB_ICE(I,J) + HSNOW_ACTUAL(I,J)/HCUT*
263     & (ALB_SNOW(I,J) -ALB_ICE(I,J)),
264     & ALB_SNOW(I,J))
265     ENDIF
266    
267     #else
268     IF (HSNOW_ACTUAL(I,J) .GT. ZERO) THEN
269     ALB(I,J) = ALB_SNOW(I,J)
270     ELSE
271     ALB(I,J) = ALB_ICE(I,J)
272     ENDIF
273     #endif
274    
275    
276     #ifdef USE_ORIGINAL_SBI
277     C NOW DETERMINE FIXED FORCING TERM IN HEAT BUDGET
278    
279     #ifdef ALLOW_DOWNWARD_RADIATION
280     IF(HSNOW_ACTUAL(I,J).GT.0.0) THEN
281     C NO SW PENETRATION WITH SNOW
282     A1(I,J)=(ONE-ALB(I,J))*SWDOWN(I,J,bi,bj)
283     & +lwdownLoc(I,J)*0.97 _d 0
284     & +D1*UG(I,J)*atempLoc(I,J)+D1I*UG(I,J)*AQH(I,J,bi,bj)
285     ELSE
286     C SW PENETRATION UNDER ICE
287     A1(I,J)=(ONE-ALB(I,J))*SWDOWN(I,J,bi,bj)
288     & *(ONE-XIO*EXP(-1.5 _d 0*HICE_ACTUAL(I,J)))
289     & +lwdownLoc(I,J)*0.97 _d 0
290     & +D1*UG(I,J)*atempLoc(I,J)+D1I*UG(I,J)*AQH(I,J,bi,bj)
291     ENDIF
292     #endif
293    
294     #else
295    
296     c The longwave radiative flux convergence
297     F_lwd(I,J) = - 0.97 _d 0 * lwdownLoc(I,J)
298    
299     c Determine the fraction of shortwave radiative flux
300     c remaining after scattering through the snow and ice at
301     c the ocean interface. If snow is present, no radiation
302     c penetrates to the ocean.
303     IF (HSNOW_ACTUAL(I,J) .GT. ZERO) THEN
304     IcePenetSWFluxFrac(I,J) = ZERO
305     ELSE
306     IcePenetSWFluxFrac(I,J) =
307     & XIO*EXP(-1.5 _d 0 * HICE_ACTUAL(I,J))
308     ENDIF
309    
310     c The shortwave radiative flux convergence in the
311     c seaice.
312     AbsorbedSWFlux(I,J) = -(ONE - ALB(I,J))*
313     & (ONE - IcePenetSWFluxFrac(I,J))
314     & *SWDOWN(I,J,bi,bj)
315    
316     c The shortwave radiative flux convergence in the
317     c ocean beneath ice.
318     IcePenetSWFlux(I,J) = -(ONE - ALB(I,J))*
319     & IcePenetSWFluxFrac(I,J)
320     & *SWDOWN(I,J,bi,bj)
321    
322     F_swi(I,J) = AbsorbedSWFlux(I,J)
323    
324     c Set a mininum sea ice thickness of 5 cm to bound
325     c the magnitude of conductive heat fluxes.
326     HICE_ACTUAL(I,J) = max(HICE_ACTUAL(I,J),5. _d -2)
327    
328     #endif
329    
330     c The effective conductivity of the two-layer
331     c snow/ice system.
332     #ifdef USE_ORIGINAL_SBI
333     effConduct=
334     & XKS/(HSNOW_ACTUAL(I,J)/HICE_ACTUAL(I,J) +
335     & XKS/XKI)/HICE_ACTUAL(I,J)
336     #else
337     effConduct = XKI * XKS /
338     & (XKS * HICE_ACTUAL(I,J) + XKI * HSNOW_ACTUAL(I,J))
339     #endif
340    
341    
342    
343     #ifdef SEAICE_DEBUG
344     IF ( (I .EQ. SEAICE_debugPointX) .and.
345     & (J .EQ. SEAICE_debugPointY) ) THEN
346    
347     print '(A,i6)','-----------------------------------'
348     print '(A,i6)','ibi merged initialization ', myIter
349    
350     print '(A,i6,4(1x,D24.15))',
351     & 'ibi iter, TSL, TS ',myIter,
352     & tsurfLoc(I,J), TSURF(I,J,bi,bj)
353    
354     print '(A,i6,4(1x,D24.15))',
355     & 'ibi iter, TMELT ',myIter,TMELT
356    
357     print '(A,i6,4(1x,D24.15))',
358     & 'ibi iter, HIA, EFKCON ',myIter,
359     & HICE_ACTUAL(I,J), effConduct
360    
361     print '(A,i6,4(1x,D24.15))',
362     & 'ibi iter, HSNOW ',myIter,
363     & HSNOW_ACTUAL(I,J), ALB(I,J)
364    
365     print '(A,i6)','-----------------------------------'
366     print '(A,i6)','ibi energy balance iterat ', myIter
367    
368     ENDIF
369     #endif
370    
371     ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
372     DO ITER=1,IMAX_TICE
373    
374     t1 = tsurfLoc(I,J)
375     t2 = t1*t1
376     t3 = t2*t1
377     t4 = t2*t2
378    
379     c Calculate the specific humidity in the BL above the snow/ice
380     #ifdef USE_ORIGINAL_SBI
381     c Use the Maykut polynomial
382     qhice(I,J)=QS1*(C1*t4+C2*t3 +C3*t2+C4*t1+C5)
383    
384     #else
385     c Use an approximation which is more accurate at low temperatures
386    
387     c log 10 of the sat vap pressure
388     mm_log10pi = -aa1 / t1 + aa2
389    
390     c The saturation vapor pressure (SVP) in the surface
391     c boundary layer (BL) above the snow/ice.
392     mm_pi = TEN **(mm_log10pi)
393    
394     qhice(I,J) = bb1*mm_pi / (Ppascals - (ONE - bb1) *
395     & mm_pi)
396     #endif
397    
398     c Caclulate the flux terms based on the updated tsurfLoc
399     #ifdef USE_ORIGINAL_SBI
400     A2(I,J)=-D1*UG(I,J)*t1-D1I*UG(I,J)*qhice(I,J)-D3*t4
401     A3(I,J) = 4.0 _d 0 * D3 * t3 + effConduct + D1*UG(I,J)
402     F_c(I,J)=-effConduct*(TB-tsurfLoc(I,J))
403     #else
404     c A constant for SVP derivative w.r.t TICE
405     cc3t = TEN **(aa1 / t1)
406    
407     c d(qh)/d(TICE)
408     dqhice_dTice = cc1*cc3t/((cc2-cc3t*Ppascals)**TWO *t2)
409    
410     c d(F_ia)/d(TICE)
411     dFiDTs1 = 4.0 _d 0 * D3*t3 + effConduct + D1*UG(I,J)
412     & + D1I*UG(I,J)*dqhice_dTice
413    
414     F_lh(I,J) = D1I*UG(I,J)*(qhice(I,J)-AQH(I,J,bi,bj))
415    
416     F_c(I,J) = -effConduct * (TB - t1)
417    
418     F_lwu(I,J)= t4 * D3
419    
420     F_sens(I,J)= D1 * UG(I,J) * (t1 - atempLoc(I,J))
421    
422     F_ia(I,J) = F_lwd(I,J) + F_swi(I,J) + F_lwu(I,J) +
423     & F_c(I,J) + F_sens(I,J) + F_lh(I,J)
424    
425     #endif
426    
427     #ifdef SEAICE_DEBUG
428     IF ( (I .EQ. SEAICE_debugPointX) .and.
429     & (J .EQ. SEAICE_debugPointY) ) THEN
430     print '(A,i6,4(1x,D24.15))',
431     & 'ice-iter qhICE, ', ITER,qhIce(I,J)
432    
433     #ifdef USE_ORIGINAL_SBI
434     print '(A,i6,4(1x,D24.15))',
435     & 'ice-iter A1 A2 B ', ITER,A1(I,J), A2(I,J),
436     & -F_c(I,J)
437    
438     print '(A,i6,4(1x,D24.15))',
439     & 'ice-iter A3 (-A1+A2) ', ITER, A3(I,J),
440     & -(A1(I,J) + A2(I,J))
441     #else
442    
443     print '(A,i6,4(1x,D24.15))',
444     & 'ice-iter dFiDTs1 F_ia ', ITER, dFiDTs1,
445     & F_ia(I,J)
446     #endif
447    
448     ENDIF
449     #endif
450    
451     c Update tsurfLoc
452     #ifdef USE_ORIGINAL_SBI
453     tsurfLoc(I,J)=tsurfLoc(I,J)
454     & +(A1(I,J)+A2(I,J)-F_c(I,J))/A3(I,J)
455    
456     tsurfLoc(I,J) =MAX(273.16 _d 0+MIN_TICE,tsurfLoc(I,J))
457     tsurfLoc(I,J) =MIN(tsurfLoc(I,J),TMELT)
458    
459     #else
460     tsurfLoc(I,J) = tsurfLoc(I,J) - F_ia(I,J) / dFiDTs1
461    
462     c If the search leads to tsurfLoc < 50 Kelvin,
463     c restart the search at tsurfLoc = TMELT. Note that one
464     c solution to the energy balance problem is an
465     c extremely low temperature - a temperature far below
466     c realistic values.
467    
468     IF (tsurfLoc(I,J) .LT. 50.0 _d 0 ) THEN
469     tsurfLoc(I,J) = TMELT
470     ENDIF
471     #endif
472    
473     #ifdef SEAICE_DEBUG
474     IF ( (I .EQ. SEAICE_debugPointX) .and.
475     & (J .EQ. SEAICE_debugPointY) ) THEN
476    
477     print '(A,i6,4(1x,D24.15))',
478     & 'ice-iter tsurfLc,|dif|', ITER,
479     & tsurfLoc(I,J),
480     & log10(abs(tsurfLoc(I,J) - t1))
481     ENDIF
482     #endif
483    
484     ENDDO !/* Iterations */
485     ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
486    
487     c Finalize the flux terms
488     #ifdef USE_ORIGINAL_SBI
489     F_ia(I,J)=-A1(I,J)-A2(I,J)
490     TSURF(I,J,bi,bj)=MIN(tsurfLoc(I,J),TMELT)
491    
492     IF (HSNOW_ACTUAL(I,J) .GT. ZERO ) THEN
493     C NO SW PENETRATION WITH SNOW
494     IcePenetSWFlux(I,J)=ZERO
495     ELSE
496     C SW PENETRATION UNDER ICE
497    
498     #ifdef ALLOW_DOWNWARD_RADIATION
499     IcePenetSWFlux(I,J)=-(ONE-ALB(I,J))*SWDOWN(I,J,bi,bj)
500     & *XIO*EXP(-1.5 _d 0*HICE_ACTUAL(I,J))
501     #endif
502     ENDIF
503    
504     #else
505     tsurfLoc(I,J) = MIN(tsurfLoc(I,J),TMELT)
506     TSURF(I,J,bi,bj) = tsurfLoc(I,J)
507    
508     c Recalculate the fluxes based on the (possibly) adjusted TSURF
509     t1 = tsurfLoc(I,J)
510     t2 = t1*t1
511     t3 = t2*t1
512     t4 = t2*t2
513    
514     c log 10 of the sat vap pressure
515     mm_log10pi = -aa1 / t1 + aa2
516    
517     c saturation vapor pressure
518     mm_pi = TEN **(mm_log10pi)
519    
520     c over ice specific humidity
521     qhice(I,J) = bb1*mm_pi/(Ppascals- (ONE - bb1) * mm_pi)
522    
523     F_lh(I,J) = D1I * UG(I,J)*(qhice(I,J)-AQH(I,J,bi,bj))
524     F_c(I,J) = -effConduct * (TB - t1)
525     F_lwu(I,J) = t4 * D3
526     F_sens(I,J) = D1 * UG(I,J) * (t1 - atempLoc(I,J))
527    
528     c The flux between the ice/snow surface and the atmosphere.
529     c (excludes upward conductive fluxes)
530     F_ia(I,J) = F_lwd(I,J) + F_swi(I,J) + F_lwu(I,J) +
531     & F_sens(I,J) + F_lh(I,J)
532     #endif
533    
534     c Caclulate the net ice-ocean and ice-atmosphere fluxes
535     IF (F_c(I,J) .LT. ZERO) THEN
536     F_io_net(I,J) = -F_c(I,J)
537     F_ia_net(I,J) = ZERO
538     ELSE
539     F_io_net(I,J) = ZERO
540     F_ia_net(I,J) = F_lwd(I,J) + F_swi(I,J) + F_lwu(I,J) +
541     & F_sens(I,J) + F_lh(I,J)
542     ENDIF !/* conductive fluxes up or down */
543    
544    
545     #ifdef SEAICE_DEBUG
546     IF ( (I .EQ. SEAICE_debugPointX) .and.
547     & (J .EQ. SEAICE_debugPointY) ) THEN
548    
549     print '(A)','----------------------------------------'
550     print '(A,i6)','ibi complete ', myIter
551    
552     print '(A,4(1x,D24.15))',
553     & 'ibi T(SURF, surfLoc,atmos) ',
554     & TSURF(I,J,bi,bj), tsurfLoc(I,J),atempLoc(I,J)
555    
556     print '(A,4(1x,D24.15))',
557     & 'ibi LWL ', lwdownLoc(I,J)
558    
559     print '(A,4(1x,D24.15))',
560     & 'ibi QSW(Total, Penetrating)',
561     & SWDOWN(I,J,bi,bj), IcePenetSWFlux(I,J)
562    
563     print '(A,4(1x,D24.15))',
564     & 'ibi qh(ATM ICE) ',
565     & AQH(I,J,bi,bj),qhice(I,J)
566    
567     c print '(A,4(1x,D24.15))',
568     c & 'ibi F(lwd,swi,lwu) ',
569     c & F_lwd(I,J), F_swi(I,J), F_lwu(I,J)
570    
571     c print '(A,4(1x,D24.15))',
572     c & 'ibi F(c,lh,sens) ',
573     c & F_c(I,J), F_lh(I,J), F_sens(I,J)
574    
575     print '(A,4(1x,D24.15))',
576     & 'ibi F_ia, F_ia_net, F_c ',
577     #ifdef USE_ORIGINAL_SBI
578     & -(A1(I,J)+A2(I,J)),
579     & -(A1(I,J)+A2(I,J)-F_c(I,J)),
580     & F_c(I,J)
581     #else
582     & F_ia(I,J),
583     & F_ia_net(I,J),
584     & F_c(I,J)
585     #endif
586    
587     print '(A)','----------------------------------------'
588    
589     ENDIF
590     #endif
591    
592     ENDIF !/* HICE_ACTUAL > 0 */
593    
594     ENDDO !/* i */
595     ENDDO !/* j */
596    
597     RETURN
598     END

  ViewVC Help
Powered by ViewVC 1.1.22