*IF DEF,S40_1A SLBCTL1A.2
C ******************************COPYRIGHT****************************** GTS2F400.8965
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.8966
C GTS2F400.8967
C Use, duplication or disclosure of this code is subject to the GTS2F400.8968
C restrictions as set forth in the contract. GTS2F400.8969
C GTS2F400.8970
C Meteorological Office GTS2F400.8971
C London Road GTS2F400.8972
C BRACKNELL GTS2F400.8973
C Berkshire UK GTS2F400.8974
C RG12 2SZ GTS2F400.8975
C GTS2F400.8976
C If no contract has been raised with this copy of the code, the use, GTS2F400.8977
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.8978
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.8979
C Modelling at the above address. GTS2F400.8980
C ******************************COPYRIGHT****************************** GTS2F400.8981
C GTS2F400.8982
CLL SJT1F304.1
CLL SUBROUTINE SLABCNTL SLBCTL1A.4
CLL ------------------- SLBCTL1A.5
CLL SLBCTL1A.6
CLL THIS ROUTINE IS FOR USE WITH THE 'SLAB' OCEAN MODEL ONLY. SLBCTL1A.7
CLL SLBCTL1A.8
CLL THE ROUTINE CALLS TRANSA2S TO CONVERT THE ATMOSPHERE SLBCTL1A.9
CLL VARIABLES TO THE FORMAT REQUIRED FOR THE SLAB MODEL, SLBCTL1A.10
CLL SLAB TO UPDATE THE SEA SURFACE TEMPERATURE, SLABICE TO SLBCTL1A.13
CLL UPDATE THE ICE CONCENTRATION AND DEPTH, AND TRANSS2A TO SLBCTL1A.14
CLL CONVERT THE SLAB VARIABLES BACK TO THE ATMOSPHERE FORMAT. SLBCTL1A.15
CLL SLBCTL1A.16
CLL THIS ROUTINE FORMS PART OF SYSTEM COMPONENT P40. SLBCTL1A.17
CLL IT CAN BE COMPILED BY CFT77, BUT DOES NOT CONFORM TO ANSI SLBCTL1A.18
CLL FORTRAN77 STANDARDS, BECAUSE OF THE INLINE COMMENTS. SLBCTL1A.19
CLL DYNAMIC ALLOCATION AND THE USE OF ENDDO. SJT1F304.2
CLL IT ADHERES TO THE STANDARDS OF DOCUMENTATION PAPER 3, VERSION 5. SLBCTL1A.20
CLL SLBCTL1A.21
CLL ALL QUANTITIES IN THIS ROUTINE ARE IN S.I. UNITS UNLESS SLBCTL1A.22
CLL OTHERWISE STATED. SLBCTL1A.23
CLL SLBCTL1A.24
CLL CALLED BY: SLABSTEP SLBCTL1A.25
CLL WRITTEN BY C.A.SENIOR (15/1/91) SLBCTL1A.26
CLL MODIFIED BY A.B.KEEN (02/02/93) SLBCTL1A.27
CLL MODIFIED BY C.A.SENIOR (22/03/93) SJT1F304.3
CLL MODIFIED BY C.A.SENIOR (30/03/93) SJT1F304.4
CLL MODIFIED BY A.B.KEEN (22/04/93) SJT1F304.5
CLL MODIFIED BY A.B.KEEN (27/04/93) SJT1F304.6
CLL MODIFIED BY C.A.SENIOR (08/07/93) SJT1F304.7
CLL MODIFIED BY C.A.SENIOR (24/02/94) SJT1F304.8
CLL Modified at version 3.4 by J.Thomson, C.Senior, R.E.Carnell SJT1F304.9
CLL Changes to satisfy slab code review. SJT1F304.10
CLL Addition of ice dynamics and alternative version of thermodyn. SJT1F304.11
CLL Slabtemp advection added. SJT1F304.12
CLL Version Description of change SJC1F400.1
CLL 4.0 Vertical SST advection added (R.Carnell) SJC1F400.2
CLL Corrections made to ice model and new diagnostics SJC1F400.3
CLL added. J.F.Crossley SJC1F400.4
!LL 4.4 04/08/97 Add missing ARGOINDX to various argument lists. SDR1F404.13
!LL D. Robinson. SDR1F404.14
!LL SDR1F404.15
CLL VERSION NUMBER 1.1 SLBCTL1A.28
CLL REVIEWER: W.INGRAM (02/03/93) SLBCTL1A.29
CLL DOCUMENTATION: UM DOCUMENTATION PAPER 58; THE SLAB OCEAN MODEL SLBCTL1A.30
CLL SLBCTL1A.31
CLLEND--------------------------------------------------------------- SLBCTL1A.32
C*L SLBCTL1A.33
SUBROUTINE SLABCNTL( 3,9SDR1F404.16
*CALL ARGOINDX
SDR1F404.17
& L1,U_FIELD,ICOLS,JROWS,LAND,DT,DZ1, SDR1F404.18
+ SOLARIN,BLUEIN,EVAP,LONGWAVE,SENSIBLE,HEATCONV, SJT1F304.14
+ SNOWLS,SNOWCONV,TSTARATM,SLABTEMP,HICEATM,HSNOWATM, SJT1F304.15
+ AICEATM,SUBLIMA,TOPMELTZ,BOTMELTZ, SJT1F304.16
+ UICE,VICE, SJT1F304.17
+ UCURRENT,VCURRENT,WSX,WSY, SJT1F304.18
+ H0,AMXSOUTH,AMXNORTH,AICEMIN,HICEMIN, SJT1F304.19
+ TCLIM,HCLIM,CALIB,HICESLB, SJT1F304.20
+ AINC_DYN,HINC_DYN,HSINC_DYN,HINC_DIFF, SJT1F304.21
+ HINC_ADV,HSINC_ADV,AREAS, SJC1F400.5
+ AINC_THERM,HINC_THERM,HSINC_THERM,OIFLUX, SJT1F304.22
+ PRESSURE,PMAX,LEADFLUX,ATMSFLUX,DTADV,DTDIFF,CARYHEAT, SJC1F400.6
+ SNOWSLAB,SNOWLEAD,DTICE, SJC1F400.7
+ EDDYDIFF,epsilon,Ah,HCLIMIT,Ah_ice, SJT1F304.24
+ Pstar_ice_strength,kappa_ice_strength,cdw,tol_icav,tol_ifree, SJT1F304.25
+ weight_ifree,nmax_icav,nmax_ifree, SJT1F304.26
+ L_THERM,L_IDYN,L_IDRIF,LGLOBAL,L_SLBADV, SJT1F304.27
+ COS_P_LATITUDE,COS_U_LATITUDE,SEC_P_LATITUDE, SJT1F304.28
+ SIN_U_LATITUDE,CORIOLIS, SJT1F304.29
+ ADJHCONV,wtsfc,wtbase, SJC1F400.8
+ DELTA_LONG,DELTA_LAT,BASE_LAT) SJT1F304.31
C SLBCTL1A.39
*CALL TYPOINDX
SDR1F404.19
C SLBCTL1A.40
INTEGER L1, ! IN SIZE OF DATA VECTORS (P GRID) SJT1F304.32
+ U_FIELD, ! IN SIZE OF U FIELDS SJT1F304.33
+ ICOLS, ! IN NUMBER OF POINTS IN A ROW SLBCTL1A.44
+ JROWS ! IN NUMBER OF POINTS IN A COLUMN SLBCTL1A.45
C SLBCTL1A.46
LOGICAL LAND(L1) ! IN ATMOSPHERIC MODEL LAND-SEA MASK SJT1F304.34
+ ! FALSE AT OCEAN POINTS SLBCTL1A.48
+,CALIB ! IN TRUE IF SLAB CALIBRATION EXPT SJT1F304.35
+,LGLOBAL ! IN TRUE if global model (hence cyclic) SJT1F304.36
+,L_THERM ! IN TRUE if coupled model ice thermo SJT1F304.37
+,L_IDYN ! IN TRUE if cav fluid ice dynamics SJT1F304.38
+,L_IDRIF ! IN TRUE if ice depth advection SJT1F304.39
+,L_SLBADV ! IN TRUE if slabtemp advection SJT1F304.40
C SLBCTL1A.49
REAL DT ! IN TIMESTEP FOR UPDATING THE SLAB OCEAN IN S SJT1F304.41
+,DZ1 ! IN THICKNESS OF THE SLAB OCEAN IN METRES. SJT1F304.42
+,DELTA_LONG ! IN EW grid spacing (degrees) SJT1F304.43
+,DELTA_LAT ! IN NS grid spacing (degrees) SJT1F304.44
+,BASE_LAT ! IN latitude of first row (degrees) SJT1F304.45
+,AH ! IN Diffusion Coefficent for slab temperature SJT1F304.46
REAL AH_ICE ! IN Diffusion coeff. for ice depth. SJT1F304.47
&,epsilon ! IN Minimum depth of gbm ice (metres) SJT1F304.48
&,cdw ! IN quadratic water stress coefficient SJT1F304.49
&,Pstar_ice_strength! IN Parameter in ice strength calculation SJT1F304.50
&,kappa_ice_strength! IN Parameter in ice srength calculation SJT1F304.51
&,Weight_ifree ! IN Weighting for free drift relaxation. SJT1F304.52
C SLBCTL1A.52
REAL SLBCTL1A.53
+ SOLARIN(L1) ! IN NET DOWNWARD SHORTWAVE FLUX FROM THE SJT1F304.53
+ ! ATMOSPHERE (ALL FREQUENCIES). SLBCTL1A.55
+,BLUEIN(L1) ! IN NET DOWNWARD SHORTWAVE FLUX FROM THE SJT1F304.54
+ ! ATMOSPHERE (BAND 1, SEA POINTS) SJT1F304.55
+,EVAP(L1) ! IN SURFACE EVAPORATION FROM THE WATER SJT1F304.56
+ ! FRACTION OF ALL OCEAN POINTS. AT SEA-ICE SLBCTL1A.57
+ ! POINTS, THIS IS WEIGHTED BY THE SLBCTL1A.58
+ ! FRACTIONAL LEAD AREA. (KG M-2 S-1) SJT1F304.57
+,LONGWAVE(L1) ! IN NET DOWNWARD LONGWAVE HEAT FLUX. SJT1F304.58
+,SENSIBLE(L1) ! IN SENSIBLE HEAT FLUX (+VE UPWARD) FOR SJT1F304.59
+ ! THE WATER FRACTION OF ALL OCEAN POINTS. SLBCTL1A.62
+ ! AREA-WEIGHTED AT SEA-ICE POINTS. SLBCTL1A.63
+,HEATCONV(L1) ! IN HEAT CONVERGENCE RATE, IN W M-2. SJT1F304.60
+,SNOWLS(L1) ! IN LARGE-SCALE SNOWFALL RATE (KG M-2 S-1) SJT1F304.61
+,SNOWCONV(L1) ! IN CONVECTIVE SNOWFALL RATE (KG M-2 S-1) SJT1F304.62
+,TSTARATM(L1) ! INOUT SEA SURFACE TEMP FROM ATMOS MODEL (K) SJT1F304.63
+,SLABTEMP(L1) ! INOUT TEMPERATURE OF THE SLAB OCEAN (C) SJT1F304.64
+,HICEATM(L1) ! INOUT EQUIVALENT ICE DEPTH FROM ATMOS MODEL (M) SJT1F304.65
+,HSNOWATM(L1) ! INOUT SNOW DEPTH FROM ATMOS MODEL(KG M-2) SJT1F304.66
+,AICEATM(L1) ! INOUT ICE CONCENTRATION FROM ATMOS MODEL SJT1F304.67
+,UICE(U_FIELD) ! INOUT X COMPONENT OF ICE VELOCITY (m/s) SJT1F304.68
+,VICE(U_FIELD) ! INOUT Y COMPONENT OF ICE VELOCITY (m/s) SJT1F304.69
+,SUBLIMA(L1) ! IN ACCUMULATED SUBLIMATION, IN KG M-2 SJT1F304.70
+,TOPMELTZ(L1) ! IN RATE OF MELTING OF SNOW IN W M-2. SJT1F304.71
+ ! (THIS CAN BE TRANSFERRED TO ICE.) SLBCTL1A.73
+,BOTMELTZ(L1) ! IN DIFFUSIVE HEAT FLUX THROUGH ICE. IN W M-2 SJT1F304.72
+ ! IF THIS IS +VE, ICE MELTS AT THE BASE. SLBCTL1A.75
+ ! IF IT IS -VE, ICE ACCRETES THERE. SLBCTL1A.76
+,HICESLB(L1) ! OUT MEAN ICE DEPTH OVER WHOLE GRID BOX SJT1F304.73
+ ! IN M. SJT1F304.74
+,TCLIM(L1) ! IN CLIMATOLOGICAL SEA SURFACE TEMPS K SJT1F304.75
+,HCLIM(L1) ! IN CLIMATOLOGICAL SEA-ICE DEPTHS M SJT1F304.76
+,ADJHCONV(L1) ! OUT REDISTRIBUTED HEAT CONVERGENCES SJT1F304.77
+,wtsfc(l1) ! OUT w x slab temp at surface SJC1F400.9
+,wtbase(l1) ! OUT w x slab temp at base SJC1F400.10
+,COS_P_LATITUDE(L1) ! IN COS LATITUDE ON P GRID SJT1F304.78
+,COS_U_LATITUDE(U_FIELD)! IN COS LATITUDE ON UV GRID SJT1F304.79
+,SEC_P_LATITUDE(L1) ! IN 1.0/COS LATITUDE ON P GRID SJT1F304.80
+,SIN_U_LATITUDE(U_FIELD)! IN SIN LATITUDE ON UV GRID SJT1F304.81
+,CORIOLIS(L1) ! IN 2 * OMEGA * SIN(LAT) ON P GRID SJT1F304.82
SJT1F304.83
C SLBCTL1A.78
REAL SLBCTL1A.79
+ UCURRENT(U_FIELD) ! IN X COMPONENT OF SURFACE CURRENT (M/S) SJT1F304.84
+,VCURRENT(U_FIELD) ! IN Y COMPONENT OF SURFACE CURRENT (M/S) SJT1F304.85
+,WSX(U_FIELD) ! IN X COMPONENT OF SURFACE STRESS (N/M2) SJT1F304.86
+,WSY(U_FIELD) ! IN Y COMPONENT OF SURFACE STRESS (N/M2) SJT1F304.87
C SJT1F304.88
REAL SJT1F304.89
+ AINC_THERM(L1) ! OUT ice fraction inc (thermodynamics) SJT1F304.90
+,HINC_THERM(L1) ! OUT ice depth inc (thermodynamics) SJT1F304.91
+,HSINC_THERM(L1) ! OUT snow depth inc *ice fract (therm) SJC1F400.11
+,AINC_DYN(L1) ! OUT ice fraction inc (dynamics) SJT1F304.93
+,HINC_DYN(L1) ! OUT ice depth inc (dynamics) SJT1F304.94
+,HSINC_DYN(L1) ! OUT snow depth inc *ice fract (dynamics) SJC1F400.12
+,HINC_DIFF(L1) ! OUT ice depth inc (diffusion) SJT1F304.96
+,HINC_ADV(L1) ! OUT ice depth inc (advection) SJC1F400.13
+,HSINC_ADV(L1) ! OUT snow depth inc *ice fract (advection) SJC1F400.14
+,AREAS(L1) ! OUT grid box areas SJC1F400.15
+,OIFLUX(L1) ! OUT ocean to ice heat flux SJT1F304.97
+,PRESSURE(L1) ! OUT internal ice pressure SJT1F304.98
+,PMAX(L1) ! OUT ice strength SJT1F304.99
+,ATMSFLUX(L1) ! OUT net heat into slab through leads SJC1F400.16
+,LEADFLUX(L1) ! OUT net heat into ice through leads SJC1F400.17
+,DTADV(L1) ! OUT slab heating rate due to advection SJC1F400.18
+,DTDIFF(L1) ! OUT slab heating rate due to diffusion SJC1F400.19
+,CARYHEAT(L1) ! OUT negative heat flux due to slab SJC1F400.20
+ ! temperatures falling below freezing. SJC1F400.21
+ ! W M-2 SJC1F400.22
+,SNOWSLAB(L1) ! OUT snowfall rate melting in slab. SJC1F400.23
+,SNOWLEAD(L1) ! OUT snowfall rate melting in leads. SJC1F400.24
+,DTICE(L1) ! OUT slab heating rate due to ice melt etc. SJC1F400.25
C SJT1F304.100
REAL SJT1F304.101
+ H0 ! IN MINIMUM LOCAL ICE DEPTH (M) SJT1F304.102
+,AMXSOUTH ! IN MAX ICE CONC - SOUTHERN HEMISPHERE SJT1F304.103
+,AMXNORTH ! IN MAX ICE CONC - NORTHEN HEMISPHERE SJT1F304.104
+,AICEMIN ! IN MIN ICE CONC - GLOBAL SJT1F304.105
+,HICEMIN ! IN MIN GRIDBOX MEAN ICE DEPTH (M) SJT1F304.106
+,HCLIMIT ! IN LIMIT FOR REDISTRIBUTING HEAT CONVERGENCES SJT1F304.107
C SLBCTL1A.85
C SLBCTL1A.86
C Include COMDECKS SLBCTL1A.87
C SLBCTL1A.88
*CALL C_LHEAT
SLBCTL1A.89
*CALL C_MDI
SJT1F304.108
C SLBCTL1A.90
C VARIABLES LOCAL TO THIS ROUTINE SLBCTL1A.91
C SLBCTL1A.92
INTEGER J ! LOOP COUNTER SJT1F304.109
+,L2 ! NUMBER OF DATA POINTS TO BE PROCESSED SJT1F304.110
+,JROWSM1 ! NUMBER OF P ROWS MINUS ONE SJT1F304.111
+,HALFROWS ! HALF THE NUMBER OF ROWS SJT1F304.112
+,NPOINTS ! NUMBER OF POINTS IN EACH HEMISPHERE SJT1F304.113
+,SPOINTS ! TOTAL NO OF POINTS - NPOINTS SJT1F304.114
+,SPTS1 ! FIRST POINT IN SOUTHERN HEMISPHERE SJT1F304.115
+,NPTSP1 ! NPOINTS PLUS 1 SJT1F304.116
C SLBCTL1A.95
REAL SLBCTL1A.96
+ SNOWRATE(L1) ! RATE OF SNOWFALL, IN KG M-2 S-1. SJT1F304.117
+,SUBLIMZ(L1) ! SUBLIMATION RATE (KG M_2 S_1) SJT1F304.123
+,HSNOWSLB(L1) ! SNOW DEPTH, NOT AVERAGED OVER GRID SJT1F304.124
+ ! BOX, JUST OVER THE ICE PORTION IN M. SLBCTL1A.109
+,TCLIMC(L1) ! CLIMATOLOGICAL SEA SURFACE TEMPS C SJT1F304.125
+,AICESLB(L1) ! ICE CONCENTRATION. SJT1F304.126
REAL ONEEM6 ! SMALL VALUE FOR ICE FRACTION INEQUALITY. SJC1F400.26
PARAMETER (ONEEM6 = 1.0E-06) SJC1F400.27
C SLBCTL1A.111
LOGICAL ICY(L1) ! TRUE IF BOX CONTAINS ICE. SLBCTL1A.112
+ ! THIS IS RESET IN SLABICE SJT1F304.127
+,OPENSEA(L1) ! TRUE IF BOX IS ICE_FREE OCEAN POINT. SJT1F304.128
+,NEWICE(L1) ! TRUE IF ICE IS FORMING. SJT1F304.129
C SLBCTL1A.113
C SLBCTL1A.114
C 1. INITIALISE VARIABLES SJT1F304.130
C SJT1F304.131
C INITIALISE THE AMOUNT OF DATA TO PROCESS SJT1F304.132
C SLBCTL1A.119
L2 = L1 SLBCTL1A.120
JROWSM1 = JROWS-1 SJT1F304.133
C SLBCTL1A.121
C CONVERT SUBLIMATION TO A RATE (USE LOCAL ARRAY FOR SAFETY) SJT1F304.134
C AND INITIALISE ADJUSTED HEAT CONVERGENCE ARRAY SJT1F304.135
C SLBCTL1A.125
DO J=1,L2 SLBCTL1A.126
SUBLIMZ(J) = SUBLIMA(J)/DT SJT1F304.136
ADJHCONV(J) = HEATCONV(J) SJT1F304.137
END DO SJT1F304.138
C SJT1F304.139
C INITIALISE THE ARRAY ICY AND THE ARRAY OPENSEA SJT1F304.140
C AND THE ARRAYS NEWICE AND OIFLUX SJT1F304.141
C SJT1F304.142
DO J=1,L2 SJT1F304.143
IF ( .NOT. LAND(J)) THEN SJT1F304.144
IF ( (AICEATM(J) .GE. (AICEMIN-oneem6))) THEN SJC1F400.28
ICY(J) = .TRUE. SJT1F304.146
OPENSEA(J) = .FALSE. SJT1F304.147
ELSE SJT1F304.148
ICY(J) = .FALSE. SJT1F304.149
OPENSEA(J) = .TRUE. SJT1F304.150
ENDIF SJT1F304.151
newice(j) = .false. SJT1F304.152
oiflux(j) = 0.0 SJT1F304.153
ainc_therm(j) = 0.0 SJT1F304.154
hinc_therm(j) = 0.0 SJT1F304.155
hsinc_therm(j)= 0.0 SJT1F304.156
ainc_dyn(j) = 0.0 SJT1F304.157
hinc_dyn(j) = 0.0 SJT1F304.158
hsinc_dyn(j) = 0.0 SJT1F304.159
hinc_diff(j) = 0.0 SJT1F304.160
hinc_adv(j) = 0.0 SJC1F400.29
hsinc_adv(j) = 0.0 SJC1F400.30
areas(j) = 0.0 SJC1F400.31
leadflux(j) = 0.0 SJC1F400.32
atmsflux(j) = 0.0 SJC1F400.33
dtadv(j) = 0.0 SJC1F400.34
dtdiff(j) = 0.0 SJC1F400.35
caryheat(j) = 0.0 SJC1F400.36
snowslab(j) = 0.0 SJC1F400.37
snowlead(j) = 0.0 SJC1F400.38
dtice(j) = 0.0 SJC1F400.39
ELSE SJT1F304.161
ICY(J) = .FALSE. SJT1F304.162
OPENSEA(J) = .FALSE. SJT1F304.163
newice(j) = .false. SJT1F304.164
oiflux(j) = rmdi SJT1F304.165
ainc_therm(j) = rmdi SJT1F304.166
hinc_therm(j) = rmdi SJT1F304.167
hsinc_therm(j)= rmdi SJT1F304.168
ainc_dyn(j) = rmdi SJT1F304.169
hinc_dyn(j) = rmdi SJT1F304.170
hsinc_dyn(j) = rmdi SJT1F304.171
hinc_diff(j) = rmdi SJT1F304.172
hinc_adv(j) = rmdi SJC1F400.40
hsinc_adv(j) = rmdi SJC1F400.41
areas(j) = rmdi SJC1F400.42
leadflux(j) = rmdi SJC1F400.43
atmsflux(j) = rmdi SJC1F400.44
dtadv(j) = rmdi SJC1F400.45
dtdiff(j) = rmdi SJC1F400.46
caryheat(j) = rmdi SJC1F400.47
snowslab(j) = rmdi SJC1F400.48
snowlead(j) = rmdi SJC1F400.49
dtice(j) = rmdi SJC1F400.50
ENDIF SJC1F400.51
END DO SJC1F400.52
DO J=1,L2 SJC1F400.53
IF ( opensea(j) ) THEN SJC1F400.54
wtsfc(j) = 0.0 SJC1F400.55
wtbase(j) = 0.0 SJC1F400.56
ELSE SJC1F400.57
wtsfc(j) = rmdi SJC1F400.58
wtbase(j) = rmdi SJC1F400.59
ENDIF SJT1F304.173
END DO SLBCTL1A.128
C SLBCTL1A.129
C----------------------------------------------------------------------- SLBCTL1A.130
C SLBCTL1A.131
C 2. CALL SLBHCADJ TO ADJUST HEAT CONVERGENCES SJT1F304.174
C IN NON-CALIBRATION EXPERIMENT SJT1F304.175
C SLBCTL1A.133
C SLBCTL1A.141
HALFROWS = JROWS/2 SJT1F304.176
NPOINTS = ICOLS*HALFROWS SJT1F304.177
SPOINTS = L1 - NPOINTS SJT1F304.178
NPTSP1 = NPOINTS+1 SJT1F304.179
SPTS1 = NPTSP1+ICOLS SJT1F304.180
C SLBCTL1A.143
IF (.NOT.CALIB) THEN SJT1F304.181
C SLBCTL1A.146
C ** NORTHERN HEMISPHERE SJT1F304.182
CALL SLBHCADJ
(L1,NPOINTS, SJT1F304.183
+ ADJHCONV(1), SJT1F304.184
+ COS_P_LATITUDE(1), SJT1F304.185
+ ICY(1), SJT1F304.186
+ HCLIMIT, SJT1F304.187
+ OPENSEA(1)) SJT1F304.188
C SJT1F304.189
C ** SOUTHERN HEMISPHERE SJT1F304.190
CALL SLBHCADJ
(L1,NPOINTS, SJT1F304.191
+ ADJHCONV(SPTS1), SJT1F304.192
+ COS_P_LATITUDE(SPTS1), SJT1F304.193
+ ICY(SPTS1), SJT1F304.194
+ HCLIMIT, SJT1F304.195
+ OPENSEA(SPTS1)) SJT1F304.196
C SJT1F304.197
ENDIF SJT1F304.198
C SLBCTL1A.148
C----------------------------------------------------------------------- SLBCTL1A.149
C SLBCTL1A.150
C SLBCTL1A.151
C 3. COMPUTE ATMSFLUX AND SNOWOUT FROM ATMOSPHERE FLUXES AND SLBCTL1A.152
C SNOWRATES. SLBCTL1A.153
C IT SHOULD BE POINTED OUT THAT AT SEA-ICE POINTS, THE SLBCTL1A.154
C RADIATIVE FLUXES, THE SENSIBLE SLBCTL1A.155
C HEAT FLUX AND THE EVAPORATION WERE ALREADY WEIGHTED BY THE SLBCTL1A.156
C FRACTIONAL AREA OF LEADS WHEN THEY WERE DIAGNOSED, SO NO SLBCTL1A.157
C SPECIAL CODE IS NECESSARY HERE. SLBCTL1A.158
C SLBCTL1A.159
IF (l_therm.or.l_idyn.or.l_idrif) then SJT1F304.199
DO J=1,L2 SJT1F304.200
IF (.NOT.LAND(J)) THEN SJT1F304.201
ATMSFLUX(J) = (SOLARIN(J)-BLUEIN(J)) + LONGWAVE(J) SJT1F304.202
+ - ( SENSIBLE(J) + LC*EVAP(J) ) SJT1F304.203
LEADFLUX(J) = ATMSFLUX(J) * AICEATM(J) SJT1F304.204
ATMSFLUX(J) = ATMSFLUX(J) * ( 1.0 - AICEATM(J) ) SJT1F304.205
+ + BLUEIN(J) SJT1F304.206
ENDIF SJT1F304.210
END DO SJT1F304.211
ELSE SJT1F304.212
DO J=1,L2 SJT1F304.213
ATMSFLUX(J) = SOLARIN(J) + LONGWAVE(J) SLBCTL1A.161
+ - ( SENSIBLE(J) + LC*EVAP(J) ) SLBCTL1A.162
LEADFLUX(J) = ATMSFLUX(J) SJT1F304.214
END DO SJT1F304.215
ENDIF SJT1F304.216
C SLBCTL1A.164
DO J=1,L2 SLBCTL1A.165
SNOWRATE(J) = SNOWLS(J) + SNOWCONV(J) SLBCTL1A.166
SNOWSLAB(J) = SNOWRATE(J) SJC1F400.60
IF (ICY(J)) THEN SJC1F400.61
SNOWSLAB(J) = 0.0 SJC1F400.62
SNOWLEAD(J) = SNOWRATE(J) SJC1F400.63
ENDIF SJC1F400.64
END DO SLBCTL1A.167
C SLBCTL1A.168
C SLBCTL1A.169
C SLBCTL1A.170
C----------------------------------------------------------------------- SLBCTL1A.171
C SLBCTL1A.172
C 4. CALL TRANSA2S TO CONVERT ATMOSPHERE VARIABLES TO FORMAT SLBCTL1A.173
C REQUIRED FOR SLAB MODEL SLBCTL1A.174
C SLBCTL1A.175
CALL TRANSA2S
(L1, SJT1F304.217
+ L1, SJT1F304.218
+ L_THERM, SJT1F304.219
+ LAND, SJT1F304.220
+ TSTARATM, SJT1F304.221
+ SLABTEMP, SJT1F304.222
+ HICEATM, SJT1F304.223
+ HICESLB, SJT1F304.224
+ HICEMIN, SJT1F304.225
+ HSNOWATM, SJT1F304.226
+ HSNOWSLB, SJT1F304.227
+ AICEATM, SJT1F304.228
+ AICESLB, SJT1F304.229
+ AICEMIN, SJT1F304.230
+ TCLIM, SJT1F304.231
+ TCLIMC, SJT1F304.232
+ HCLIM) SJT1F304.233
C SLBCTL1A.178
C----------------------------------------------------------------------- SLBCTL1A.179
C SLBCTL1A.180
C 5. CALL UMSLAB TO UPDATE SLAB OCEAN TEMPERATURE SJT1F304.234
C SLBCTL1A.183
C SLBCTL1A.184
CALL UMSLAB
( SDR1F404.20
*CALL ARGOINDX
SDR1F404.21
& ICY, SDR1F404.22
+ ATMSFLUX, SJT1F304.236
+ ADJHCONV, SJT1F304.237
+ SNOWSLAB, SJC1F400.65
+ CARYHEAT, SJT1F304.239
+ SLABTEMP, SJT1F304.240
+ wtsfc, SJC1F400.66
+ wtbase, SJC1F400.67
+ LAND, SJT1F304.241
+ AICESLB, SJT1F304.242
+ NEWICE, SJT1F304.243
+ OIFLUX, SJT1F304.244
+ DTADV,DTDIFF, SJC1F400.68
+ L1,L1,DT,DZ1,u_field, SJC1F400.69
+ JROWS, SJT1F304.246
+ JROWSM1, SJT1F304.247
+ ICOLS, SJT1F304.248
+ TCLIMC, SJT1F304.249
+ HCLIM, SJT1F304.250
+ CALIB, SJT1F304.251
+ L_THERM,L_IDYN,L_IDRIF, SJT1F304.252
+ L_SLBADV,LGLOBAL, SJT1F304.253
+ EDDYDIFF, SJT1F304.254
+ DELTA_LONG,DELTA_LAT,BASE_LAT, SJT1F304.255
+ AH, SJT1F304.256
+ OPENSEA, SJT1F304.257
+ ucurrent, SJT1F304.258
+ vcurrent, SJT1F304.259
+ COS_P_LATITUDE,COS_U_LATITUDE, SJT1F304.260
+ SEC_P_LATITUDE,SIN_U_LATITUDE) SJT1F304.261
C SLBCTL1A.188
C----------------------------------------------------------------------- SJT1F304.262
C SJT1F304.263
C 6. CALL SLAB_ICEDRIFT OR SLAB_ICEDYN TO UPDATE SEA_ICE VARIABLES SJT1F304.264
C (DYNAMIC INCREMENTS) SJT1F304.265
C SJT1F304.266
IF (L_IDRIF.OR.L_IDYN) THEN SJT1F304.267
C Initialise diagnostic arrays to hold increments SJT1F304.268
DO J=1,L2 SJT1F304.269
IF (.NOT. LAND(J)) THEN SJT1F304.270
AINC_DYN(J) = AICESLB(J) SJT1F304.271
HINC_DYN(J) = HICESLB(J) SJT1F304.272
HSINC_DYN(J) = HSNOWSLB(J)*AICESLB(J) SJC1F400.70
ENDIF SJT1F304.274
END DO SJT1F304.275
ENDIF SJT1F304.276
IF (L_IDRIF) THEN SJT1F304.277
C SJT1F304.278
call slab_icedrift
( SDR1F404.23
*CALL ARGOINDX
SDR1F404.24
& l1,l2,icols,jrows,jrowsm1,land SDR1F404.25
& ,LGLOBAL,aicemin,amxnorth,amxsouth,Ah_ice SDR1F404.26
& ,delta_lat,delta_long,base_lat,dt,cos_u_latitude SJT1F304.282
& ,cos_p_latitude,sec_p_latitude,sin_u_latitude SJT1F304.283
& ,wsx,wsy,ucurrent,vcurrent,aiceslb,hiceslb,hsnowslb,icy,newice SJT1F304.284
& ,hinc_diff,hinc_adv,hsinc_adv,areas SJC1F400.71
& ) SJT1F304.286
ELSEIF (L_IDYN) THEN SJT1F304.287
call slab_icedyn
( SJT1F304.288
*CALL ARGOINDX
SDR1F404.27
& icols,jrows,jrowsm1,LGLOBAL,delta_lat,delta_long,dt SJT1F304.289
& ,amxsouth,amxnorth,aicemin,Pstar_ice_strength SJT1F304.290
& ,kappa_ice_strength,cdw,tol_ifree SJT1F304.291
& ,nmax_ifree,weight_ifree,tol_icav,nmax_icav SJT1F304.292
& ,land,cos_u_latitude,cos_p_latitude,sec_p_latitude SJT1F304.293
& ,sin_u_latitude,coriolis,wsx,wsy,ucurrent,vcurrent SJT1F304.294
& ,aiceslb,hiceslb,hsnowslb,icy,newice,opensea,uice,vice SJT1F304.295
& ,pmax,pressure SJT1F304.296
& ) SJT1F304.297
ENDIF SJT1F304.298
C SJT1F304.299
C Copy increments into diagnostic arrays SJT1F304.300
C SJT1F304.301
IF (L_IDRIF.OR.L_IDYN) THEN SJT1F304.302
area = 0.0 SJC1F400.72
DO J=1,L2 SJT1F304.304
IF (.NOT. LAND(J)) THEN SJT1F304.305
AINC_DYN(J) = AICESLB(J) - AINC_DYN(J) SJT1F304.306
HINC_DYN(J) = HICESLB(J) - HINC_DYN(J) SJT1F304.307
HSINC_DYN(J) = HSNOWSLB(J)*AICESLB(J) - HSINC_DYN(J) SJC1F400.73
area=area+areas(j) SJC1F400.74
ENDIF SJT1F304.309
END DO SJT1F304.310
ENDIF SJT1F304.311
C SJT1F304.312
C----------------------------------------------------------------------- SJT1F304.313
C SJT1F304.314
C 7. CALL SLABICE TO UPDATE SEA_ICE VARIABLES SJT1F304.315
C NEED SEPARATE CALLS FOR NORTHERN AND SOUTHERN HEMISPHERES SJT1F304.316
C SJT1F304.317
C Initialise diagnostic arrays to hold increments SJT1F304.318
C SJT1F304.319
DO J=1,L2 SJT1F304.320
IF (.NOT. LAND(J)) THEN SJT1F304.321
AINC_THERM(J) = AICESLB(J) SJT1F304.322
HINC_THERM(J) = HICESLB(J) SJT1F304.323
HSINC_THERM(J) = HSNOWSLB(J)*AICESLB(J) SJC1F400.75
DTICE(J) = SLABTEMP(J) SJC1F400.76
ENDIF SJT1F304.325
END DO SJT1F304.326
C ** NORTHERN HEMISPHERE SJT1F304.327
CALL SLABICE
(ICY(1), SJT1F304.328
+ LEADFLUX(1), SJT1F304.329
+ NEWICE(1), SJT1F304.330
+ OIFLUX(1), SJT1F304.331
+ ATMSFLUX(1), SJT1F304.332
+ ADJHCONV(1), SJT1F304.333
+ HICESLB(1), SJT1F304.334
+ HSNOWSLB(1), SJT1F304.335
+ SNOWLEAD(1), SJC1F400.77
+ SUBLIMZ(1), SJT1F304.337
+ AICESLB(1), SJT1F304.338
+ CARYHEAT(1), SJT1F304.339
+ TOPMELTZ(1), SJT1F304.340
+ BOTMELTZ(1), SJT1F304.341
+ SLABTEMP(1), SJT1F304.342
+ L1,NPOINTS,DT,DZ1,H0, SJT1F304.343
+ L_THERM,L_IDYN,L_IDRIF, SJT1F304.344
+ AMXNORTH,AICEMIN, SJT1F304.345
+ TCLIMC(1),HCLIM(1),CALIB) SJT1F304.346
C SJT1F304.347
C ** SOUTHERN HEMISPHERE SJT1F304.348
CALL SLABICE
(ICY(NPTSP1), SJT1F304.349
+ LEADFLUX(NPTSP1), SJT1F304.350
+ NEWICE(NPTSP1), SJT1F304.351
+ OIFLUX(NPTSP1), SJT1F304.352
+ ATMSFLUX(NPTSP1), SJT1F304.353
+ ADJHCONV(NPTSP1), SJT1F304.354
+ HICESLB(NPTSP1), SJT1F304.355
+ HSNOWSLB(NPTSP1), SJT1F304.356
+ SNOWLEAD(NPTSP1), SJC1F400.78
+ SUBLIMZ(NPTSP1), SJT1F304.358
+ AICESLB(NPTSP1), SJT1F304.359
+ CARYHEAT(NPTSP1), SJT1F304.360
+ TOPMELTZ(NPTSP1), SJT1F304.361
+ BOTMELTZ(NPTSP1), SJT1F304.362
+ SLABTEMP(NPTSP1), SJT1F304.363
+ L1,SPOINTS,DT,DZ1,H0, SJT1F304.364
+ L_THERM,L_IDYN,L_IDRIF, SJT1F304.365
+ AMXSOUTH,AICEMIN, SJT1F304.366
+ TCLIMC(NPTSP1),HCLIM(NPTSP1),CALIB) SJT1F304.367
C SJT1F304.368
C Copy increments into diagnostic arrays SJT1F304.369
C SJT1F304.370
DO J=1,L2 SJT1F304.371
IF (.NOT. LAND(J)) THEN SJT1F304.372
AINC_THERM(J) = AICESLB(J) - AINC_THERM(J) SJT1F304.373
HINC_THERM(J) = HICESLB(J) - HINC_THERM(J) SJT1F304.374
HSINC_THERM(J) = HSNOWSLB(J)*AICESLB(J) - HSINC_THERM(J) SJC1F400.79
DTICE(J) = ( SLABTEMP(J) - DTICE(J) ) / DT SJC1F400.80
ENDIF SJT1F304.376
END DO SJT1F304.377
C SLBCTL1A.194
C SLBCTL1A.195
C----------------------------------------------------------------------- SLBCTL1A.196
C SLBCTL1A.197
C 8. CALL TRANSS2A TO CONVERT SLAB VARIABLES TO FORMAT SJT1F304.378
C REQUIRED FOR ATMOSPHERE SLBCTL1A.199
C SLBCTL1A.200
CALL TRANSS2A
(L1,L1, SJT1F304.379
+ LAND, SJT1F304.380
+ SLABTEMP, SJT1F304.381
+ TSTARATM, SJT1F304.382
+ AICESLB, SJT1F304.383
+ AICEATM, SJT1F304.384
+ HICESLB, SJT1F304.385
+ HICEATM, SJT1F304.386
+ HICEMIN, SJT1F304.387
+ HSNOWSLB, SJT1F304.388
+ HSNOWATM, SJT1F304.389
+ AICEMIN) SJT1F304.390
C SLBCTL1A.203
C----------------------------------------------------------------------- SLBCTL1A.204
C SJT1F304.391
C 9. FOR CALIBRATION EXPERIMENT INITIALISE HEATCONV SJT1F304.392
C SJT1F304.393
IF (CALIB) THEN SJT1F304.394
DO J=1,L2 SJT1F304.395
HEATCONV(J) = ADJHCONV(J) SJT1F304.396
END DO SJT1F304.397
ENDIF SJT1F304.398
C SLBCTL1A.205
RETURN SLBCTL1A.206
END SLBCTL1A.207
*ENDIF SLBCTL1A.208