*IF DEF,SEAICE ICEFLOE.2
C ******************************COPYRIGHT****************************** GTS2F400.4321
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.4322
C GTS2F400.4323
C Use, duplication or disclosure of this code is subject to the GTS2F400.4324
C restrictions as set forth in the contract. GTS2F400.4325
C GTS2F400.4326
C Meteorological Office GTS2F400.4327
C London Road GTS2F400.4328
C BRACKNELL GTS2F400.4329
C Berkshire UK GTS2F400.4330
C RG12 2SZ GTS2F400.4331
C GTS2F400.4332
C If no contract has been raised with this copy of the code, the use, GTS2F400.4333
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.4334
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.4335
C Modelling at the above address. GTS2F400.4336
C ******************************COPYRIGHT****************************** GTS2F400.4337
C GTS2F400.4338
C*LL ICEFLOE.3
CLL SUBROUTINE ICEFLOE ICEFLOE.4
CLL ------------------ ICEFLOE.5
CLL ICEFLOE.6
CLL THERMODYNAMIC SEA-ICE MODEL, BASED ON THE ZERO-LAYER MODEL OF ICEFLOE.7
CLL SEMTNER, A.J. (1976) : J.PHYS.OCEANOGR., 6, 379-389, ICEFLOE.8
CLL MODIFIED ALONG THE LINES SUGGESTED BY ICEFLOE.9
CLL GORDON, C., AND BOTTOMLEY, M. (1984) : DCTN 1. ICEFLOE.10
CLL INCLUDES A REPRESENTATION OF LEADS (WITHOUT DYNAMICS) DUE TO ICEFLOE.11
CLL HIBLER, W.D. (1979) : J.PHYS.OCEANOGR., 9, 815-846. ICEFLOE.12
CLL ICEFLOE.13
CLL THIS ROUTINE FORMS PART OF SYSTEM COMPONENT P4. ICEFLOE.14
CLL IT CAN BE COMPILED BY CFT77, BUT DOES NOT CONFORM TO ANSI ICEFLOE.15
CLL FORTRAN77 STANDARDS, BECAUSE OF THE INLINE COMMENTS. ICEFLOE.16
CLL IT ADHERES TO THE STANDARDS OF DOCUMENTATION PAPER 4, VERSION 1. ICEFLOE.17
CLL ICEFLOE.18
CLL ALL QUANTITIES IN THIS ROUTINE ARE IN S.I. UNITS UNLESS ICEFLOE.19
CLL OTHERWISE STATED. ICEFLOE.20
CLL ICEFLOE.21
CLL WRITTEN BY D.L.ROBERTS (3/10/90) ICEFLOE.22
CLL VERSION NUMBER 1.4 ICEFLOE.23
CLL REVIEWED BY J.F.THOMPSON (11/12/90) ICEFLOE.24
CLL REVISED BY: J.F.THOMSON (8/2/91) ICEFLOE.25
CLL STORES HEAT FLUXES FOR OCEAN IN TWO TIME LEVELS ICEFLOE.26
CLL AND PASSES LATENT HEAT TO RAISE OCEAN TEMPERATURES ICEFLOE.27
CLL TO FREEZING AS HEAT NOT HEAT FLUX. ICEFLOE.28
CLL THIS SATISFIES ENERGY CONSERVATION. ICEFLOE.29
CLL REVIEWED BY: N.K.TAYLOR (18/6/92) ICEFLOE.30
CLL REVISED BY: J.F.THOMSON (30/06/92) ICEFLOE.31
CLL RETURN TO PREVIOUS VERSION OF MODEL WITH ONLY ICEFLOE.32
CLL ONE TIME LEVEL OF OCEANFLX AND CARYHEAT STORED ICEFLOE.33
CLL AS A FLUX TO AVOID DIVERGENCE OF SOLUTIONS IN ICEFLOE.34
CLL TRACER AND ABNORMALLY THICK ANTARCTIC ICE. ICEFLOE.35
CLL REVISED BY: J.F.THOMSON (29/10/92) ICEFLOE.36
CLL SOLARFLX ALLOWED TO PENETRATE LEADS IN OCEAN HENCE ICEFLOE.37
CLL NOT INCLUDED IN ICE MODEL CALCULATIONS. ICEFLOE.38
CLL REVISED BY: C.COOPER (27/01/93) ICEFLOE.39
CLL USES THE ARRAYS SET UP IN SET_CONSTANTS_OCEAN FOR ICEFLOE.40
CLL ICE-OCEAN HEAT FLUX AND MAXIMUM ICE CONCENTRATION. ICEFLOE.41
CLL REVISED BY: J.F.THOMSON (03/02/93) ICEFLOE.42
CLL VALUE OF EPSILON, MINIMUM MEAN ICE DEPTH, INCREASED ICEFLOE.43
CLL TO 1.0E-4 FROM 1.0E-6 AFTER COUPLED MODEL FAILURE. ICEFLOE.44
CLL REVISED BY: J.F.THOMSON (31/12/93) JT161193.389
CLL ADDED SECTION 32 DIAGNOSTICS AND ARRAYS TO INTERFACE JT161193.390
CLL WITH THE SEA ICE DYNAMICS. JT161193.391
CLL REVISED BY: J.F.THOMSON (05/11/93) JT051193.8
CLL NEW *IF DEF ONOPOLO ADDED TO ALLOW OCEAN WITHOUT SEA JT051193.9
CLL ICE ON ROW JMT. JT051193.10
CLL 3.4 04/08/94 Remove ice flux correction and split sea ice OJT0F304.21
CLL haney forcing from SST/SSS haney forcing. (JFT) OJT0F304.22
! 3.5 16.01.95 Remove *IF dependency. R.Hill ORH1F305.5785
CLL REVISED BY: C.COOPER (25/03/95) OCC0F400.66
CLL RENAME EPSILON AS HICEMIN. PASS THIS AND RHOWATER OCC0F400.67
CLL VIA SUBROUTINE CALL RATHER THAN SETTING LOCALLY OCC0F400.68
CLL 4.0 16/03/95 Put sections which check upper and lower bounds OCS0F400.1
CLL of ice concentration, lower bound for ice depth, OCS0F400.2
CLL and those which update ice and snow prognostics, OCS0F400.3
CLL and CARYHEAT and CARYSALT into separate OCS0F400.4
CLL subroutines which can also be accessed by OCS0F400.5
CLL the ice assimilation. OCS0F400.6
CLL Miscellaneous tidying. OCS0F400.7
CLL 4.0 Remove redundant arrays delh_dyn and delhsa_dyn and give OJC3F400.27
CLL diagnostic arrays meaningful names. J.F.Crossley OJC3F400.28
CLL 4.0 Convert carysalt to a rate. J.F.Crossley OJC0F400.1
CLL 4.0 Adjustments to snowrate and heatflux to account for sea OJC2F400.52
CLL ice dynamics. **** NOTE THAT THE CODE ASSUMES THAT NO OJC2F400.53
CLL ICY POINTS IN TRACER HAVE BEEN CHANGED TO NON-ICY BY THE OJC2F400.54
CLL TIME OLDICE WAS COMPUTED WHICH IS NOT THE CASE WITH SEA OJC2F400.55
CLL ICE DYNAMICS - CARE NEEDED **** J.F.Crossley/J.Gregory OJC2F400.56
CLL 4.3 delhs_therm becomes a grid-box-mean quantity J.M.Gregory OJG3F403.1
CLL 4.5 J M Gregory Rate diagnostics corresponding to increments OJG1F405.8
CLL 4.5 New treatment of ocean-to-ice flux for HADCM4 ODC1F405.437
CLL Doug Cresswell and Jonathan Gregory ODC1F405.438
CLL ICEFLOE.45
CLLEND--------------------------------------------------------------- ICEFLOE.46
C*L ICEFLOE.47
SUBROUTINE ICEFLOE( 1,9ORH7F402.239
*CALL ARGOINDX
ORH7F402.240
& ICY,NEWICE, ORH7F402.241
+ HEATFLUX,SOLARFLX, ICEFLOE.49
+ HICE,HSNOW, ICEFLOE.50
+ SNOWRATE,SUBLIMZ,AICE,OCEANFLX,CARYHEAT,CARYSALT,TOPMELTZ, ICEFLOE.51
+ BOTMELTZ,SURFSAL,SURFTEMP, ICEFLOE.52
+ anomiceh, ICEFLOE.55
+ FKMP, ICEFLOE.61
+ dela_therm,delhi_therm,delhs_therm, OJC3F400.29
& ddt_aice_therm,ddt_hice_therm,ddt_snow_therm, OJG1F405.9
+ sf_dela_therm,sf_delhi_therm,sf_delhs_therm, OJC3F400.30
& sf_ddt_aice_therm,sf_ddt_hice_therm,sf_ddt_snow_therm, OJG1F405.10
+ H0,AMX,AICEMIN,HICEMIN,RHOICE,RHOSNOW,RHOWATER, OCC0F400.69
& IMT,IMTM1,JMT,DT,DZ1Z ORH3F405.99
+,RHOCP,TFREEZE,EDDYDIFF,SALICE,QFUSION JT161193.398
+,AICEMIZFRY !IN Concentration below which O2I is fix wrt aice. ODC1F405.439
+ ,salref) OJL1F405.74
C ICEFLOE.64
IMPLICIT NONE ICEFLOE.65
C ICEFLOE.66
*CALL CNTLOCN
ORH1F305.5786
*CALL OARRYSIZ
ORH1F305.5787
*CALL TYPOINDX
ORH7F402.242
INTEGER IMT, ! IN NUMBER OF POINTS IN A ROW. ICEFLOE.67
& IMTM1, ! IN IMT MINUS 1. ORH6F402.118
+ JMT ! IN NUMBER OF POINTS IN A COLUMN. ICEFLOE.68
C ICEFLOE.69
real salref OJL1F405.75
REAL ICEFLOE.70
+ HEATFLUX(IMT,JMT), ! IN NET NON-PENETRATIVE HEAT FLUX ICEFLOE.71
+ ! OVER LEADS (PORTION FOR ICE BUDGET) OJC2F400.57
+ SOLARFLX(IMT,JMT), ! IN NET PENETRATIVE HEAT FLUX OVER LEADS. ICEFLOE.73
+ SNOWRATE(IMT,JMT), ! IN RATE OF SNOWFALL, IN KG M-2 S-1. ICEFLOE.74
+ ! (AT INITIALLY ICY POINTS ONLY) OJC2F400.58
+ SUBLIMZ(IMT,JMT), ! IN RATE OF SUBLIMATION, IN KG M-2 S-1. ICEFLOE.75
+ TOPMELTZ(IMT,JMT), ! IN RATE OF MELTING OF SNOW IN W M-2. ICEFLOE.76
+ ! (THIS CAN BE TRANSFERRED TO ICE.) ICEFLOE.77
+ BOTMELTZ(IMT,JMT), ! IN DIFFUSIVE HEAT FLUX THROUGH ICE. IF ICEFLOE.78
+ ! THIS IS +VE, ICE MELTS AT THE BASE. ICEFLOE.79
+ ! IF IT IS -VE, ICE ACCRETES THERE. ICEFLOE.80
+ SURFTEMP(IMT,JMT), ! IN TEMPERATURE OF THE TOP LAYER OF THE ICEFLOE.81
+ ! OCEAN AT THE START OF THE STEP. ICEFLOE.82
+ FKMP(IMT,JMT), ! Number of ocean levels for land mask. ICEFLOE.83
+ SURFSAL(IMT,JMT) ! IN TRUE SALINITY OF THE TOP LAYER OF THE ICEFLOE.84
+ ! OCEAN AT THE START OF THE STEP. ICEFLOE.85
+ ! (NB DOES NOT HAVE 0.035 SUBTRACTED.) ICEFLOE.86
&,anomiceh(IMT_IHY,JMT_IHY) ! IN Anom seaice heat flux (W/m2) ORH1F305.5788
+,EDDYDIFF(JMT) ! IN Eddy diff coeff for heat transfer between ICEFLOE.95
+ ! base of ice and top layer of ocean ICEFLOE.96
+,AMX(JMT) ! IN Maximum ice concentrations ICEFLOE.97
REAL DT, ! IN TRACER TIMESTEP. ICEFLOE.98
+ H0, ! IN Minimum (local) depth of newly-formed ice, in m. ICEFLOE.99
+ AICEMIN, ! IN Min ice concentration allowed in an icy grid box. ICEFLOE.100
+ HICEMIN, ! IN Min ice depth allowed in an icy grid box, in m. OCC0F400.70
+ RHOICE, ! IN Density of ice, in kg/m**3. ICEFLOE.101
+ RHOSNOW, ! IN Density of snow, in kg/m**3. ICEFLOE.102
+ RHOWATER, ! IN Density of water, in kg/m**3. Used for both fresh OCC0F400.71
+ ! water and sea water. OCC0F400.72
+ DZ1Z, ! IN THICKNESS OF THE OCEAN'S TOP LAYER, IN CM. ICEFLOE.103
+ RHOCP, ! IN VOLUMETRIC HEAT CAPACITY OF SEA-WATER, ICEFLOE.104
+ ! IN J/(K*M**3). ICEFLOE.105
+ TFREEZE, ! IN FREEZING POINT OF SEAWATER. NOTE THAT IT ICEFLOE.106
+ ! IS TREATED AS A CONSTANT IN THIS MODEL. ICEFLOE.107
+ SALICE, ! IN SALINITY OF SEA-ICE IN KG PER KG. NOTE THAT IT ICEFLOE.108
+ ! IS TREATED AS CONSTANT IN THE PRESENT VERSION. ICEFLOE.109
+ QFUSION ! IN LATENT HEAT OF FUSION OF ICE, IN J/KG. ICEFLOE.110
+,AICEMIZFRY !IN Concentration below which O2I is fix wrt aice. ODC1F405.440
C ICEFLOE.111
LOGICAL ICY(IMT,JMT), ! INOUT TRUE IF BOX CONTAINS ICE. ICEFLOE.112
+ NEWICE(IMT,JMT) ! INOUT TRUE IF BOX WAS PREVIOUSLY FREE ICEFLOE.113
+ ! OF ICE, BUT ICE FORMS DURING STEP. ICEFLOE.114
REAL AICE(IMT,JMT), ! INOUT ICE CONCENTRATION. ICEFLOE.115
+ HICE(IMT,JMT), ! INOUT MEAN ICE DEPTH OVER WHOLE GRID BOX. ICEFLOE.116
+ HSNOW(IMT,JMT), ! INOUT SNOW DEPTH, NOT AVERAGED OVER GRID ICEFLOE.117
+ ! BOX, JUST OVER THE ICE PORTION. ICEFLOE.118
+ CARYHEAT(IMT,JMT), ! INOUT CARRYOVER ARRAY FOR MISCELLANEOUS ICEFLOE.119
+ ! HEAT FLUXES, TO AND FROM TRACER. ICEFLOE.120
+ OCEANFLX(IMT,JMT) ! INOUT OCEAN TO ICE HEAT FLUX (W M-2) ICEFLOE.121
C ICEFLOE.122
REAL ICEFLOE.123
+ CARYSALT(IMT,JMT) ! OUT INCREMENT IN SALINITY DUE TO ICEFLOE.124
+ ! ICE/SNOW PROCESSES. ICEFLOE.125
C JT161193.405
REAL JT161193.406
+ dela_therm(icol_cyc,jmt) !out increment in aice(thermodynamics) OJC3F400.31
+,delhi_therm(icol_cyc,jmt)!out increment in hice(thermodynamics) OJC3F400.32
+,delhs_therm(icol_cyc,jmt)!out GBM inc in hsnow (thermodynamics) OJG3F403.2
&,ddt_aice_therm(icol_cyc,jmt) ! OUT d/dt AICE OJG1F405.11
&,ddt_hice_therm(icol_cyc,jmt) ! OUT d/dt HICE OJG1F405.12
&,ddt_snow_therm(icol_cyc,jmt) ! OUT d/dt GBM snowdepth OJG1F405.13
C JT161193.416
LOGICAL JT161193.417
+ sf_dela_therm,sf_delhi_therm,sf_delhs_therm ! in stash flags. OJC3F400.34
&,sf_ddt_aice_therm,sf_ddt_hice_therm,sf_ddt_snow_therm OJG1F405.14
C* ICEFLOE.126
C VARIABLES LOCAL TO THIS ROUTINE ARE NOW DEFINED. ICEFLOE.127
C ICEFLOE.128
INTEGER I,J ! LOOP COUNTERS FOR COLUMNS AND ROWS. ICEFLOE.129
REAL XSENERGY ! TEMPORARY SCALAR VARIABLE FOR HOLDING ICEFLOE.130
+ ! AMOUNTS OF SURPLUS ENERGY. ICEFLOE.131
&,OCEANFLUX_UNDER_ICE(IMT,JMT) !Area avg oceanflux in icy portion ODC1F405.452
C ICEFLOE.132
REAL JT161193.419
+ AICE_OLD(IMT,JMT) ! INITIAL ICE FRACTION. JT161193.420
+,HICE_OLD(IMT,JMT) ! INITIAL ICE DEPTH. JT161193.421
+,HSNOW_OLD(IMT,JMT) ! INITIAL SNOW DEPTH. JT161193.422
C JT161193.423
REAL DELA(IMT,JMT), ! CHANGE IN AICE OVER ONE TIME STEP. ICEFLOE.133
+ DELH(IMT,JMT), ! CHANGE IN HICE OVER ONE TIME STEP. ICEFLOE.134
+ ATMSFLUX(IMT,JMT), ! TOTAL NET SURFACE HEAT FLUX OVER LEADS. ICEFLOE.135
+ SUBLIM(IMT,JMT), ! AREA-WEIGHTED VERSION OF SUBLIMZ. ICEFLOE.136
+ TOPMELT(IMT,JMT), ! AREA-WEIGHTED VERSION OF TOPMELTZ. ICEFLOE.137
+ BOTMELT(IMT,JMT), ! AREA-WEIGHTED VERSION OF BOTMELTZ. ICEFLOE.138
+ SNOWMELT(IMT,JMT), ! ARRAY FOR KEEPING TRACK OF AMOUNTS OF SNOW ICEFLOE.139
+ ! THAT MELT DURING THE STEP, FOR WORKING OUT ICEFLOE.140
+ ! THE SNOW CONTRIBUTION TO CARYSALT. ICEFLOE.141
+ WORKC(IMT,JMT) ! WORK ARRAY. ICEFLOE.143
+,CONST3(JMT) ! The product of volumetric heat capacity of sea ICEFLOE.144
+ ! water and ocean/ice eddy diff coeff divided by ICEFLOE.145
+ ! half the thickness of the ocean top layer ICEFLOE.146
LOGICAL OLDICE(IMT,JMT) ! RECORDS THE CONTENTS OF ICY AT THE ICEFLOE.147
+ ! START OF THE STEP. ICEFLOE.148
+,OCEAN(IMT,JMT) ! TRUE for ocean grid points, ICEFLOE.149
+ ! FALSE for land points. ICEFLOE.150
C ICEFLOE.151
C DEFINE LOCAL PARAMETERS. ICEFLOE.152
C ICEFLOE.161
REAL H0R, ! THE RECIPROCAL OF H0. ICEFLOE.163
+ DZ1, ! THICKNESS OF THE OCEAN'S TOP LAYER, IN M. ICEFLOE.164
+ DTBYRHOS, ! THE RATIO OF THE TIMESTEP TO THE DENSITY OF SNOW. ICEFLOE.165
+ RHOSBYDT, ! THE RATIO OF THE DENSITY OF SNOW TO THE TIMESTEP. ICEFLOE.166
+ DTBYRHOI, ! THE RATIO OF THE TIMESTEP TO THE DENSITY OF ICE. ICEFLOE.167
+ DENRATIO, ! THE RATIO OF THE DENSITY OF ICE TO THAT OF WATER. ICEFLOE.168
+ DENRAT2, ! THE RATIO OF THE DENSITY OF SNOW TO THAT OF WATER. ICEFLOE.169
+ DENRAT3, ! THE RATIO OF THE DENSITY OF SNOW TO THAT OF ICE. ICEFLOE.170
+ DENRATM1 ! DENRATIO MINUS ONE. ICEFLOE.171
&,DTR ! Reciprocal of timestep DT OJG1F405.15
C ICEFLOE.172
REAL CONST1, ! THE RATIO OF DENRATIO TO THE THICKNESS OF ICEFLOE.173
+ ! THE TOP LAYER OF THE OCEAN. ICEFLOE.174
+ CONST2, ! THE RATIO OF DENRAT2 TO THE THICKNESS OF THE TOP ICEFLOE.175
+ ! LAYER OF THE OCEAN. ICEFLOE.176
+ CONST4, ! THE RATIO OF THE TIMESTEP TO THE PRODUCT OF THE ICEFLOE.177
+ ! REFERENCE DENSITY OF SEA-WATER AND THE THICKNESS ICEFLOE.178
+ ! OF THE TOP LAYER OF THE OCEAN. ICEFLOE.179
+ CONST5 ! THE PRODUCT OF CONST2 AND THE SALINITY OF ICE. ICEFLOE.180
C ICEFLOE.181
REAL QI, ! THE VOLUMETRIC HEAT OF FUSION OF ICE, IN J/M**3. ICEFLOE.182
+ QS, ! THE VOLUMETRIC HEAT OF FUSION OF SNOW, IN J/M**3. ICEFLOE.183
+ QIR, ! THE RECIPROCAL OF QI. ICEFLOE.184
+ QSR, ! THE RECIPROCAL OF QS. ICEFLOE.185
+ QIRDT, ! THE RATIO OF THE TIMESTEP TO THE VOLUMETRIC HEAT ICEFLOE.186
+ ! OF FUSION OF ICE. ICEFLOE.187
+ QIBYDT, ! THE RATIO OF THE VOLUMETRIC HEAT OF FUSION OF ICE ICEFLOE.188
+ ! TO THE TIMESTEP. ICEFLOE.189
+ QSBYDT ! THE RATIO OF THE VOLUMETRIC HEAT OF FUSION OF SNOW ICEFLOE.190
+ ! TO THE TIMESTEP. ICEFLOE.191
C ICEFLOE.192
C SET VARIOUS CONSTANTS,CONVERTING TO S.I. UNITS WHERE NECESSARY. ICEFLOE.193
H0R = 1.0/H0 ICEFLOE.195
DZ1 = DZ1Z*0.01 ICEFLOE.196
DENRATIO = RHOICE/RHOWATER ICEFLOE.197
DENRAT2 = RHOSNOW/RHOWATER ICEFLOE.198
DENRAT3 = RHOSNOW/RHOICE ICEFLOE.199
DENRATM1 = DENRATIO - 1.0 ICEFLOE.200
CONST1 = DENRATIO/DZ1 ICEFLOE.201
CONST2 = DENRAT2/DZ1 ICEFLOE.202
QI = QFUSION*RHOICE ICEFLOE.203
QS = QFUSION*RHOSNOW ICEFLOE.204
QIR = 1.0/QI ICEFLOE.205
QSR = 1.0/QS ICEFLOE.206
QIRDT = QIR*DT ICEFLOE.207
QIBYDT = QI/DT ICEFLOE.208
QSBYDT = QS/DT ICEFLOE.209
CONST4 = DT/(RHOWATER*DZ1) ICEFLOE.210
CONST5 = CONST2*SALICE ICEFLOE.211
DTBYRHOI = DT/RHOICE ICEFLOE.212
DTBYRHOS = DT/RHOSNOW ICEFLOE.213
RHOSBYDT = RHOSNOW/DT ICEFLOE.214
DTR=1.0/DT OJG1F405.16
C ICEFLOE.215
C THE FOLLOWING CONDITION ARISES WHEN L_ONOPOLO = FALSE ORH1F305.5796
C BECAUSE THE OCEAN MODEL HAS LAND IN ITS NORTHERNMOST ROW,WE NOW ICEFLOE.216
C SET SURFTEMP TO FREEZING POINT THERE,THUS ZEROING OCEANFLX. ICEFLOE.217
C A SIMILAR OPERATION IS PERFORMED FOR SURFSAL IN ADDITION. ICEFLOE.218
C ICEFLOE.219
*IF DEF,MPP ORH3F402.157
IF (JST.EQ.1) THEN ORH3F402.158
DO I = 1,IMT ORH3F402.159
SURFTEMP(I,J_1)= 0.0 ORH3F402.160
SURFSAL(I,J_1) = 0.0 ORH3F402.161
ICY(I,J_1) = .FALSE. ORH3F402.162
NEWICE(I,J_1) = .FALSE. ORH3F402.163
CARYHEAT(I,J_1)= 0.0 ORH3F402.164
ENDDO ORH3F402.165
ENDIF ORH3F402.166
ORH3F402.167
IF (JFIN.EQ.JMT_GLOBAL) THEN ORH3F402.168
DO I = 1,IMT ORH3F402.169
IF (L_ONOPOLO) THEN ORH3F402.170
SURFTEMP(I,J_JMT) = 0.0 ORH3F402.171
SURFSAL(I,J_JMT) = 0.0 ORH3F402.172
ICY(I,J_JMT) = .FALSE. ORH3F402.173
CARYHEAT(I,J_JMT) = 0.0 ORH3F402.174
ELSE ORH3F402.175
SURFTEMP(I,J_JMT) = TFREEZE ORH3F402.176
SURFSAL(I,J_JMT) = SALICE ORH3F402.177
ENDIF ORH3F402.178
ENDDO ORH3F402.179
ENDIF ORH3F402.180
*ELSE ORH3F402.181
DO 80 I = 1,IMT ICEFLOE.220
SURFTEMP(I,1)=0.0 ICEFLOE.223
SURFSAL(I,1)=0.0 ICEFLOE.224
ICY(I,1)=.FALSE. ICEFLOE.225
NEWICE(I,1)=.FALSE. DW271093.1
CARYHEAT(I,1)=0.0 ICEFLOE.226
IF (L_ONOPOLO) THEN ORH1F305.5797
SURFTEMP(I,JMT) = 0.0 JT051193.14
SURFSAL(I,JMT) = 0.0 JT051193.15
ICY(I,JMT)=.FALSE. JT051193.16
CARYHEAT(I,JMT)=0.0 JT051193.17
ELSE ORH1F305.5798
SURFTEMP(I,JMT) = TFREEZE JT051193.19
SURFSAL(I,JMT) = SALICE JT051193.20
ENDIF ORH1F305.5799
80 CONTINUE ICEFLOE.227
*ENDIF ORH3F402.182
C ICEFLOE.228
DO J = J_1, J_JMT ORH3F402.183
CONST3(J) = ( RHOCP*EDDYDIFF(J) )/( 0.5*DZ1 ) ICEFLOE.230
DO I = 1,IMT OCS0F400.9
OLDICE(I,J) = ICY(I,J) ICEFLOE.232
IF (L_ONOPOLO) THEN ORH1F305.5800
OCEAN(I,J) = ( FKMP(I,J) .GT. 0.1 ) JT051193.23
ELSE ORH1F305.5801
OCEAN(I,J) = ( FKMP(I,J) .GT. 0.1 .OR. ORH3F402.184
& J+J_OFFSET.EQ.JMT_GLOBAL ) ORH3F402.185
ENDIF ORH1F305.5802
C ICEFLOE.234
C STORE THE INITIAL AREAL FRACTIONS FOR LATER USE IN UPDATING ICEFLOE.235
C SNOW DEPTHS. THEN ZERO SOME ARRAYS. ICEFLOE.236
C ICEFLOE.237
AICE_OLD(I,J) = AICE(I,J) JT161193.424
HICE_OLD(I,J) = HICE(I,J) JT161193.425
HSNOW_OLD(I,J) = HSNOW(I,J) JT161193.426
DELH(I,J) = 0.0 ICEFLOE.239
DELA(I,J) = 0.0 ICEFLOE.240
CARYSALT(I,J) = 0.0 ICEFLOE.241
SNOWMELT(I,J) = 0.0 ICEFLOE.242
WORKC(I,J) = 0.0 ICEFLOE.243
C ICEFLOE.244
C 1.FIND TOTAL DOWNWARD HEAT FLUX FROM ATMOSPHERE OVER THE LEADS, ICEFLOE.245
C DIVIDING BY THE LEAD AREA TO CONSERVE ENERGY. ICEFLOE.246
C 2.COMPUTE OCEAN-TO-ICE HEAT FLUX,USING THE OCEAN TEMPERATURE ICEFLOE.247
C PASSED FROM TRACER IN SURFTEMP. ICEFLOE.248
C 3.DIVIDE TOPMELTZ,BOTMELTZ & SUBLIMZ BY THE CURRENT AREA OF ICE. ICEFLOE.249
C THIS ENSURES ENERGY CONSERVATION,SINCE IN THE ATMOSPHERE ICEFLOE.250
C MODEL THESE FLUXES WERE WEIGHTED BY THE THEN AREA OF ICE. ICEFLOE.251
C NOTE THE USE OF LOCAL ARRAYS IN ORDER TO AVOID ALTERING ICEFLOE.252
C THE DATASETS OF THESE QUANTITIES ON EXIT FROM THE ROUTINE. ICEFLOE.253
C 4.ZERO DEPTHS AT NON-ICE POINTS. ICEFLOE.254
C ICEFLOE.255
IF ( ICY(I,J) ) THEN ICEFLOE.256
ATMSFLUX(I,J) = HEATFLUX(I,J)/(1.0-AICE(I,J)) OJC2F400.59
IF(L_HADCM4O2I) THEN ODC1F405.441
IF(AICE(I,J).gt.AICEMIZFRY) THEN ODC1F405.442
OCEANFLX(I,J) = ODC1F405.443
& CONST3(J)*(SURFTEMP(I,J) - TFREEZE)*AICE(I,J) ODC1F405.444
ELSE ODC1F405.445
OCEANFLX(I,J) = ODC1F405.446
& CONST3(J)*(SURFTEMP(I,J) - TFREEZE)*AICEMIZFRY ODC1F405.447
ENDIF ODC1F405.448
ELSE ODC1F405.449
OCEANFLX(I,J) = CONST3(J)*(SURFTEMP(I,J) - TFREEZE) ODC1F405.450
ENDIF ODC1F405.451
WORKC(I,J) = 1.0/AICE(I,J) ICEFLOE.260
TOPMELT(I,J) = TOPMELTZ(I,J)*WORKC(I,J) ICEFLOE.261
BOTMELT(I,J) = BOTMELTZ(I,J)*WORKC(I,J) ICEFLOE.262
SUBLIM(I,J) = SUBLIMZ(I,J)*WORKC(I,J) ICEFLOE.263
ELSE ICEFLOE.264
HICE(I,J) = 0.0 ICEFLOE.265
AICE(I,J) = 0.0 ICEFLOE.266
HSNOW(I,J) = 0.0 ICEFLOE.267
OCEANFLX(I,J) = 0.0 ICEFLOE.268
TOPMELT(I,J) = TOPMELTZ(I,J) ICEFLOE.269
BOTMELT(I,J) = BOTMELTZ(I,J) ICEFLOE.270
SUBLIM(I,J) = SUBLIMZ(I,J) ICEFLOE.271
ENDIF ICEFLOE.272
C ICEFLOE.273
C --------------------------------------------------------------------- ICEFLOE.274
C SPECIAL CODE FOR GRID BOXES WHERE ICE FORMATION IS JUST STARTING. ICEFLOE.275
C ICEFLOE.276
IF ( NEWICE(I,J) ) THEN ICEFLOE.277
DELH(I,J) = -QIRDT*CARYHEAT(I,J) ICEFLOE.278
DELA(I,J) = H0R*DELH(I,J) ICEFLOE.279
CARYHEAT(I,J) = 0.0 ICEFLOE.280
ENDIF ICEFLOE.281
C ICEFLOE.282
C END OF SPECIAL CODE FOR NEWLY-ICED GRID BOXES. ICEFLOE.283
C -------------------------------------------------------------------- ICEFLOE.284
C THE NEXT CHUNK OF CODE IS UNNECESSARY FOR OCEAN-ONLY RUNS. IT ICEFLOE.285
C ENSURES THAT IF ICE HAS DISAPPEARED FROM A GRID BOX DURING THE ICEFLOE.286
C COUPLING INTERVAL, ANY ENERGY IN TOPMELT AND BOTMELT DOES NOT ICEFLOE.287
C VANISH,BUT IS INSTEAD SUPPLIED TO THE OCEAN VIA CARYHEAT. NOTE ICEFLOE.288
C THAT IF ICE REFORMED THIS STEP THE SAME WILL HAPPEN:THAT IS OK. ICEFLOE.289
C ICEFLOE.290
IF (OCEAN(I,J) .AND. .NOT. ICY(I,J)) THEN ICEFLOE.291
CARYHEAT(I,J) = CARYHEAT(I,J) + TOPMELT(I,J) + BOTMELT(I,J) ORH1F305.5806
ENDIF ICEFLOE.293
C ICEFLOE.294
IF ( OLDICE(I,J) ) THEN ICEFLOE.295
C ICEFLOE.296
C UPDATE THE SNOW DEPTH. (NOTE THAT SUBLIMATION DOES NOT COUNT AS ICEFLOE.297
C MELTING FOR PURPOSES OF UPDATING SALINITY. ALSO, ANY NEGATIVE ICEFLOE.298
C SUBLIMATION,I.E. FROST,GETS USED HERE TO INCREASE SNOW DEPTH. ICEFLOE.299
C IT DOES NOT PENETRATE TO THE ICE SECTION OF THE CODE.) ICEFLOE.300
C ICEFLOE.301
SNOWMELT(I,J) = DT*QSR*TOPMELT(I,J) ICEFLOE.302
HSNOW(I,J) = DTBYRHOS*(SNOWRATE(I,J) - SUBLIM(I,J)) ICEFLOE.303
% + HSNOW(I,J) ICEFLOE.304
IF ( HSNOW(I,J) .GE. 0.0 ) THEN ICEFLOE.305
SUBLIM(I,J) = 0.0 ICEFLOE.306
ELSE ICEFLOE.307
SUBLIM(I,J) = - RHOSBYDT*HSNOW(I,J) ICEFLOE.308
HSNOW(I,J) = 0.0 ICEFLOE.309
ENDIF ICEFLOE.310
C ICEFLOE.311
C SUBLIM NOW CONTAINS ANY SUBLIMATION UNUSED DUE TO LACK OF SNOW. ICEFLOE.312
C ICEFLOE.313
HSNOW(I,J) = HSNOW(I,J) - SNOWMELT(I,J) ICEFLOE.314
C ICEFLOE.315
C IF SNOW GOES -VE,USE EXCESS HEAT TO MELT ICE INSTEAD,AND CORRECT ICEFLOE.316
C THE VALUE OF SNOWMELT. ICEFLOE.317
C ICEFLOE.318
IF ( HSNOW(I,J) .LT. 0.0 ) THEN ICEFLOE.319
XSENERGY = -QS*HSNOW(I,J) ICEFLOE.320
SNOWMELT(I,J) = SNOWMELT(I,J) + HSNOW(I,J) ICEFLOE.321
HSNOW(I,J) = 0.0 ICEFLOE.322
ELSE ICEFLOE.323
XSENERGY = 0.0 ICEFLOE.324
ENDIF ICEFLOE.325
C ICEFLOE.326
C AVERAGE SNOWMELT OVER WHOLE GRID BOX AND SCREEN OUT -VE VALUES. ICEFLOE.327
C ICEFLOE.328
IF ( SNOWMELT(I,J) .LT. 0.0 ) THEN ICEFLOE.329
SNOWMELT(I,J) = 0.0 ICEFLOE.330
ELSE ICEFLOE.331
SNOWMELT(I,J) = SNOWMELT(I,J)*AICE(I,J) ICEFLOE.332
ENDIF ICEFLOE.333
C ICEFLOE.334
C CALCULATE CHANGE IN ICE DEPTH OVER THE ICE FRACTION. ICEFLOE.335
C ICEFLOE.336
if (l_hadcm4o2i) then ODC1F405.453
OCEANFLUX_UNDER_ICE(I,J)=OCEANFLX(I,J) ODC1F405.454
& /max(AICE(I,J),AICEMIN) ODC1F405.455
DELH(I,J) = - QIR*XSENERGY - DTBYRHOI*SUBLIM(I,J) ODC1F405.456
& - QIRDT*( CARYHEAT(I,J) + OCEANFLUX_UNDER_ICE(I,J) ODC1F405.457
& + BOTMELT(I,J) ) ODC1F405.458
else ODC1F405.459
DELH(I,J) = - QIR*XSENERGY - DTBYRHOI*SUBLIM(I,J) ODC1F405.460
& - QIRDT*( CARYHEAT(I,J) + OCEANFLX(I,J) + BOTMELT(I,J) ) ODC1F405.461
endif ODC1F405.462
IF (L_IHANEY) THEN ORH1F305.5808
C ADD IN ANOMALOUS HEAT OVER ICE FRACTION ICEFLOE.342
C ICEFLOE.343
DELH(I,J) = DELH(I,J)-QIRDT*anomiceh(I,J) ICEFLOE.344
ENDIF ORH1F305.5809
C ICEFLOE.353
C FORM WEIGHTED MEAN OF DEPTH CHANGES OVER ICE AND OVER LEADS. ICEFLOE.354
C ICEFLOE.355
if (l_hadcm4o2i) then ODC1F405.463
WORKC(I,J) = DT*(QFUSION*SNOWRATE(I,J) - CARYHEAT(I,J) ODC1F405.464
& - ATMSFLUX(I,J)) ODC1F405.465
else ODC1F405.466
WORKC(I,J) = DT*(QFUSION*SNOWRATE(I,J) - CARYHEAT(I,J) ODC1F405.467
& - ATMSFLUX(I,J) - OCEANFLX(I,J)) ODC1F405.468
endif ODC1F405.469
IF (L_IHANEY) THEN ORH1F305.5810
C ICEFLOE.360
C ADD IN ANOMALOUS HEAT OVER LEADS FRACTION ICEFLOE.361
C ICEFLOE.362
WORKC(I,J) = WORKC(I,J)-DT*anomiceh(I,J) ICEFLOE.363
ENDIF ORH1F305.5811
DELH(I,J) = QIR*WORKC(I,J)*( 1.0 - AICE(I,J) ) ICEFLOE.372
% + DELH(I,J)*AICE(I,J) ICEFLOE.373
C ICEFLOE.374
C REWEIGHT UNUSED SUBLIMATION BY THE AREAL FRACTION. ICEFLOE.375
C ICEFLOE.376
SUBLIM(I,J) = SUBLIM(I,J)*AICE(I,J) ICEFLOE.377
ENDIF OCS0F400.10
ENDDO OCS0F400.11
ENDDO OCS0F400.12
c OCS0F400.13
c For icy grid boxes the input CARYHEAT has served its purpose, OCS0F400.14
c so zero it before filling with output values. Do not interfere OCS0F400.15
c with non-icy grid boxes. OCS0F400.16
c OCS0F400.17
DO j=J_1,J_jmt ORH3F402.186
DO i=1,imt OCS0F400.19
IF (oldice(i,j)) caryheat(i,j)=0.0 OCS0F400.20
ENDDO OCS0F400.21
ENDDO OCS0F400.22
c OCS0F400.23
c Look to see whether all ice is going to melt: if so, update ice, OCS0F400.24
c snow, and ocean variables accordingly. OCS0F400.25
c OCS0F400.26
CALL ice_h_lt_hicemin
( OCS0F400.27
*CALL ARGOINDX
ORH7F402.243
& imt,jmt OCS0F400.28
&,qibydt,qsbydt,salice OCS0F400.29
&,const1,const2,const4 OCS0F400.30
&,surfsal,sublim OCS0F400.31
&,hice,aice,hsnow OCS0F400.32
&,delh,dela,hicemin OCS0F400.33
&,caryheat,carysalt,snowmelt OCS0F400.34
&,icy OCS0F400.35
& ,salref) OJL1F405.76
C ICEFLOE.378
C IF ICE WILL REMAIN,CALCULATE THE CHANGE IN THE AREAL FRACTION. ICEFLOE.400
C ICEFLOE.401
DO j=J_1,J_jmt ORH3F402.187
DO i=1,imt OCS0F400.38
IF (oldice(i,j).and.(hice(i,j)+delh(i,j)).ge.hicemin) THEN OCS0F400.39
IF (WORKC(I,J) .GT. 0.0) THEN ICEFLOE.403
DELA(I,J) = ( 1.0 - AICE(I,J) )*H0R*QIR*WORKC(I,J) ICEFLOE.404
ENDIF ICEFLOE.405
IF (DELH(I,J) .LT. 0.0) THEN ICEFLOE.406
DELA(I,J) = ( AICE(I,J)*DELH(I,J) ) / ( 2.0*HICE(I,J) ) ICEFLOE.407
& + DELA(I,J) OCS0F400.40
ENDIF ICEFLOE.409
ENDIF ICEFLOE.410
ENDDO OCS0F400.41
ENDDO OCS0F400.42
C ICEFLOE.412
C TRAP AREAL FRACTIONS GREATER THAN THE SPECIFIED MAXIMA, ICEFLOE.425
C OR LESS THAN THE SPECIFIED MINIMUM. ICEFLOE.426
C ICEFLOE.427
CALL ice_a_gt_max
( OCS0F400.43
*CALL ARGOINDX
ORH7F402.244
& imt,jmt OCS0F400.44
&,amx,aice OCS0F400.45
&,dela OCS0F400.46
& ) OCS0F400.47
C ICEFLOE.436
CALL ice_a_lt_min
( OCS0F400.48
*CALL ARGOINDX
ORH7F402.245
& imt,jmt OCS0F400.49
&,aicemin,aice OCS0F400.50
&,icy,newice OCS0F400.51
&,dela OCS0F400.52
& ) OCS0F400.53
C ICEFLOE.437
C ICEFLOE.444
C RESET ICY TO INCLUDE NEWLY-ICED POINTS. THEN UPDATE ICE DEPTHS OCS0F400.54
C AND AREAL FRACTIONS. (NEWLY-MELTED POINTS WON'T BE UPDATED.) OCS0F400.55
C ICEFLOE.448
CALL ice_update_ice
( OCS0F400.56
*CALL ARGOINDX
ORH7F402.246
& imt,jmt OCS0F400.57
&,delh,dela,newice OCS0F400.58
&,hice,aice,icy OCS0F400.59
& ) OCS0F400.60
C ICEFLOE.453
C Update ocean variables caryheat and carysalt OCS0F400.61
C and alter snowrate if necessary. OCS0F400.62
C ICEFLOE.456
CALL ice_update_ocean
( OCS0F400.63
*CALL ARGOINDX
ORH7F402.247
& imt,jmt OCS0F400.64
&,qsbydt,salice,const1,const2,const4 OCS0F400.65
&,surfsal,sublim,newice OCS0F400.66
&,hsnow,delh,dela OCS0F400.67
&,caryheat,carysalt,snowmelt OCS0F400.68
&,icy OCS0F400.69
& ,salref) OJL1F405.77
C ICEFLOE.460
C Redistribute snow over ice if necessary. OCS0F400.71
C ICEFLOE.465
CALL ice_update_snow
( OCS0F400.72
*CALL ARGOINDX
ORH7F402.248
& imt,jmt OCS0F400.73
&,aice,dela OCS0F400.74
&,hsnow OCS0F400.75
& ) OCS0F400.76
C ICEFLOE.470
C ICEFLOE.474
C THE NEXT SECTION OF CODE DEALS WITH THE FORMATION OF 'WHITE' ICEFLOE.487
C ICE, WHICH OCCURS WHEN SNOW ACCUMULATES TO SUCH AN EXTENT THAT ICEFLOE.488
C THE SNOW/ICE INTERFACE SINKS BELOW THE WATERLINE. IT BEGINS BY ICEFLOE.489
C FINDING THE HEIGHT OF THE WATERLINE ABOVE THE TOP OF THE ICE. ICEFLOE.490
C ICEFLOE.491
DO j = j_1, J_JMT ORH3F402.188
DO i=1,imt OCS0F400.78
C OCS0F400.79
IF ( ICY(I,J) ) THEN ICEFLOE.492
WORKC(I,J) = (HICE(I,J)/AICE(I,J))*DENRATM1 ICEFLOE.493
% + DENRAT2*HSNOW(I,J) ICEFLOE.494
C ICEFLOE.495
C IF THIS HEIGHT IS POSITIVE, IT INDICATES THE DEPTH OF SNOW ICEFLOE.496
C THAT WILL BE CONVERTED TO ICE. THIS REQUIRES THE ADDITION OF ICEFLOE.497
C SALT, SO CARYSALT IS UPDATED TO REMOVE THE SALT FROM THE OCEAN. ICEFLOE.498
C ICEFLOE.499
IF ( WORKC(I,J) .GT. 0.0 ) THEN ICEFLOE.500
HSNOW(I,J) = HSNOW(I,J) - WORKC(I,J) ICEFLOE.501
WORKC(I,J) = WORKC(I,J)*AICE(I,J) ICEFLOE.502
HICE(I,J) = HICE(I,J) + DENRAT3*WORKC(I,J) ICEFLOE.503
CARYSALT(I,J) = CARYSALT(I,J) - CONST5*WORKC(I,J) ICEFLOE.504
ENDIF ICEFLOE.505
ENDIF ICEFLOE.506
C ICEFLOE.507
ENDDO OCS0F400.80
ENDDO OCS0F400.81
C ICEFLOE.510
C ZERO CARYSALT ON THE NORTHERNMOST ROW, FOR SAFETY. ICEFLOE.511
C ICEFLOE.512
*IF DEF,MPP ORH3F402.189
! only the process dealing with the last row needs ORH3F402.190
! set carysalt to 0.0 on JMT. ORH3F402.191
IF (JFIN.EQ.JMT_GLOBAL) THEN ORH3F402.192
DO I = 1,IMT ORH3F402.193
CARYSALT(I,J_JMT) = 0.0 ORH3F402.194
ENDDO ORH3F402.195
ENDIF ORH3F402.196
*ELSE ORH3F402.197
DO 650 I = 1,IMT ICEFLOE.513
CARYSALT(I,JMT) = 0.0 ICEFLOE.514
650 CONTINUE ICEFLOE.515
*ENDIF ORH3F402.198
C OJC0F400.2
C Convert CARYSALT to rate, for independence from timestep OJC0F400.3
C OJC0F400.4
DO J=J_1,J_JMT ORH3F402.199
DO I=1,IMT OJC0F400.6
CARYSALT(I,J)=CARYSALT(I,J)/DT OJC0F400.7
ENDDO OJC0F400.8
ENDDO OJC0F400.9
IF (L_OCYCLIC) THEN ORH1F305.5812
C ICEFLOE.518
C ENSURE THAT ICE VARIABLES ARE CYCLIC. THIS IS THOUGHT TO BE ICEFLOE.519
C UNNECESSARY,PROVIDED THAT THE ICE CODE IN TRACER MAKES NEWICE ICEFLOE.520
C AND CARYHEAT CYCLIC. HOWEVER IT IS A SENSIBLE SAFETY DEVICE. ICEFLOE.521
C ICEFLOE.522
DO 660 J = J_1,J_JMT ORH3F402.200
ICY(1,J) = ICY(IMTM1,J) ICEFLOE.524
ICY(IMT,J) = ICY(2,J) ICEFLOE.525
AICE(1,J) = AICE(IMTM1,J) ICEFLOE.526
AICE(IMT,J) = AICE(2,J) ICEFLOE.527
HICE(1,J) = HICE(IMTM1,J) ICEFLOE.528
HICE(IMT,J) = HICE(2,J) ICEFLOE.529
HSNOW(1,J) = HSNOW(IMTM1,J) ICEFLOE.530
HSNOW(IMT,J) = HSNOW(2,J) ICEFLOE.531
OCEANFLX(1,J) = OCEANFLX(IMTM1,J) ICEFLOE.532
OCEANFLX(IMT,J) = OCEANFLX(2,J) ICEFLOE.533
CARYHEAT(1,J) = CARYHEAT(IMTM1,J) ICEFLOE.534
CARYHEAT(IMT,J) = CARYHEAT(2,J) ICEFLOE.535
CARYSALT(1,J) = CARYSALT(IMTM1,J) ICEFLOE.536
CARYSALT(IMT,J) = CARYSALT(2,J) ICEFLOE.537
660 CONTINUE ICEFLOE.538
ENDIF ORH1F305.5813
C JT161193.434
C COPY DIAGNOSTICS TO STASH WORKSPACE JT161193.435
C JT161193.436
IF (sf_dela_therm) THEN OJC3F400.35
DO J=J_1,J_JMT ORH3F402.201
DO I=1, ICOL_CYC ORH1F305.5814
ORH1F305.5815
IF (OCEAN(I,J)) JT161193.444
& dela_therm(I,J) = AICE(I,J) - AICE_OLD(I,J) OJC3F400.36
END DO JT161193.446
END DO JT161193.447
ENDIF JT161193.448
IF (sf_ddt_aice_therm) THEN OJG1F405.17
DO J=J_1,J_JMT OJG1F405.18
DO I=1, ICOL_CYC OJG1F405.19
IF (OCEAN(I,J)) OJG1F405.20
& ddt_aice_therm(I,J) = DTR*(AICE(I,J) - AICE_OLD(I,J)) OJG1F405.21
END DO OJG1F405.22
END DO OJG1F405.23
ENDIF OJG1F405.24
IF (sf_delhi_therm) THEN OJC3F400.37
DO J=J_1,J_JMT ORH3F402.202
DO I=1, ICOL_CYC ORH1F305.5816
IF (OCEAN(I,J)) JT161193.456
& delhi_therm(I,J) = HICE(I,J) - HICE_OLD(I,J) OJC3F400.38
END DO JT161193.458
END DO JT161193.459
ENDIF JT161193.460
IF (sf_ddt_hice_therm) THEN OJG1F405.25
DO J=J_1,J_JMT OJG1F405.26
DO I=1, ICOL_CYC OJG1F405.27
IF (OCEAN(I,J)) OJG1F405.28
& ddt_hice_therm(I,J) = DTR*(HICE(I,J) - HICE_OLD(I,J)) OJG1F405.29
END DO OJG1F405.30
END DO OJG1F405.31
ENDIF OJG1F405.32
IF (sf_delhs_therm) THEN OJC3F400.39
DO J=J_1,J_JMT ORH3F402.203
DO I=1, ICOL_CYC ORH1F305.5817
IF (OCEAN(I,J)) JT161193.468
& delhs_therm(I,J) = HSNOW(I,J)*AICE(I,J) OJG3F403.3
& -HSNOW_OLD(I,J)*AICE_OLD(I,J) OJG3F403.4
END DO JT161193.470
END DO JT161193.471
ENDIF JT161193.472
IF (sf_ddt_snow_therm) THEN OJG1F405.33
DO J=J_1,J_JMT OJG1F405.34
DO I=1, ICOL_CYC OJG1F405.35
IF (OCEAN(I,J)) OJG1F405.36
& ddt_snow_therm(I,J) = DTR*(HSNOW(I,J)*AICE(I,J) OJG1F405.37
& -HSNOW_OLD(I,J)*AICE_OLD(I,J)) OJG1F405.38
END DO OJG1F405.39
END DO OJG1F405.40
ENDIF OJG1F405.41
C ICEFLOE.541
*IF DEF,MPP ORH5F403.241
IF (sf_dela_therm) ORH5F403.242
&CALL SWAPBOUNDS(dela_therm,ICOL_CYC,JMT,O_EW_HALO,O_NS_HALO,1) ORH5F403.243
IF (sf_delhi_therm) ORH5F403.244
&CALL SWAPBOUNDS(delhi_therm,ICOL_CYC,JMT,O_EW_HALO,O_NS_HALO,1) ORH5F403.245
IF (sf_delhs_therm) ORH5F403.246
&CALL SWAPBOUNDS(delhs_therm,ICOL_CYC,JMT,O_EW_HALO,O_NS_HALO,1) ORH5F403.247
IF (sf_ddt_aice_therm) CALL SWAPBOUNDS
(ddt_aice_therm OJG1F405.42
&,ICOL_CYC,JMT,O_EW_HALO,O_NS_HALO,1) OJG1F405.43
IF (sf_ddt_hice_therm) CALL SWAPBOUNDS
(ddt_hice_therm OJG1F405.44
&,ICOL_CYC,JMT,O_EW_HALO,O_NS_HALO,1) OJG1F405.45
IF (sf_ddt_snow_therm) CALL SWAPBOUNDS
(ddt_snow_therm OJG1F405.46
&,ICOL_CYC,JMT,O_EW_HALO,O_NS_HALO,1) OJG1F405.47
*ENDIF ORH5F403.248
RETURN ICEFLOE.542
END ICEFLOE.543
*ENDIF ICEFLOE.544