*IF DEF,CONTROL,AND,DEF,SLAB SLBSTU1A.2
C ******************************COPYRIGHT****************************** GTS2F400.9163
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.9164
C GTS2F400.9165
C Use, duplication or disclosure of this code is subject to the GTS2F400.9166
C restrictions as set forth in the contract. GTS2F400.9167
C GTS2F400.9168
C Meteorological Office GTS2F400.9169
C London Road GTS2F400.9170
C BRACKNELL GTS2F400.9171
C Berkshire UK GTS2F400.9172
C RG12 2SZ GTS2F400.9173
C GTS2F400.9174
C If no contract has been raised with this copy of the code, the use, GTS2F400.9175
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.9176
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.9177
C Modelling at the above address. GTS2F400.9178
C ******************************COPYRIGHT****************************** GTS2F400.9179
C GTS2F400.9180
CLL Routine: SLABSTPU ------------------------------------------------ SLBSTU1A.3
CLL SLBSTU1A.4
CLL Purpose: To integrate slab ocean model by one timestep SLBSTU1A.5
CLL SLBSTU1A.6
CLL Called by: SLABSTEP SLBSTU1A.7
CLL SLBSTU1A.8
CLL Author: A.B.Keen Date: 5 July 1991 SLBSTU1A.9
CLL Modified: C.A.Senior Date: 22 March 1993 SLBSTU1A.10
CLL Modified: C.A.Senior Date: 30 March 1993 SLBSTU1A.11
CLL MODIFIED: A.B.KEEN DATE: 22 APRIL 1993 SLBSTU1A.12
CLL MODIFIED: A.B.KEEN DATE: 27 APRIL 1993 SLBSTU1A.13
CLL Modified: C.A.Senior Date: 08 July 1993 SLBSTU1A.14
CLL Reviewer: W.Ingram Date: 1 March 1993 SLBSTU1A.15
CLL Modified: C.A.Senior Date: 14 december 1993 SLBSTU1A.16
CLL Modified: C.A.Senior Date: 17 december 1993 SLBSTU1A.17
CLL Modified: C.A.Senior Date: 24 february 1994 SLBSTU1A.18
CLL Modified: C.A.Senior Date: 21 april 1994 SLBSTU1A.19
CLL Modified: J.F.Thomson Date: may 1994 SLBSTU1A.20
CLL Modified: R.E.Carnell Date: 13 september 1994 SLBSTU1A.21
CLL SLBSTU1A.22
CLL Tested under compiler: cft77 SLBSTU1A.23
CLL Tested under OS version: UNICOS 6.1 SLBSTU1A.24
CLL SLBSTU1A.25
CLL Code version no: 1 Date: 5 July 1991 SLBSTU1A.26
CLL Modification record: SLBSTU1A.27
CLL 14/12/93 Calling arg lists updated for 3.2 compatibility. SLBSTU1A.28
CLL 21/04/94 Calling arg lists updated for portable model SLBSTU1A.29
CLL 05/94 Dynamic sea ice and related control changes. SLBSTU1A.30
CLL 13/09/94 Switch for slab advection needed. SLBSTU1A.31
CLL 07/04/95 3.5 Submodel stage 1: replace slab_sm by slab_im GRR2F305.721
CLL (Slab is internal model not submodel). R.Rawlins GRR2F305.722
CLL 4.0 Add diagnostics for dynamic sea ice and vertical SST SJC1F400.133
CLL advection. J.F.Crossley SJC1F400.134
CLL 4.0 03/01/96 Copy atmos prognostics into Stashwork for GDR8F400.10
CLL SLAB diagnostics. D. Robinson GDR8F400.11
!LL 4.4 04/08/97 Add missing ARGOINDX to various argument lists. SDR1F404.28
!LL D. Robinson. SDR1F404.29
!LL 4.4 23/08/96 Declare & Initialise LGLOBAL. S. Mullerworth SSM1F404.1
!LL 4.5 03/09/98 Slab model has been modified to be SCH0F405.80
!LL compatible with atmosphere running mpp. Note: the SCH0F405.81
!LL cavitating fluid sea ice dynamics and slab temp. SCH0F405.82
!LL advection bits of code are not used at present and SCH0F405.83
!LL have not been taken into account in this coding. SCH0F405.84
!LL C. D. Hewitt SCH0F405.85
CLL GDR8F400.12
CLL programming standard : UM document 3 version 5 SLBSTU1A.32
CLL system components covered : P40 SLBSTU1A.33
CLL SLBSTU1A.34
CLL External documentation: UM Documentation paper 58 SLBSTU1A.35
CLL SLBSTU1A.36
CLLEND----------------------------------------------------------------- SLBSTU1A.37
C*L Arguments SLBSTU1A.38
SLBSTU1A.39
SUBROUTINE SLABSTPU( 1,104SLBSTU1A.40
*CALL ARGSIZE
SLBSTU1A.41
*CALL ARGD1
SLBSTU1A.42
*CALL ARGDUMA
SLBSTU1A.43
*CALL ARGDUMO
SLBSTU1A.44
*CALL ARGDUMW
GKR1F401.262
*CALL ARGSTS
SLBSTU1A.45
*CALL ARGPTRA
SLBSTU1A.46
*CALL ARGPTRO
SLBSTU1A.47
*CALL ARGCONA
SLBSTU1A.48
*CALL ARGPPX
GKR0F305.983
*CALL ARGOINDX
SDR1F404.30
*IF DEF,MPP SCH0F405.86
& WORK_FLD_SIZE, SCH0F405.87
& WORK_FLD_SIZEU, SCH0F405.88
*ENDIF SCH0F405.89
* INT40,FIELD_LEN, SLBSTU1A.49
* ICODE,CMESSAGE) SLBSTU1A.50
SLBSTU1A.51
C SLBSTU1A.52
*CALL TYPSIZE
SLBSTU1A.53
*CALL TYPD1
SLBSTU1A.54
*CALL TYPDUMA
SLBSTU1A.55
*CALL TYPDUMO
SLBSTU1A.56
*CALL TYPDUMW
GKR1F401.263
*CALL TYPSTS
SLBSTU1A.57
*CALL TYPPTRA
SLBSTU1A.58
*CALL TYPPTRO
SLBSTU1A.59
*CALL CMAXSIZE
SLBSTU1A.60
*CALL TYPCONA
SLBSTU1A.61
*CALL TYPOINDX
SDR1F404.31
SLBSTU1A.62
INTEGER SLBSTU1A.63
*IF DEF,MPP SCH0F405.90
& WORK_FLD_SIZE, ! Size of full global field SCH0F405.91
& WORK_FLD_SIZEU, ! Size of full global field on U grid SCH0F405.92
*ENDIF SCH0F405.93
& INT40, ! IN: Length of STASHWORK array required SLBSTU1A.64
& FIELD_LEN, ! IN: Length of field passed via SLBSTU1A.65
& ! argument list for dynalloc SLBSTU1A.66
& ICODE ! OUT: Return code : 0 Normal Exit SLBSTU1A.67
C ! : >0 Error SLBSTU1A.68
CHARACTER*(80) SLBSTU1A.69
& CMESSAGE ! OUT: Error message if return code >0 SLBSTU1A.70
C* SLBSTU1A.71
CL Include COMDECKS SLBSTU1A.72
C SLBSTU1A.73
*CALL CSUBMODL
SLBSTU1A.74
*CALL CTIME
SLBSTU1A.75
*CALL CHSUNITS
SLBSTU1A.76
*CALL CHISTORY
GDR3F305.183
*CALL CCONTROL
SLBSTU1A.78
*CALL CASPTR
SLBSTU1A.79
*CALL CSLBDATA
SLBSTU1A.80
*CALL C_GLOBAL
SLBSTU1A.81
*CALL PPXLOOK
GKR0F305.984
C SLBSTU1A.82
C STASH workspace for diagnostics SLBSTU1A.83
C SLBSTU1A.84
REAL STASHWORK(INT40) SLBSTU1A.85
C SLBSTU1A.86
C Local variables SLBSTU1A.87
C SLBSTU1A.88
INTEGER J ! loop counter SLBSTU1A.89
INTEGER im_ident ! Internal model identifier GDR4F305.143
INTEGER im_index ! Internal model index for stash GDR4F305.144
REAL DT SLBSTU1A.90
REAL REDHC(FIELD_LEN) ! Redistributed heat convergence SLBSTU1A.91
REAL GBMICE(FIELD_LEN) ! Grid Box Mean ice depth SLBSTU1A.92
REAL AINC_DYN(FIELD_LEN) ! Ice fraction increment due to SLBSTU1A.93
& ! dynamics. SLBSTU1A.94
REAL HINC_DYN(FIELD_LEN) ! Ice depth increment due to SLBSTU1A.95
& ! dynamics. SLBSTU1A.96
REAL HSINC_DYN(FIELD_LEN) ! Snow depth increment due to SLBSTU1A.97
& ! dynamics * ice fraction. SJC1F400.135
REAL AINC_THERM(FIELD_LEN) ! Ice fraction increment (therm) SLBSTU1A.99
REAL HINC_THERM(FIELD_LEN) ! Ice depth increment (therm) SLBSTU1A.100
REAL HSINC_THERM(FIELD_LEN)! Snow depth increment (therm) SJC1F400.136
& ! * ice fraction. SJC1F400.137
REAL HINC_DIFF(FIELD_LEN) ! Ice depth increment (diffusion). SLBSTU1A.102
REAL HINC_ADV(FIELD_LEN) ! Ice depth increment (advection). SJC1F400.138
REAL HSINC_ADV(FIELD_LEN) ! Snow depth increment (advection) SJC1F400.139
& ! * ice fraction. SJC1F400.140
REAL AREAS(FIELD_LEN) ! Grid box areas. SJC1F400.141
REAL OIFLUX(FIELD_LEN) ! Ocean to ice heat flux. SLBSTU1A.103
REAL PRESSURE(FIELD_LEN) ! Internal ice pressure. SLBSTU1A.104
REAL PMAX(FIELD_LEN) ! Ice strength. SLBSTU1A.105
REAL wtsfc(FIELD_LEN) ! w x slabtemp surface SJC1F400.142
REAL wtbase(FIELD_LEN) ! w x slabtemp base SJC1F400.143
REAL ATMSFLUX(FIELD_LEN) ! Net heat flux into slab SJC1F400.144
& ! through leads. SJC1F400.145
REAL LEADFLUX(FIELD_LEN) ! Net heat flux into ice SJC1F400.146
& ! through leads. SJC1F400.147
REAL DTADV(FIELD_LEN) ! Change in slab temp due to SJC1F400.148
& ! advection. SJC1F400.149
REAL DTDIFF(FIELD_LEN) ! Change in slab temp due to SJC1F400.150
& ! diffusion. SJC1F400.151
REAL CARYHEAT(FIELD_LEN) ! Negative heat flux (W M-2) due to SJC1F400.152
& ! slab temps below freezing. SJC1F400.153
REAL DTICE(FIELD_LEN) ! Change in slab temp due to SJC1F400.154
& ! ice fluxes. SJC1F400.155
REAL SNOWSLAB(FIELD_LEN) ! Snowfall rate melting in open ocean. SJC1F400.156
REAL SNOWLEAD(FIELD_LEN) ! Snowfall rate melting in leads. SJC1F400.157
C SLBSTU1A.106
C Set to true if Global model SSM1F404.2
LOGICAL LGLOBAL SSM1F404.3
*IF DEF,MPP SCH0F405.94
*CALL PARVARS
SCH0F405.95
*CALL GCCOM
SCH0F405.96
INTEGER info SCH0F405.97
C Set up local global variables SCH0F405.98
LOGICAL LAND(WORK_FLD_SIZE) ! IN ATMOSPHERIC MODEL LAND-SEA MASK SCH0F405.99
+ ! FALSE AT OCEAN POINTS SCH0F405.100
REAL SCH0F405.101
+ SOLARIN(WORK_FLD_SIZE) ! IN NET DOWNWARD SW FLUX FROM THE SCH0F405.102
+ ! ATMOSPHERE (ALL FREQUENCIES). SCH0F405.103
+,BLUEIN(WORK_FLD_SIZE) ! IN NET DOWNWARD SW FLUX FROM THE SCH0F405.104
+ ! ATMOSPHERE (BAND 1, SEA POINTS) SCH0F405.105
+,EVAP(WORK_FLD_SIZE) ! IN SURFACE EVAP FROM THE WATER SCH0F405.106
+ ! FRACTION OF ALL OCEAN POINTS. AT SEA-ICE SCH0F405.107
+ ! POINTS, THIS IS WEIGHTED BY THE SCH0F405.108
+ ! FRACTIONAL LEAD AREA. (KG M-2 S-1) SCH0F405.109
+,LONGWAVE(WORK_FLD_SIZE) ! IN NET DOWNWARD LONGWAVE HEAT FLUX. SCH0F405.110
+,SENSIBLE(WORK_FLD_SIZE) ! IN SENS HEAT FLUX (+VE UPWARD) FOR SCH0F405.111
+ ! THE WATER FRACTION OF ALL OCEAN POINTS. SCH0F405.112
+ ! AREA-WEIGHTED AT SEA-ICE POINTS. SCH0F405.113
+,HEATCONV(WORK_FLD_SIZE) ! IN HEAT CONVERGENCE RATE, IN W M-2 SCH0F405.114
+,SNOWLS(WORK_FLD_SIZE) ! IN L-S SNOWFALL RATE (KG M-2 S-1) SCH0F405.115
+,SNOWCONV(WORK_FLD_SIZE) ! IN CONV SNOWFALL RATE (KG M-2 S-1) SCH0F405.116
+,TSTARATM(WORK_FLD_SIZE) ! INOUT SST FROM ATMOS MODEL (K) SCH0F405.117
+,SLABTEMP(WORK_FLD_SIZE) ! INOUT TEMP OF THE SLAB OCEAN (C) SCH0F405.118
+,HICEATM(WORK_FLD_SIZE) ! INOUT EQUIV ICE D FROM ATM MODL (M) SCH0F405.119
+,HSNOWATM(WORK_FLD_SIZE) ! INOUT SNOW D FROM ATM MODEL(KG M-2) SCH0F405.120
+,AICEATM(WORK_FLD_SIZE) ! INOUT ICE CONC FROM ATMOS MODEL SCH0F405.121
+,UICE(WORK_FLD_SIZEU) ! INOUT X COMPONENT OF ICE VELOCITY (m/s) SCH0F405.122
+,VICE(WORK_FLD_SIZEU) ! INOUT Y COMPONENT OF ICE VELOCITY (m/s) SCH0F405.123
+,SUBLIMA(WORK_FLD_SIZE) ! IN ACCUM SUBLIMATION, IN KG M-2 SCH0F405.124
+,TOPMELTZ(WORK_FLD_SIZE) ! IN RATE OF MELTING OF SNOW IN W M-2 SCH0F405.125
+ ! (THIS CAN BE TRANSFERRED TO ICE.) SCH0F405.126
+,BOTMELTZ(WORK_FLD_SIZE) ! IN DIFFUSIVE HT FX THRO ICE. W M-2 SCH0F405.127
+ ! IF THIS IS +VE, ICE MELTS AT THE BASE. SCH0F405.128
+ ! IF IT IS -VE, ICE ACCRETES THERE. SCH0F405.129
+,HICESLB(WORK_FLD_SIZE) ! OUT MEAN ICE D OVER WHOLE GRID BOX SCH0F405.130
+ ! IN M SCH0F405.131
+,TCLIM(WORK_FLD_SIZE) ! IN CLIMATOL. SEA SURFACE TEMPS K SCH0F405.132
+,HCLIM(WORK_FLD_SIZE) ! IN CLIMATOLOGICAL SEA-ICE DEPTHS M SCH0F405.133
+,ADJHCONV(WORK_FLD_SIZE) ! OUT REDISTRIBUTED HEAT CONVERGENCES SCH0F405.134
+,COS_P_LATITUDE_G(WORK_FLD_SIZE) ! IN COS LATITUDE ON P GRID SCH0F405.135
+,COS_U_LATITUDE_G(WORK_FLD_SIZEU) ! IN COS LATITUDE ON UV GRID SCH0F405.136
+,SEC_P_LATITUDE_G(WORK_FLD_SIZE) ! IN 1/COS LATITUDE ON P GRID SCH0F405.137
+,SIN_U_LATITUDE_G(WORK_FLD_SIZEU) ! IN SIN LATITUDE ON UV GRID SCH0F405.138
+,wtsfc_G(WORK_FLD_SIZE) ! OUT w x slab temp at surface SCH0F405.139
+,wtbase_G(WORK_FLD_SIZE) ! OUT w x slab temp at base SCH0F405.140
+,CORIOLIS(WORK_FLD_SIZE) ! IN 2*OMEGA*SIN(LAT) ON P GRID SCH0F405.141
+,UCURRENT(WORK_FLD_SIZEU) ! IN X COMPONENT OF SFC CURRENT (M/S) SCH0F405.142
+,VCURRENT(WORK_FLD_SIZEU) ! IN Y COMPONENT OF SFC CURRENT (M/S) SCH0F405.143
+,WSX(WORK_FLD_SIZEU) ! IN X COMPONENT OF SFC STRESS (N/M2) SCH0F405.144
+,WSY(WORK_FLD_SIZEU) ! IN Y COMPONENT OF SFC STRESS (N/M2) SCH0F405.145
+,AINC_THERM_G(WORK_FLD_SIZE) ! OUT ice fraction inc (therm) SCH0F405.146
+,HINC_THERM_G(WORK_FLD_SIZE) ! OUT ice depth inc (therm) SCH0F405.147
+,HSINC_THERM_G(WORK_FLD_SIZE) ! OUT snow d inc *ice fract (therm) SCH0F405.148
+,AINC_DYN_G(WORK_FLD_SIZE) ! OUT ice fraction inc (dynamics) SCH0F405.149
+,HINC_DYN_G(WORK_FLD_SIZE) ! OUT ice depth inc (dynamics) SCH0F405.150
+,HSINC_DYN_G(WORK_FLD_SIZE) ! OUT snow d inc *ice fract (dyn) SCH0F405.151
+,HINC_DIFF_G(WORK_FLD_SIZE) ! OUT ice depth inc (diffusion) SCH0F405.152
+,HINC_ADV_G(WORK_FLD_SIZE) ! OUT ice depth inc (advection) SCH0F405.153
+,HSINC_ADV_G(WORK_FLD_SIZE) ! OUT snow d inc *ice fract (advec) SCH0F405.154
+,AREAS_G(WORK_FLD_SIZE) ! OUT grid box areas SCH0F405.155
+,OIFLUX_G(WORK_FLD_SIZE) ! OUT ocean to ice heat flux SCH0F405.156
+,PRESSURE_G(WORK_FLD_SIZE) ! OUT internal ice pressure SCH0F405.157
+,PMAX_G(WORK_FLD_SIZE) ! OUT ice strength SCH0F405.158
+,ATMSFLUX_G(WORK_FLD_SIZE) ! OUT net heat into slab thro leads SCH0F405.159
+,LEADFLUX_G(WORK_FLD_SIZE) ! OUT net heat into ice thro leads SCH0F405.160
+,DTADV_G(WORK_FLD_SIZE) ! OUT slab hting rate due to advec SCH0F405.161
+,DTDIFF_G(WORK_FLD_SIZE) ! OUT slab hting rate due to diffus SCH0F405.162
+,CARYHEAT_G(WORK_FLD_SIZE) ! OUT -ve heat flux due to slab SCH0F405.163
+ ! temperatures falling below freezing. SCH0F405.164
+ ! W M-2 SCH0F405.165
+,SNOWSLAB_G(WORK_FLD_SIZE) ! OUT snowfall rate melting in slab SCH0F405.166
+,SNOWLEAD_G(WORK_FLD_SIZE) ! OUT snowfll rate melting in leads SCH0F405.167
+,DTICE_G(WORK_FLD_SIZE) ! OUT slb hting rt from ice melt etc SCH0F405.168
SCH0F405.169
*ENDIF SCH0F405.170
C External subroutines called SLBSTU1A.107
C SLBSTU1A.108
EXTERNAL SLBSTU1A.109
& SLABCNTL, SLBSTU1A.110
*IF DEF,MPP SCH0F405.171
& GATHER_FIELD, SCATTER_FIELD, SWAPBOUNDS, SCH0F405.172
*ENDIF SCH0F405.173
& TIMER, SLBSTU1A.111
& STASH SLBSTU1A.112
C SLBSTU1A.113
C SLBSTU1A.114
C SLBSTU1A.115
ICODE=0 SLBSTU1A.116
CMESSAGE=' ' SLBSTU1A.117
DT=REAL(SECS_PER_PERIODim(s_im))/REAL(STEPS_PER_PERIODim(s_im)) GRR2F305.723
C SLBSTU1A.119
WRITE(6,*) 'SLAB TIMESTEP ',STEPim(s_im) GDR8F400.13
C SLBSTU1A.121
im_ident = slab_im GDR4F305.145
im_index = internal_model_index(im_ident) GDR4F305.146
C SLBSTU1A.122
C Set global model flag from fixed length header SSM1F404.4
LGLOBAL = (A_FIXHD(4).EQ.0) SSM1F404.5
SSM1F404.6
SSM1F404.7
*IF DEF,MPP SCH0F405.174
C Gather all distributed variables to PE 0 SCH0F405.175
SCH0F405.176
CALL GATHER_FIELD
(D1(JLAND),LAND,lasize(1), SCH0F405.177
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.178
CALL GATHER_FIELD
(D1(JS_SOLARIN),SOLARIN,lasize(1), SCH0F405.179
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.180
CALL GATHER_FIELD
(D1(JS_BLUEIN),BLUEIN,lasize(1), SCH0F405.181
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.182
CALL GATHER_FIELD
(D1(JS_EVAP),EVAP,lasize(1), SCH0F405.183
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.184
CALL GATHER_FIELD
(D1(JS_LONGWAVE),LONGWAVE,lasize(1), SCH0F405.185
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.186
CALL GATHER_FIELD
(D1(JS_SENSIBLE),SENSIBLE,lasize(1), SCH0F405.187
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.188
CALL GATHER_FIELD
(D1(JS_SNOWLS),SNOWLS,lasize(1), SCH0F405.189
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.190
CALL GATHER_FIELD
(D1(JS_SNOWCONV),SNOWCONV,lasize(1), SCH0F405.191
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.192
CALL GATHER_FIELD
(D1(JTSTAR),TSTARATM,lasize(1), SCH0F405.193
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.194
CALL GATHER_FIELD
(D1(JTSLAB),SLABTEMP,lasize(1), SCH0F405.195
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.196
CALL GATHER_FIELD
(D1(JICE_THICKNESS), SCH0F405.197
& HICEATM,lasize(1), SCH0F405.198
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.199
CALL GATHER_FIELD
(D1(JSNODEP),HSNOWATM,lasize(1), SCH0F405.200
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.201
CALL GATHER_FIELD
(D1(JICE_FRACTION),AICEATM,lasize(1), SCH0F405.202
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.203
CALL GATHER_FIELD
(D1(JUICE),UICE,lasize(1), SCH0F405.204
& lasize(2),glsize(1),glsize(2)-1,0,GC_ALL_PROC_GROUP,info) SCH0F405.205
CALL GATHER_FIELD
(D1(JVICE),VICE,lasize(1), SCH0F405.206
& lasize(2),glsize(1),glsize(2)-1,0,GC_ALL_PROC_GROUP,info) SCH0F405.207
CALL GATHER_FIELD
(D1(JS_SUBLIMZ),SUBLIMA,lasize(1), SCH0F405.208
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.209
CALL GATHER_FIELD
(D1(JS_TOPMELTZ),TOPMELTZ,lasize(1), SCH0F405.210
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.211
CALL GATHER_FIELD
(D1(JS_BOTMELTZ),BOTMELTZ,lasize(1), SCH0F405.212
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.213
CALL GATHER_FIELD
(D1(JTCLIM),TCLIM,lasize(1), SCH0F405.214
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.215
CALL GATHER_FIELD
(D1(JHCLIM),HCLIM,lasize(1), SCH0F405.216
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.217
CALL GATHER_FIELD
(COS_P_LATITUDE,COS_P_LATITUDE_G,lasize(1), SCH0F405.218
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.219
CALL GATHER_FIELD
(COS_U_LATITUDE,COS_U_LATITUDE_G,lasize(1), SCH0F405.220
& lasize(2),glsize(1),glsize(2)-1,0,GC_ALL_PROC_GROUP,info) SCH0F405.221
CALL GATHER_FIELD
(SEC_P_LATITUDE,SEC_P_LATITUDE_G,lasize(1), SCH0F405.222
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.223
CALL GATHER_FIELD
(SIN_U_LATITUDE,SIN_U_LATITUDE_G,lasize(1), SCH0F405.224
& lasize(2),glsize(1),glsize(2)-1,0,GC_ALL_PROC_GROUP,info) SCH0F405.225
CALL GATHER_FIELD
(F3_P,CORIOLIS,lasize(1), SCH0F405.226
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.227
CALL GATHER_FIELD
(D1(JS_USEA),UCURRENT,lasize(1), SCH0F405.228
& lasize(2),glsize(1),glsize(2)-1,0,GC_ALL_PROC_GROUP,info) SCH0F405.229
CALL GATHER_FIELD
(D1(JS_VSEA),VCURRENT,lasize(1), SCH0F405.230
& lasize(2),glsize(1),glsize(2)-1,0,GC_ALL_PROC_GROUP,info) SCH0F405.231
CALL GATHER_FIELD
(D1(JS_WSX),WSX,lasize(1), SCH0F405.232
& lasize(2),glsize(1),glsize(2)-1,0,GC_ALL_PROC_GROUP,info) SCH0F405.233
CALL GATHER_FIELD
(D1(JS_WSY),WSY,lasize(1), SCH0F405.234
& lasize(2),glsize(1),glsize(2)-1,0,GC_ALL_PROC_GROUP,info) SCH0F405.235
SCH0F405.236
CALL GATHER_FIELD
(REDHC,ADJHCONV,lasize(1), SCH0F405.237
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.238
CALL GATHER_FIELD
(GBMICE,HICESLB,lasize(1), SCH0F405.239
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.240
SCH0F405.241
CALL GATHER_FIELD
(AREAS,AREAS_G,lasize(1), SCH0F405.242
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.243
C SCH0F405.244
C SCH0F405.245
C Call the Slab Ocean Model (either calibration or non-calibration) SCH0F405.246
C with global variables (variables are distributed over LPG in SCH0F405.247
C the atmosphere code, but the slab model will be called with all SCH0F405.248
C variables on PE 0) SCH0F405.249
C SCH0F405.250
IF (.not. CALIB) THEN SCH0F405.251
CALL GATHER_FIELD
(D1(JS_HEATCONV),HEATCONV,lasize(1), SCH0F405.252
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.253
ENDIF SCH0F405.254
SCH0F405.255
SCH0F405.256
IF (mype .eq. 0) THEN SCH0F405.257
SCH0F405.258
CALL SLABCNTL
( SCH0F405.259
*CALL ARGOINDX
SCH0F405.260
+ WORK_FLD_SIZE,WORK_FLD_SIZEU,glsize(1),glsize(2),LAND,DT,DZ1, SCH0F405.261
+ SOLARIN, BLUEIN, EVAP, LONGWAVE, SENSIBLE, HEATCONV, SCH0F405.262
+ SNOWLS, SNOWCONV, TSTARATM, SLABTEMP, HICEATM, HSNOWATM, SCH0F405.263
+ AICEATM, SUBLIMA, TOPMELTZ, BOTMELTZ, SCH0F405.264
+ UICE,VICE, SCH0F405.265
+ UCURRENT,VCURRENT,WSX,WSY, SCH0F405.266
+ H0,AMXSOUTH,AMXNORTH, SCH0F405.267
+ AICEMIN,HICEMIN, SCH0F405.268
+ TCLIM,HCLIM,CALIB,HICESLB, SCH0F405.269
+ AINC_DYN_G,HINC_DYN_G,HSINC_DYN_G,HINC_DIFF_G, SCH0F405.270
+ HINC_ADV_G,HSINC_ADV_G,AREAS_G, SCH0F405.271
+ AINC_THERM_G,HINC_THERM_G,HSINC_THERM_G,OIFLUX_G, SCH0F405.272
+ PRESSURE_G,PMAX_G,LEADFLUX_G,ATMSFLUX_G,DTADV_G,DTDIFF_G, SCH0F405.273
+ CARYHEAT_G, SCH0F405.274
+ SNOWSLAB_G,SNOWLEAD_G,DTICE_G, SCH0F405.275
+ EDDYDIFF,epsilon,Ah,HCLIMIT,Ah_ice, SCH0F405.276
+ Pstar_ice_strength,kappa_ice_strength,cdw,tol_icav,tol_ifree, SCH0F405.277
+ weight_ifree,nmax_icav,nmax_ifree, SCH0F405.278
+ L_THERM,L_IDYN,L_IDRIF,LGLOBAL,L_SLBADV, SCH0F405.279
+ COS_P_LATITUDE_G,COS_U_LATITUDE_G,SEC_P_LATITUDE_G, SCH0F405.280
+ SIN_U_LATITUDE_G,CORIOLIS,ADJHCONV,wtsfc_G,wtbase_G, SCH0F405.281
+ A_REALHD(1),A_REALHD(2),A_REALHD(3)) SCH0F405.282
SCH0F405.283
ENDIF SCH0F405.284
SCH0F405.285
SCH0F405.286
IF (CALIB) THEN SCH0F405.287
CALL SCATTER_FIELD
(STASHWORK(SI(201,40,im_index)),HEATCONV, SCH0F405.288
& lasize(1),lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.289
CALL SWAPBOUNDS
(STASHWORK(SI(201,40,im_index)), SCH0F405.290
& lasize(1),lasize(2),Offx,Offy,1) SCH0F405.291
ENDIF SCH0F405.292
SCH0F405.293
SCH0F405.294
C Scatter rest of fields back to LPG SCH0F405.295
SCH0F405.296
CALL SCATTER_FIELD
(D1(JTSTAR),TSTARATM,lasize(1), SCH0F405.297
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.298
CALL SCATTER_FIELD
(D1(JTSLAB),SLABTEMP,lasize(1), SCH0F405.299
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.300
CALL SCATTER_FIELD
(D1(JICE_THICKNESS), SCH0F405.301
& HICEATM,lasize(1), SCH0F405.302
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.303
CALL SCATTER_FIELD
(D1(JSNODEP),HSNOWATM,lasize(1), SCH0F405.304
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.305
CALL SCATTER_FIELD
(D1(JICE_FRACTION),AICEATM,lasize(1), SCH0F405.306
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.307
CALL SCATTER_FIELD
(GBMICE,HICESLB,lasize(1), SCH0F405.308
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.309
CALL SCATTER_FIELD
(REDHC,ADJHCONV,lasize(1), SCH0F405.310
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.311
CALL SCATTER_FIELD
(wtsfc,wtsfc_G,lasize(1), SCH0F405.312
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.313
CALL SCATTER_FIELD
(wtbase,wtbase_G,lasize(1), SCH0F405.314
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.315
CALL SCATTER_FIELD
(AINC_THERM,AINC_THERM_G,lasize(1), SCH0F405.316
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.317
CALL SCATTER_FIELD
(HINC_THERM,HINC_THERM_G,lasize(1), SCH0F405.318
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.319
CALL SCATTER_FIELD
(HSINC_THERM,HSINC_THERM_G,lasize(1), SCH0F405.320
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.321
CALL SCATTER_FIELD
(AINC_DYN,AINC_DYN_G,lasize(1), SCH0F405.322
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.323
CALL SCATTER_FIELD
(HINC_DYN,HINC_DYN_G,lasize(1), SCH0F405.324
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.325
CALL SCATTER_FIELD
(HSINC_DYN,HSINC_DYN_G,lasize(1), SCH0F405.326
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.327
CALL SCATTER_FIELD
(HINC_DIFF,HINC_DIFF_G,lasize(1), SCH0F405.328
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.329
CALL SCATTER_FIELD
(HINC_ADV,HINC_ADV_G,lasize(1), SCH0F405.330
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.331
CALL SCATTER_FIELD
(HSINC_ADV,HSINC_ADV_G,lasize(1), SCH0F405.332
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.333
CALL SCATTER_FIELD
(AREAS,AREAS_G,lasize(1), SCH0F405.334
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.335
CALL SCATTER_FIELD
(OIFLUX,OIFLUX_G,lasize(1), SCH0F405.336
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.337
CALL SCATTER_FIELD
(PRESSURE,PRESSURE_G,lasize(1), SCH0F405.338
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.339
CALL SCATTER_FIELD
(PMAX,PMAX_G,lasize(1), SCH0F405.340
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.341
CALL SCATTER_FIELD
(ATMSFLUX,ATMSFLUX_G,lasize(1), SCH0F405.342
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.343
CALL SCATTER_FIELD
(LEADFLUX,LEADFLUX_G,lasize(1), SCH0F405.344
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.345
CALL SCATTER_FIELD
(DTADV,DTADV_G,lasize(1), SCH0F405.346
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.347
CALL SCATTER_FIELD
(DTDIFF,DTDIFF_G,lasize(1), SCH0F405.348
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.349
CALL SCATTER_FIELD
(CARYHEAT,CARYHEAT_G,lasize(1), SCH0F405.350
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.351
CALL SCATTER_FIELD
(SNOWSLAB,SNOWSLAB_G,lasize(1), SCH0F405.352
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.353
CALL SCATTER_FIELD
(SNOWLEAD,SNOWLEAD_G,lasize(1), SCH0F405.354
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.355
CALL SCATTER_FIELD
(DTICE,DTICE_G,lasize(1), SCH0F405.356
& lasize(2),glsize(1),glsize(2),0,GC_ALL_PROC_GROUP,info) SCH0F405.357
SCH0F405.358
CALL SWAPBOUNDS
(D1(JTSTAR),lasize(1),lasize(2),Offx,Offy,1) SCH0F405.359
CALL SWAPBOUNDS
(D1(JTSLAB),lasize(1),lasize(2),Offx,Offy,1) SCH0F405.360
CALL SWAPBOUNDS
(D1(JICE_THICKNESS),lasize(1),lasize(2), SCH0F405.361
& Offx,Offy,1) SCH0F405.362
CALL SWAPBOUNDS
(D1(JSNODEP),lasize(1),lasize(2),Offx,Offy,1) SCH0F405.363
CALL SWAPBOUNDS
(D1(JICE_FRACTION),lasize(1),lasize(2), SCH0F405.364
& Offx,Offy,1) SCH0F405.365
CALL SWAPBOUNDS
(GBMICE,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.366
CALL SWAPBOUNDS
(REDHC,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.367
CALL SWAPBOUNDS
(wtsfc,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.368
CALL SWAPBOUNDS
(wtbase,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.369
CALL SWAPBOUNDS
(AINC_THERM,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.370
CALL SWAPBOUNDS
(HINC_THERM,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.371
CALL SWAPBOUNDS
(HSINC_THERM,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.372
CALL SWAPBOUNDS
(AINC_DYN,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.373
CALL SWAPBOUNDS
(HINC_DYN,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.374
CALL SWAPBOUNDS
(HSINC_DYN,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.375
CALL SWAPBOUNDS
(HINC_DIFF,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.376
CALL SWAPBOUNDS
(HINC_ADV,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.377
CALL SWAPBOUNDS
(HSINC_ADV,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.378
CALL SWAPBOUNDS
(AREAS,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.379
CALL SWAPBOUNDS
(OIFLUX,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.380
CALL SWAPBOUNDS
(PRESSURE,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.381
CALL SWAPBOUNDS
(PMAX,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.382
CALL SWAPBOUNDS
(ATMSFLUX,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.383
CALL SWAPBOUNDS
(LEADFLUX,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.384
CALL SWAPBOUNDS
(DTADV,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.385
CALL SWAPBOUNDS
(DTDIFF,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.386
CALL SWAPBOUNDS
(CARYHEAT,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.387
CALL SWAPBOUNDS
(SNOWSLAB,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.388
CALL SWAPBOUNDS
(SNOWLEAD,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.389
CALL SWAPBOUNDS
(DTICE,lasize(1),lasize(2),Offx,Offy,1) SCH0F405.390
SCH0F405.391
SCH0F405.392
C copy distributed_variables to stashwork if required SCH0F405.393
C finally call stash SCH0F405.394
SCH0F405.395
*ELSE SCH0F405.396
C SLBSTU1A.123
C SLBSTU1A.124
C Call the Slab Ocean Model (either calibration or non-calibration) SLBSTU1A.125
C SLBSTU1A.126
IF (CALIB) THEN ! Calibration mode: heat convergence diagnosed SLBSTU1A.127
CALL SLABCNTL
( SLBSTU1A.128
*CALL ARGOINDX
SDR1F404.32
+ P_FIELD,U_FIELD,ROW_LENGTH,P_ROWS,D1(JLAND),DT,DZ1, SLBSTU1A.129
+ D1(JS_SOLARIN), SLBSTU1A.130
+ D1(JS_BLUEIN), SLBSTU1A.131
+ D1(JS_EVAP), SLBSTU1A.132
+ D1(JS_LONGWAVE), SLBSTU1A.133
+ D1(JS_SENSIBLE), SLBSTU1A.134
+ STASHWORK(SI(201,40,im_index)), GDR4F305.147
+ D1(JS_SNOWLS), SLBSTU1A.136
+ D1(JS_SNOWCONV), SLBSTU1A.137
+ D1(JTSTAR), SLBSTU1A.138
+ D1(JTSLAB), SLBSTU1A.139
+ D1(JICE_THICKNESS), SLBSTU1A.140
+ D1(JSNODEP), SLBSTU1A.141
+ D1(JICE_FRACTION), SLBSTU1A.142
+ D1(JS_SUBLIMZ), SLBSTU1A.143
+ D1(JS_TOPMELTZ), SLBSTU1A.144
+ D1(JS_BOTMELTZ), SLBSTU1A.145
+ D1(JUICE),D1(JVICE), SLBSTU1A.146
+ D1(JS_USEA),D1(JS_VSEA), SLBSTU1A.147
+ D1(JS_WSX),D1(JS_WSY), SLBSTU1A.148
+ H0,AMXSOUTH,AMXNORTH, SLBSTU1A.149
+ AICEMIN,HICEMIN, SLBSTU1A.150
+ D1(JTCLIM),D1(JHCLIM),CALIB,GBMICE, SLBSTU1A.151
+ AINC_DYN,HINC_DYN,HSINC_DYN,HINC_DIFF, SLBSTU1A.152
+ HINC_ADV,HSINC_ADV,AREAS, SJC1F400.158
+ AINC_THERM,HINC_THERM,HSINC_THERM,OIFLUX, SLBSTU1A.153
+ PRESSURE,PMAX,LEADFLUX,ATMSFLUX,DTADV,DTDIFF,CARYHEAT, SJC1F400.159
+ SNOWSLAB,SNOWLEAD,DTICE, SJC1F400.160
+ EDDYDIFF,epsilon,Ah,HCLIMIT,Ah_ice, SLBSTU1A.155
+ Pstar_ice_strength,kappa_ice_strength,cdw,tol_icav,tol_ifree, SLBSTU1A.156
+ weight_ifree,nmax_icav,nmax_ifree, SLBSTU1A.157
+ L_THERM,L_IDYN,L_IDRIF,LGLOBAL,L_SLBADV, SLBSTU1A.158
+ COS_P_LATITUDE,COS_U_LATITUDE,SEC_P_LATITUDE, SLBSTU1A.159
+ SIN_U_LATITUDE,F3_P,REDHC,wtsfc,wtbase, SJC1F400.161
+ A_REALHD(1),A_REALHD(2),A_REALHD(3)) SLBSTU1A.161
SLBSTU1A.162
ELSE ! non-calibration mode: heat convergence applied SLBSTU1A.163
C after adjustments due to SLBSTU1A.164
C diffusion and redistribution SLBSTU1A.165
CALL SLABCNTL
( SLBSTU1A.166
*CALL ARGOINDX
SDR1F404.33
+ P_FIELD,U_FIELD,ROW_LENGTH,P_ROWS,D1(JLAND),DT,DZ1, SLBSTU1A.167
+ D1(JS_SOLARIN), SLBSTU1A.168
+ D1(JS_BLUEIN), SLBSTU1A.169
+ D1(JS_EVAP), SLBSTU1A.170
+ D1(JS_LONGWAVE), SLBSTU1A.171
+ D1(JS_SENSIBLE), SLBSTU1A.172
+ D1(JS_HEATCONV), SLBSTU1A.173
+ D1(JS_SNOWLS), SLBSTU1A.174
+ D1(JS_SNOWCONV), SLBSTU1A.175
+ D1(JTSTAR), SLBSTU1A.176
+ D1(JTSLAB), SLBSTU1A.177
+ D1(JICE_THICKNESS), SLBSTU1A.178
+ D1(JSNODEP), SLBSTU1A.179
+ D1(JICE_FRACTION), SLBSTU1A.180
+ D1(JS_SUBLIMZ), SLBSTU1A.181
+ D1(JS_TOPMELTZ), SLBSTU1A.182
+ D1(JS_BOTMELTZ), SLBSTU1A.183
+ D1(JUICE),D1(JVICE), SLBSTU1A.184
+ D1(JS_USEA),D1(JS_VSEA), SLBSTU1A.185
+ D1(JS_WSX),D1(JS_WSY), SLBSTU1A.186
+ H0,AMXSOUTH,AMXNORTH, SLBSTU1A.187
+ AICEMIN,HICEMIN, SLBSTU1A.188
+ D1(JTCLIM),D1(JHCLIM),CALIB,GBMICE, SLBSTU1A.189
+ AINC_DYN,HINC_DYN,HSINC_DYN,HINC_DIFF, SLBSTU1A.190
+ HINC_ADV,HSINC_ADV,AREAS, SJC1F400.162
+ AINC_THERM,HINC_THERM,HSINC_THERM,OIFLUX, SLBSTU1A.191
+ PRESSURE,PMAX,LEADFLUX,ATMSFLUX,DTADV,DTDIFF,CARYHEAT, SJC1F400.163
+ SNOWSLAB,SNOWLEAD,DTICE, SJC1F400.164
+ EDDYDIFF,epsilon,Ah,HCLIMIT,Ah_ice, SLBSTU1A.193
+ Pstar_ice_strength,kappa_ice_strength,cdw,tol_icav,tol_ifree, SLBSTU1A.194
+ weight_ifree,nmax_icav,nmax_ifree, SLBSTU1A.195
+ L_THERM,L_IDYN,L_IDRIF,LGLOBAL,L_SLBADV, SLBSTU1A.196
+ COS_P_LATITUDE,COS_U_LATITUDE,SEC_P_LATITUDE, SLBSTU1A.197
+ SIN_U_LATITUDE,F3_P,REDHC,wtsfc,wtbase, SJC1F400.165
+ A_REALHD(1),A_REALHD(2),A_REALHD(3)) SLBSTU1A.199
ENDIF SLBSTU1A.200
*ENDIF SCH0F405.397
C SLBSTU1A.201
C SLBSTU1A.202
IF ( SF(203,40) ) THEN SLBSTU1A.203
DO J=1, P_FIELD SLBSTU1A.204
STASHWORK(SI(203,40,im_index)-1+J) = GBMICE(J) GDR4F305.148
ENDDO SLBSTU1A.206
ENDIF SLBSTU1A.207
IF ( SF(202,40) ) THEN SLBSTU1A.208
DO J=1, P_FIELD SLBSTU1A.209
STASHWORK(SI(202,40,im_index)-1+J) = REDHC(J) GDR4F305.149
ENDDO SLBSTU1A.211
ENDIF SLBSTU1A.212
IF ( SF(204,40) ) THEN SLBSTU1A.213
DO J=1, P_FIELD SLBSTU1A.214
STASHWORK(SI(204,40,im_index)-1+J) = AINC_DYN(J) GDR4F305.150
ENDDO SLBSTU1A.216
ENDIF SLBSTU1A.217
IF ( SF(205,40) ) THEN SLBSTU1A.218
DO J=1, P_FIELD SLBSTU1A.219
STASHWORK(SI(205,40,im_index)-1+J) = HINC_DYN(J) GDR4F305.151
ENDDO SLBSTU1A.221
ENDIF SLBSTU1A.222
IF ( SF(206,40) ) THEN SLBSTU1A.223
DO J=1, P_FIELD SLBSTU1A.224
STASHWORK(SI(206,40,im_index)-1+J) = HINC_DIFF(J) GDR4F305.152
ENDDO SLBSTU1A.226
ENDIF SLBSTU1A.227
IF ( SF(207,40) ) THEN SLBSTU1A.228
DO J=1, P_FIELD SLBSTU1A.229
STASHWORK(SI(207,40,im_index)-1+J) = HSINC_DYN(J) GDR4F305.153
ENDDO SLBSTU1A.231
ENDIF SLBSTU1A.232
IF ( SF(208,40) ) THEN SLBSTU1A.233
DO J=1, P_FIELD SLBSTU1A.234
STASHWORK(SI(208,40,im_index)-1+J) = AINC_THERM(J) GDR4F305.154
ENDDO SLBSTU1A.236
ENDIF SLBSTU1A.237
IF ( SF(209,40) ) THEN SLBSTU1A.238
DO J=1, P_FIELD SLBSTU1A.239
STASHWORK(SI(209,40,im_index)-1+J) = HINC_THERM(J) GDR4F305.155
ENDDO SLBSTU1A.241
ENDIF SLBSTU1A.242
IF ( SF(210,40) ) THEN SLBSTU1A.243
DO J=1, P_FIELD SLBSTU1A.244
STASHWORK(SI(210,40,im_index)-1+J) = HSINC_THERM(J) GDR4F305.156
ENDDO SLBSTU1A.246
ENDIF SLBSTU1A.247
IF ( SF(211,40) ) THEN SLBSTU1A.248
DO J=1, P_FIELD SLBSTU1A.249
STASHWORK(SI(211,40,im_index)-1+J) = OIFLUX(J) GDR4F305.157
ENDDO SLBSTU1A.251
ENDIF SLBSTU1A.252
IF ( SF(212,40) ) THEN SLBSTU1A.253
DO J=1, P_FIELD SLBSTU1A.254
STASHWORK(SI(212,40,im_index)-1+J) = PRESSURE(J) GDR4F305.158
ENDDO SLBSTU1A.256
ENDIF SLBSTU1A.257
IF ( SF(213,40) ) THEN SLBSTU1A.258
DO J=1, P_FIELD SLBSTU1A.259
STASHWORK(SI(213,40,im_index)-1+J) = PMAX(J) GDR4F305.159
ENDDO SLBSTU1A.261
ENDIF SLBSTU1A.262
IF ( SF(214,40) ) THEN SJC1F400.166
DO J=1, P_FIELD SJC1F400.167
STASHWORK(SI(214,40,im_index)-1+J) = ATMSFLUX(J) SJC1F400.168
ENDDO SJC1F400.169
ENDIF SJC1F400.170
IF ( SF(215,40) ) THEN SJC1F400.171
DO J=1, P_FIELD SJC1F400.172
STASHWORK(SI(215,40,im_index)-1+J) = LEADFLUX(J) SJC1F400.173
ENDDO SJC1F400.174
ENDIF SJC1F400.175
IF ( SF(216,40) ) THEN SJC1F400.176
DO J=1, P_FIELD SJC1F400.177
STASHWORK(SI(216,40,im_index)-1+J) = wtsfc(j) SJC1F400.178
ENDDO SJC1F400.179
ENDIF SJC1F400.180
IF ( SF(217,40) ) THEN SJC1F400.181
DO J=1, P_FIELD SJC1F400.182
STASHWORK(SI(217,40,im_index)-1+J) = wtbase(j) SJC1F400.183
ENDDO SJC1F400.184
ENDIF SJC1F400.185
IF ( SF(218,40) ) THEN SJC1F400.186
DO J=1, P_FIELD SJC1F400.187
STASHWORK(SI(218,40,im_index)-1+J) = DTADV(J) SJC1F400.188
ENDDO SJC1F400.189
ENDIF SJC1F400.190
IF ( SF(219,40) ) THEN SJC1F400.191
DO J=1, P_FIELD SJC1F400.192
STASHWORK(SI(219,40,im_index)-1+J) = DTDIFF(J) SJC1F400.193
ENDDO SJC1F400.194
ENDIF SJC1F400.195
IF ( SF(220,40) ) THEN SJC1F400.196
DO J=1, P_FIELD SJC1F400.197
STASHWORK(SI(220,40,im_index)-1+J) = CARYHEAT(J) SJC1F400.198
ENDDO SJC1F400.199
ENDIF SJC1F400.200
IF ( SF(221,40) ) THEN SJC1F400.201
DO J=1, P_FIELD SJC1F400.202
STASHWORK(SI(221,40,im_index)-1+J) = DTICE(J) SJC1F400.203
ENDDO SJC1F400.204
ENDIF SJC1F400.205
IF ( SF(222,40) ) THEN SJC1F400.206
DO J=1, P_FIELD SJC1F400.207
STASHWORK(SI(222,40,im_index)-1+J) = SNOWSLAB(J) SJC1F400.208
ENDDO SJC1F400.209
ENDIF SJC1F400.210
IF ( SF(223,40) ) THEN SJC1F400.211
DO J=1, P_FIELD SJC1F400.212
STASHWORK(SI(223,40,im_index)-1+J) = SNOWLEAD(J) SJC1F400.213
ENDDO SJC1F400.214
ENDIF SJC1F400.215
IF ( SF(224,40) ) THEN SJC1F400.216
DO J=1, P_FIELD SJC1F400.217
STASHWORK(SI(224,40,im_index)-1+J) = HINC_ADV(J) SJC1F400.218
ENDDO SJC1F400.219
ENDIF SJC1F400.220
IF ( SF(225,40) ) THEN SJC1F400.221
DO J=1, P_FIELD SJC1F400.222
STASHWORK(SI(225,40,im_index)-1+J) = HSINC_ADV(J) SJC1F400.223
ENDDO SJC1F400.224
ENDIF SJC1F400.225
IF ( SF(226,40) ) THEN SJC1F400.226
DO J=1, P_FIELD SJC1F400.227
STASHWORK(SI(226,40,im_index)-1+J) = AREAS(J) SJC1F400.228
ENDDO SJC1F400.229
ENDIF SJC1F400.230
C SLBSTU1A.263
! Copy Atmosphere prognostics from D1 into Stashwork for GDR8F400.14
! SLAB diagnostics GDR8F400.15
IF ( SF(23,40) ) THEN ! Snow Amounts GDR8F400.16
DO J=1, P_FIELD GDR8F400.17
STASHWORK(SI(23,40,im_index)-1+J) = D1(JSNODEP-1+J) GDR8F400.18
ENDDO GDR8F400.19
ENDIF GDR8F400.20
IF ( SF(24,40) ) THEN ! Surface Temperature GDR8F400.21
DO J=1, P_FIELD GDR8F400.22
STASHWORK(SI(24,40,im_index)-1+J) = D1(JTSTAR-1+J) GDR8F400.23
ENDDO GDR8F400.24
ENDIF GDR8F400.25
IF ( SF(31,40) ) THEN ! Sea Ice Fraction GDR8F400.26
DO J=1, P_FIELD GDR8F400.27
STASHWORK(SI(31,40,im_index)-1+J) = D1(JICE_FRACTION-1+J) GDR8F400.28
ENDDO GDR8F400.29
ENDIF GDR8F400.30
IF ( SF(32,40) ) THEN ! Sea Ice Thickness GDR8F400.31
DO J=1, P_FIELD GDR8F400.32
STASHWORK(SI(32,40,im_index)-1+J) = D1(JICE_THICKNESS-1+J) GDR8F400.33
ENDDO GDR8F400.34
ENDIF GDR8F400.35
C SLBSTU1A.264
IF(ICODE.GT.0) THEN SLBSTU1A.265
RETURN SLBSTU1A.266
ENDIF SLBSTU1A.267
C SLBSTU1A.268
IF(LTIMER) CALL TIMER
('STASH',3) SLBSTU1A.269
C SLBSTU1A.270
CALL STASH
(slab_im,slab_im,0,D1, GKR0F305.985
*CALL ARGSIZE
SLBSTU1A.272
*CALL ARGD1
SLBSTU1A.273
*CALL ARGDUMA
SLBSTU1A.274
*CALL ARGDUMO
SLBSTU1A.275
*CALL ARGDUMW
GKR1F401.264
*CALL ARGSTS
SLBSTU1A.276
*CALL ARGPPX
GKR0F305.986
& ICODE,CMESSAGE) SLBSTU1A.280
C SLBSTU1A.281
IF(LTIMER) CALL TIMER
('STASH',4) SLBSTU1A.282
C SLBSTU1A.283
IF(LTIMER) CALL TIMER
('STASH',3) SLBSTU1A.284
C SLBSTU1A.285
CALL STASH
(slab_im,slab_im,40,STASHWORK, GKR0F305.987
*CALL ARGSIZE
SLBSTU1A.287
*CALL ARGD1
SLBSTU1A.288
*CALL ARGDUMA
SLBSTU1A.289
*CALL ARGDUMO
SLBSTU1A.290
*CALL ARGDUMW
GKR1F401.265
*CALL ARGSTS
SLBSTU1A.291
*CALL ARGPPX
GKR0F305.988
& ICODE,CMESSAGE) SLBSTU1A.295
C SLBSTU1A.296
IF(LTIMER) CALL TIMER
('STASH',4) SLBSTU1A.297
C SLBSTU1A.298
IF(ICODE.GT.0) THEN SLBSTU1A.299
RETURN SLBSTU1A.300
ENDIF SLBSTU1A.301
C SLBSTU1A.302
RETURN SLBSTU1A.303
END SLBSTU1A.304
*ENDIF SLBSTU1A.305