*IF DEF,RECON SCONTROL.2
C *****************************COPYRIGHT****************************** SCONTROL.3
C (c) CROWN COPYRIGHT 1998, METEOROLOGICAL OFFICE, All Rights Reserved. SCONTROL.4
C SCONTROL.5
C Use, duplication or disclosure of this code is subject to the SCONTROL.6
C restrictions as set forth in the contract. SCONTROL.7
C SCONTROL.8
C Meteorological Office SCONTROL.9
C London Road SCONTROL.10
C BRACKNELL SCONTROL.11
C Berkshire UK SCONTROL.12
C RG12 2SZ SCONTROL.13
C SCONTROL.14
C If no contract has been raised with this copy of the code, the use, SCONTROL.15
C duplication or disclosure of it is strictly prohibited. Permission SCONTROL.16
C to do so must first be obtained in writing from the Head of Numerical SCONTROL.17
C Modelling at the above address. SCONTROL.18
C ******************************COPYRIGHT****************************** SCONTROL.19
!+ SCONTROL.20
! SCONTROL.21
! Subroutine Interface: SCONTROL.22
SUBROUTINE SUPERCONTROL(LEN_FIXHD_IN,LEN_INTHD_IN,LEN_REALHD_IN, 1,12SCONTROL.23
& LEN1_LEVDEPC_IN,LEN2_LEVDEPC_IN,LEN1_ROWDEPC_IN, SCONTROL.24
& LEN2_ROWDEPC_IN,LEN1_COLDEPC_IN,LEN2_COLDEPC_IN, SCONTROL.25
& LEN1_FLDDEPC_IN,LEN2_FLDDEPC_IN,LEN_EXTCNST_IN,OZONE_LEVELS_IN, SCONTROL.26
& LEN_DUMPHIST_IN,LEN_CFI1_IN,LEN_CFI2_IN,LEN_CFI3_IN, SCONTROL.27
& LEN1_LOOKUP_IN,LEN2_LOOKUP_IN,LEN_DATA_IN,BL_LEVELS_IN SCONTROL.28
& ,ROW_LENGTH_IN,P_ROWS_IN,P_LEVELS_IN,Q_LEVELS_IN SCONTROL.29
& ,ST_LEVELS_IN,SM_LEVELS_IN SCONTROL.30
& ,MAX_VARIABLES_IN,P_FIELD_IN,U_ROWS_IN,U_FIELD_IN SCONTROL.31
& ,LEN_FIXHD_OUT,LEN_INTHD_OUT,LEN_REALHD_OUT,TR_LEVELS_ADV_OUT, SCONTROL.32
& LEN1_LEVDEPC_OUT,LEN2_LEVDEPC_OUT,LEN1_ROWDEPC_OUT, SCONTROL.33
& LEN2_ROWDEPC_OUT,LEN1_COLDEPC_OUT,LEN2_COLDEPC_OUT, SCONTROL.34
& LEN1_FLDDEPC_OUT,LEN2_FLDDEPC_OUT,LEN_EXTCNST_OUT, SCONTROL.35
& LEN_DUMPHIST_OUT,LEN_CFI1_OUT,LEN_CFI2_OUT,LEN_CFI3_OUT, SCONTROL.36
& LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT,LEN_DATA_OUT SCONTROL.37
& ,ROW_LENGTH_OUT,P_ROWS_OUT,P_LEVELS_OUT,Q_LEVELS_OUT SCONTROL.38
& ,MAX_VARIABLES_OUT,P_FIELD_OUT,U_ROWS_OUT,U_FIELD_OUT SCONTROL.39
& ,TR_LEVELS_OUT,ST_LEVELS_OUT,SM_LEVELS_OUT,BL_LEVELS_OUT SCONTROL.40
& ,OZONE_LEVELS_OUT,TR_VARS_OUT SCONTROL.41
& ,LEN_INTHD_UARS,LEN_REALHD_UARS,LEN1_LEVDEPC_UARS SCONTROL.42
& ,LEN2_LEVDEPC_UARS,LEN2_LOOKUP_UARS,LEN_DATA_UARS,UARS SCONTROL.43
& ,GRIB,NFTIN,NFTOUT,NFTUARS,NLOOKUPS,LEN_ANCIL,STRAT_Q SCONTROL.44
&,RESET,OCEAN,NFTTRACER,NFTTRANS,TRANS SCONTROL.45
& ,LEN_INTHD_TRANS,LEN_REALHD_TRANS,LEN1_LEVDEPC_TRANS SCONTROL.46
& ,LEN2_LEVDEPC_TRANS,LEN2_LOOKUP_TRANS,LEN_DATA_TRANS SCONTROL.47
& ,LEN_INTHD_TRACER,LEN_REALHD_TRACER,LEN1_LEVDEPC_TRACER SCONTROL.48
& ,LEN2_LEVDEPC_TRACER,LEN2_LOOKUP_TRACER,LEN_DATA_TRACER SCONTROL.49
& ,NDATASETS,FTN_ANCIL,TITLE,PER_ARGS,PER_LEN,NFTPER SCONTROL.50
& ,PERTURBATION,C_GRID_IN,C_GRID_OUT,H_INT_TYPE,LPOLARCHK SCONTROL.51
& ,ANVIL_FACTOR,TOWER_FACTOR,SCALE SCONTROL.52
& ,POINTS_PER_OCEAN_LEVEL,DUMP_PACK,LAND_POINTS_UMUI, SCONTROL.53
& RadialGridIn,RadialGridOut,NFTIN2,NFTIN3,RM_CP, SCONTROL.54
& len1_lookup_um,len2_lookup_um,fixhd_um, SCONTROL.55
& len1_lookup_ls,len2_lookup_ls,fixhd_ls, SCONTROL.56
*CALL ARGPPX
SCONTROL.57
& LAMIPII_IN, SCONTROL.58
& LCAL360,LSPIRAL_S,LOZONE_ZONAL,L_MP_PRECIP) SCONTROL.59
SCONTROL.60
IMPLICIT NONE SCONTROL.61
! SCONTROL.62
! Description: SCONTROL.63
! This routine controls the reconfiguration module. It calls the SCONTROL.64
! main reconfguration routine CONTROL and the VAR processing routines SCONTROL.65
! INIT_LS and PFinc2UM depending an namelist settings made in the SCONTROL.66
! reconfiguration top level. SCONTROL.67
! SCONTROL.68
! Method: SCONTROL.69
! <Say how it does it: include references to external documentation> SCONTROL.70
! <If this routine is very complex, then include a "pseudo code" SCONTROL.71
! description of it to make its structure and method clear> SCONTROL.72
! SCONTROL.73
! Current Code Owner: D.M. Goddard SCONTROL.74
! SCONTROL.75
! History: SCONTROL.76
! Version Date Comment SCONTROL.77
! ------- ---- ------- SCONTROL.78
! vn4.5 14/04/98 Original code. D.M. Goddard SCONTROL.79
! SCONTROL.80
! Code Description: SCONTROL.81
! Language: FORTRAN 77 + common extensions. SCONTROL.82
! This code is written to UMDP3 v6 programming standards. SCONTROL.83
! SCONTROL.84
! Declarations: SCONTROL.85
! These are of the form:- SCONTROL.86
! INTEGER ExampleVariable !Description of variable SCONTROL.87
! SCONTROL.88
! Global variables (*CALLed COMDECKs etc...): SCONTROL.89
SCONTROL.90
! Subroutine arguments SCONTROL.91
! Scalar arguments with intent(in): SCONTROL.92
INTEGER DUMP_PACK ! Packing indicator for Dump. See SCONTROL.93
! deck RECONF1 for details. SCONTROL.94
INTEGER LAND_POINTS_UMUI ! No of land points from SCONTROL.95
! namelist RECON SCONTROL.96
INTEGER PER_LEN !Dim of PER_ARGS SCONTROL.97
REAL PERTURBATION ! Switch for transplanting data SCONTROL.98
LOGICAL LCAL360 SCONTROL.99
LOGICAL LAMIPII_IN ! T= AMIP II run ice updating SCONTROL.100
LOGICAL LSPIRAL_S ! Switch for SPIRAL_S routine SCONTROL.101
! defining unresolved coastal points SCONTROL.102
LOGICAL LOZONE_ZONAL ! T= Zonal ozone field SCONTROL.103
! ozone field SCONTROL.104
LOGICAL L_MP_PRECIP ! T=Mixed phase precipitation chosen SCONTROL.105
! F=Standard precipitation chosen SCONTROL.106
LOGICAL H_INT_TYPE !=T Area weighted interpolation; SCONTROL.107
!=F Bi-linear interpolation SCONTROL.108
LOGICAL LPOLARCHK ! True if polar rows to be SCONTROL.109
! averaged after horizontal SCONTROL.110
! interpolation SCONTROL.111
LOGICAL UARS ! Switch for UARS data SCONTROL.112
LOGICAL TRANS ! Switch for transplanting data SCONTROL.113
LOGICAL STRAT_Q ! Switch to reset stratospheric Q SCONTROL.114
LOGICAL RESET ! Switch to reset fc time info in SCONTROL.115
! FIXHD SCONTROL.116
LOGICAL GRIB ! =T GRIB data on A grid SCONTROL.117
LOGICAL OCEAN ! =T Ocean reconfiguration SCONTROL.118
LOGICAL C_GRID_IN ! =T C-grid; =F B-grid input grid SCONTROL.119
LOGICAL C_GRID_OUT ! =T Vert co-ord radius =F hybrid SCONTROL.120
LOGICAL RadialGridIN ! =T Vert co-ord radius =F hybrid SCONTROL.121
LOGICAL RadialGridOut ! =T Vert co-ord radius =F hybrid SCONTROL.122
LOGICAL RM_CP SCONTROL.123
LOGICAL CYCLIC ! Switch for overlapping LAM fields SCONTROL.124
SCONTROL.125
! Input file SCONTROL.126
INTEGER LEN_FIXHD_IN ! Length of fixed length header SCONTROL.127
INTEGER LEN_INTHD_IN ! Length of integer header SCONTROL.128
INTEGER LEN_REALHD_IN ! Length of real header SCONTROL.129
INTEGER LEN1_LEVDEPC_IN ! 1st dim of lev dependent consts SCONTROL.130
INTEGER LEN2_LEVDEPC_IN ! 2nd dim of lev dependent consts SCONTROL.131
INTEGER LEN1_ROWDEPC_IN ! 1st dim of row dependent consts SCONTROL.132
INTEGER LEN2_ROWDEPC_IN ! 2nd dim of row dependent consts SCONTROL.133
INTEGER LEN1_COLDEPC_IN ! 1st dim of col dependent consts SCONTROL.134
INTEGER LEN2_COLDEPC_IN ! 2nd dim of col dependent consts SCONTROL.135
INTEGER LEN1_FLDDEPC_IN ! 1st dim of field dependent consts SCONTROL.136
INTEGER LEN2_FLDDEPC_IN ! 2nd dim of field dependent consts SCONTROL.137
INTEGER LEN_EXTCNST_IN ! Length of extra consts SCONTROL.138
INTEGER LEN_DUMPHIST_IN ! Length of history header SCONTROL.139
INTEGER LEN_CFI1_IN ! Length of index1 SCONTROL.140
INTEGER LEN_CFI2_IN ! Length of index2 SCONTROL.141
INTEGER LEN_CFI3_IN ! Length of index3 SCONTROL.142
INTEGER LEN1_LOOKUP_IN ! 1st dim of LOOKUP SCONTROL.143
INTEGER LEN2_LOOKUP_IN ! 2nd dim of LOOKUP SCONTROL.144
INTEGER LEN_DATA_IN ! Length of data SCONTROL.145
INTEGER ROW_LENGTH_IN ! No of points E-W SCONTROL.146
INTEGER P_ROWS_IN ! No of p-rows SCONTROL.147
INTEGER P_LEVELS_IN ! No of levels SCONTROL.148
INTEGER Q_LEVELS_IN ! No of wet levels SCONTROL.149
INTEGER MAX_VARIABLES_IN ! Maximum varaiables SCONTROL.150
INTEGER ST_LEVELS_IN ! No of deep soil temp levels SCONTROL.151
INTEGER SM_LEVELS_IN ! No of soil moisture levels SCONTROL.152
INTEGER BL_LEVELS_IN ! No of b.l. levels SCONTROL.153
INTEGER OZONE_LEVELS_IN ! No of ozone levels SCONTROL.154
INTEGER P_FIELD_IN ! No of p-points per level SCONTROL.155
INTEGER U_ROWS_IN ! No of uv-rows SCONTROL.156
INTEGER U_FIELD_IN ! No of uv-points per level SCONTROL.157
INTEGER SCALE ! Constant used in VAR to calculate SCONTROL.158
! aerosol increment. SCONTROL.159
SCONTROL.160
INTEGER NFTIN SCONTROL.161
INTEGER NFTOUT SCONTROL.162
INTEGER NFTIN2 SCONTROL.163
INTEGER NFTIN3 SCONTROL.164
INTEGER NFTUARS SCONTROL.165
INTEGER NFTTRANS SCONTROL.166
INTEGER NFTTRACER SCONTROL.167
INTEGER NFTPER SCONTROL.168
INTEGER NLOOKUPS SCONTROL.169
INTEGER LEN_ANCIL SCONTROL.170
SCONTROL.171
SCONTROL.172
REAL ANVIL_FACTOR SCONTROL.173
REAL TOWER_FACTOR SCONTROL.174
SCONTROL.175
! Output File SCONTROL.176
INTEGER ROW_LENGTH_OUT ! No of points E-W SCONTROL.177
INTEGER P_ROWS_OUT ! No of P-points N-S SCONTROL.178
INTEGER P_LEVELS_OUT ! No of levels SCONTROL.179
INTEGER Q_LEVELS_OUT ! No of wet levels SCONTROL.180
INTEGER ST_LEVELS_OUT ! No of deep soil temp levels SCONTROL.181
INTEGER SM_LEVELS_OUT ! No of soil moisture levels SCONTROL.182
INTEGER TR_LEVELS_OUT ! No of tracer levels SCONTROL.183
INTEGER TR_LEVELS_ADV_OUT ! No of tracer levels to be SCONTROL.184
! advected SCONTROL.185
INTEGER BL_LEVELS_OUT ! No of boundary layer levels SCONTROL.186
INTEGER OZONE_LEVELS_OUT ! No of ozone levels SCONTROL.187
INTEGER TR_VARS_OUT ! No of tracer variables SCONTROL.188
INTEGER MAX_VARIABLES_OUT ! Maximum no of variables SCONTROL.189
INTEGER SOIL_VARS_OUT ! No of soil variables SCONTROL.190
INTEGER VEG_VARS_OUT ! No of vegetation variables SCONTROL.191
INTEGER LEN_FIXHD_OUT ! Length of fixed length header SCONTROL.192
INTEGER LEN_INTHD_OUT ! Length of integer header SCONTROL.193
INTEGER LEN_REALHD_OUT ! Length of real header SCONTROL.194
INTEGER LEN2_LEVDEPC_OUT ! 2nd dim of lev dep consts SCONTROL.195
INTEGER LEN1_LEVDEPC_OUT ! ist dim of lev dep consts SCONTROL.196
INTEGER LEN1_ROWDEPC_OUT ! 1st dim of row dep consts SCONTROL.197
INTEGER LEN2_ROWDEPC_OUT ! 2nd dim of row dep consts SCONTROL.198
INTEGER LEN1_COLDEPC_OUT ! 1st dim of col dep consts SCONTROL.199
INTEGER LEN2_COLDEPC_OUT ! 2nd dim of col dep consts SCONTROL.200
INTEGER LEN1_FLDDEPC_OUT ! 1st dim of field dep consts SCONTROL.201
INTEGER LEN2_FLDDEPC_OUT ! 2nd dim of field dep consts SCONTROL.202
INTEGER LEN_EXTCNST_OUT ! Length of extra constants SCONTROL.203
INTEGER LEN_DUMPHIST_OUT ! Length of history header SCONTROL.204
INTEGER LEN_CFI1_OUT ! Length of index1 on output file SCONTROL.205
INTEGER LEN_CFI2_OUT ! Length of index2 on output file SCONTROL.206
INTEGER LEN_CFI3_OUT ! Length of index3 on output file SCONTROL.207
INTEGER LEN1_LOOKUP_OUT ! 1st dim of lookup header SCONTROL.208
INTEGER LEN2_LOOKUP_OUT ! 2nd dim of lookup header SCONTROL.209
INTEGER U_FIELD_OUT ! No of UV-points per level SCONTROL.210
INTEGER P_FIELD_OUT ! No of p-points per level SCONTROL.211
INTEGER U_ROWS_OUT ! No of uv-points N-S SCONTROL.212
INTEGER LEN_DATA_OUT ! Length of output data SCONTROL.213
SCONTROL.214
! input UM dump SCONTROL.215
INTEGER LEN1_LOOKUP_UM ! 1st dim of lookup header SCONTROL.216
INTEGER LEN2_LOOKUP_UM ! 2nd dim of lookup header SCONTROL.217
SCONTROL.218
! input LS dump SCONTROL.219
INTEGER LEN1_LOOKUP_LS ! 1st dim of lookup header SCONTROL.220
INTEGER LEN2_LOOKUP_LS ! 2nd dim of lookup header SCONTROL.221
SCONTROL.222
! UARS file SCONTROL.223
INTEGER LEN_INTHD_UARS !Length of integer header SCONTROL.224
INTEGER LEN_REALHD_UARS !Length of real header SCONTROL.225
INTEGER LEN1_LEVDEPC_UARS !1st dim of lev dependent consts SCONTROL.226
INTEGER LEN2_LEVDEPC_UARS !2nd dim of lev dependent consts SCONTROL.227
INTEGER LEN2_LOOKUP_UARS !2nd dim of LOOKUP SCONTROL.228
INTEGER LEN_DATA_UARS !Length of data SCONTROL.229
SCONTROL.230
! Tracer file SCONTROL.231
INTEGER LEN_INTHD_TRACER !Length of integer header SCONTROL.232
INTEGER LEN_REALHD_TRACER !Length of real header SCONTROL.233
INTEGER LEN1_LEVDEPC_TRACER !1st dim of lev dependent consts SCONTROL.234
INTEGER LEN2_LEVDEPC_TRACER !2nd dim of lev dependent consts SCONTROL.235
INTEGER LEN2_LOOKUP_TRACER !2nd dim of LOOKUP SCONTROL.236
INTEGER LEN_DATA_TRACER !Length of data SCONTROL.237
SCONTROL.238
! Transplant file SCONTROL.239
INTEGER LEN_INTHD_TRANS !Length of integer header SCONTROL.240
INTEGER LEN_REALHD_TRANS !Length of real header SCONTROL.241
INTEGER LEN1_LEVDEPC_TRANS !1st dim of lev dependent consts SCONTROL.242
INTEGER LEN2_LEVDEPC_TRANS !2nd dim of lev dependent consts SCONTROL.243
INTEGER LEN2_LOOKUP_TRANS !2nd dim of LOOKUP SCONTROL.244
INTEGER LEN_DATA_TRANS !Length of data SCONTROL.245
SCONTROL.246
! User prognostic file SCONTROL.247
INTEGER LEN_INTHD_UPROG !Length of integer header SCONTROL.248
INTEGER LEN_REALHD_UPROG !Length of real header SCONTROL.249
INTEGER LEN1_LEVDEPC_UPROG !1st dim of lev depdnt consts SCONTROL.250
INTEGER LEN2_LEVDEPC_UPROG !2nd dim of lev depdnt consts SCONTROL.251
INTEGER LEN2_LOOKUP_UPROG !2nd dim of LOOKUP SCONTROL.252
INTEGER LEN_DATA_UPROG !Length of data SCONTROL.253
SCONTROL.254
! Array arguments with intent(in): SCONTROL.255
INTEGER POINTS_PER_OCEAN_LEVEL(99) SCONTROL.256
INTEGER PER_ARGS(PER_LEN)! Lengths used to dim arrays SCONTROL.257
! ppxref look-up arrays SCONTROL.258
!!!!!!!!!!!!Already dimensioned above and below SCONTROL.259
INTEGER PPXI(*) SCONTROL.260
CHARACTER PPXC(*) SCONTROL.261
INTEGER NDATASETS PXSCONT.1
INTEGER FTN_ANCIL(NDATASETS) SCONTROL.262
CHARACTER*80 TITLE(NDATASETS) SCONTROL.263
SCONTROL.264
! ErrorStatus <Delete if ErrorStatus not used> SCONTROL.265
INTEGER ErrorStatus ! Error flag (0 = OK) SCONTROL.266
SCONTROL.267
! Local parameters: SCONTROL.268
SCONTROL.269
! Local scalars: SCONTROL.270
INTEGER FIND_NAMELIST SCONTROL.271
INTEGER LAND_POINTS_OUT SCONTROL.272
INTEGER ppxRecs SCONTROL.273
INTEGER N_TYPES_OUT ! Passed back from CONTROL SCONTROL.275
SCONTROL.276
INTEGER ICODE ! Return code from INIT_LS and SCONTROL.277
! PFinc2UM; successful=0 SCONTROL.278
! error > 0 SCONTROL.279
CHARACTER*256 CMESSAGE ! Error message if ICODE > 0 SCONTROL.280
LOGICAL VERT ! Switch for vertical interpolation SCONTROL.281
LOGICAL HORIZ ! Switch for horizontal interpolation SCONTROL.282
LOGICAL GH_TO_LAM ! Switch signifying global to SCONTROL.283
! Limited area SCONTROL.284
LOGICAL MASK ! Switch for land/sea mask SCONTROL.285
LOGICAL SSTANOM ! Switch for SST anomaly SCONTROL.286
LOGICAL LOG_ICE_FRAC ! Switch for ice frac update SCONTROL.287
LOGICAL LSM ! Logical set if ancillary SCONTROL.288
! land-sea mask requested SCONTROL.289
LOGICAL LOZONE ! Logical set if vert int of ozone SCONTROL.290
! required SCONTROL.291
LOGICAL ROT_IN ! Logical set if input grid rotated SCONTROL.292
LOGICAL ROT_OUT ! Logical set if output grid rotated SCONTROL.293
SCONTROL.294
! Local dynamic arrays: SCONTROL.295
INTEGER FIXHD_OUT(256) SCONTROL.296
INTEGER FIXHD_LS(256) SCONTROL.297
INTEGER FIXHD_UM(256) SCONTROL.298
INTEGER INTHD_OUT(LEN_INTHD_OUT) SCONTROL.299
INTEGER CFI1_OUT(LEN_CFI1_OUT+1) SCONTROL.300
INTEGER CFI2_OUT(LEN_CFI2_OUT+1) SCONTROL.301
INTEGER CFI3_OUT(LEN_CFI3_OUT+1) SCONTROL.302
INTEGER LOOKUP_OUT(LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT) SCONTROL.303
INTEGER ID1_OUT(P_FIELD_OUT) SCONTROL.304
INTEGER PP_LEN_OUT(LEN2_LOOKUP_OUT) !Length |For each SCONTROL.305
INTEGER PP_NUM_OUT(LEN2_LOOKUP_OUT) !No of fields |field SCONTROL.306
INTEGER PP_POS_OUT(LEN2_LOOKUP_OUT) !Position |type on SCONTROL.307
INTEGER PP_TYPE_OUT(LEN2_LOOKUP_OUT) !Real,int,log |output SCONTROL.308
INTEGER PP_ITEMC_OUT(LEN2_LOOKUP_OUT) !Item code |file SCONTROL.309
REAL REALHD_OUT(LEN_REALHD_OUT) SCONTROL.310
REAL LEVDEPC_OUT(1+LEN1_LEVDEPC_OUT*LEN2_LEVDEPC_OUT) SCONTROL.311
REAL ROWDEPC_OUT(1+LEN1_ROWDEPC_OUT*LEN2_ROWDEPC_OUT) SCONTROL.312
REAL COLDEPC_OUT(1+LEN1_COLDEPC_OUT*LEN2_COLDEPC_OUT) SCONTROL.313
REAL FLDDEPC_OUT(1+LEN1_FLDDEPC_OUT*LEN2_FLDDEPC_OUT) SCONTROL.314
REAL EXTCNST_OUT(LEN_EXTCNST_OUT+1) SCONTROL.315
REAL DUMPHIST_OUT(LEN_DUMPHIST_OUT+1) SCONTROL.316
REAL AKH_OUT(P_LEVELS_OUT+1) SCONTROL.317
REAL BKH_OUT(P_LEVELS_OUT+1) SCONTROL.318
SCONTROL.319
! Function & Subroutine calls: SCONTROL.320
External CONTROL,INIT_LS,PFinc_2UM SCONTROL.321
SCONTROL.322
!- End of header SCONTROL.323
CALL TIMER
('SUPERCONTROL',1) SCONTROL.324
SCONTROL.325
CALL TIMER
('CONTROL ',3) SCONTROL.326
SCONTROL.327
CALL CONTROL
(LEN_FIXHD_IN,LEN_INTHD_IN,LEN_REALHD_IN, SCONTROL.328
& LEN1_LEVDEPC_IN,LEN2_LEVDEPC_IN,LEN1_ROWDEPC_IN, SCONTROL.329
& LEN2_ROWDEPC_IN,LEN1_COLDEPC_IN,LEN2_COLDEPC_IN, SCONTROL.330
& LEN1_FLDDEPC_IN,LEN2_FLDDEPC_IN,LEN_EXTCNST_IN,OZONE_LEVELS_IN, SCONTROL.331
& LEN_DUMPHIST_IN,LEN_CFI1_IN,LEN_CFI2_IN,LEN_CFI3_IN, SCONTROL.332
& LEN1_LOOKUP_IN,LEN2_LOOKUP_IN,LEN_DATA_IN,BL_LEVELS_IN SCONTROL.333
& ,ROW_LENGTH_IN,P_ROWS_IN,P_LEVELS_IN,Q_LEVELS_IN SCONTROL.334
& ,ST_LEVELS_IN,SM_LEVELS_IN SCONTROL.335
& ,MAX_VARIABLES_IN,P_FIELD_IN,U_ROWS_IN,U_FIELD_IN SCONTROL.336
& ,LEN_FIXHD_OUT,LEN_INTHD_OUT,LEN_REALHD_OUT,TR_LEVELS_ADV_OUT, SCONTROL.337
& LEN1_LEVDEPC_OUT,LEN2_LEVDEPC_OUT,LEN1_ROWDEPC_OUT, SCONTROL.338
& LEN2_ROWDEPC_OUT,LEN1_COLDEPC_OUT,LEN2_COLDEPC_OUT, SCONTROL.339
& LEN1_FLDDEPC_OUT,LEN2_FLDDEPC_OUT,LEN_EXTCNST_OUT, SCONTROL.340
& LEN_DUMPHIST_OUT,LEN_CFI1_OUT,LEN_CFI2_OUT,LEN_CFI3_OUT, SCONTROL.341
& LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT,LEN_DATA_OUT SCONTROL.342
& ,ROW_LENGTH_OUT,P_ROWS_OUT,P_LEVELS_OUT,Q_LEVELS_OUT SCONTROL.343
& ,MAX_VARIABLES_OUT,P_FIELD_OUT,U_ROWS_OUT,U_FIELD_OUT SCONTROL.344
C SCONTROL.345
& ,FIXHD_OUT,INTHD_OUT,REALHD_OUT,LEVDEPC_OUT,ROWDEPC_OUT SCONTROL.346
& ,COLDEPC_OUT,FLDDEPC_OUT,EXTCNST_OUT,DUMPHIST_OUT,CFI1_OUT SCONTROL.347
& ,CFI2_OUT,CFI3_OUT,LOOKUP_OUT, SCONTROL.348
& PP_ITEMC_OUT,PP_POS_OUT,N_TYPES_OUT, SCONTROL.349
& PP_LEN_OUT,PP_NUM_OUT,PP_TYPE_OUT, SCONTROL.350
& AKH_OUT,BKH_OUT,LAND_POINTS_OUT SCONTROL.351
C SCONTROL.352
& ,TR_LEVELS_OUT,ST_LEVELS_OUT,SM_LEVELS_OUT,BL_LEVELS_OUT SCONTROL.353
& ,OZONE_LEVELS_OUT,TR_VARS_OUT SCONTROL.354
& ,LEN_INTHD_UARS,LEN_REALHD_UARS,LEN1_LEVDEPC_UARS SCONTROL.355
& ,LEN2_LEVDEPC_UARS,LEN2_LOOKUP_UARS,LEN_DATA_UARS,UARS SCONTROL.356
& ,GRIB,NFTIN,NFTOUT,NFTUARS,NLOOKUPS,LEN_ANCIL,STRAT_Q SCONTROL.357
&,RESET,OCEAN,NFTTRACER,NFTTRANS,TRANS SCONTROL.358
& ,LEN_INTHD_TRANS,LEN_REALHD_TRANS,LEN1_LEVDEPC_TRANS SCONTROL.359
& ,LEN2_LEVDEPC_TRANS,LEN2_LOOKUP_TRANS,LEN_DATA_TRANS SCONTROL.360
& ,LEN_INTHD_TRACER,LEN_REALHD_TRACER,LEN1_LEVDEPC_TRACER SCONTROL.361
& ,LEN2_LEVDEPC_TRACER,LEN2_LOOKUP_TRACER,LEN_DATA_TRACER SCONTROL.362
& ,NDATASETS,FTN_ANCIL,TITLE,PER_ARGS,PER_LEN,NFTPER SCONTROL.363
& ,PERTURBATION,C_GRID_IN,C_GRID_OUT,H_INT_TYPE,LPOLARCHK SCONTROL.364
& ,ANVIL_FACTOR,TOWER_FACTOR SCONTROL.365
& ,POINTS_PER_OCEAN_LEVEL,DUMP_PACK,LAND_POINTS_UMUI, SCONTROL.366
& RadialGridIn,RadialGridOut,NFTIN2,NFTIN3,RM_CP, SCONTROL.367
& len1_lookup_um,len2_lookup_um,fixhd_um, SCONTROL.368
& len1_lookup_ls,len2_lookup_ls,fixhd_ls, SCONTROL.369
*CALL ARGPPX
SCONTROL.370
& LAMIPII_IN, SCONTROL.371
& LCAL360,LSPIRAL_S,LOZONE_ZONAL,L_MP_PRECIP) SCONTROL.372
SCONTROL.373
CALL TIMER
('CONTROL ',4) SCONTROL.374
SCONTROL.375
! Call to subroutine to reconfigure from standard UM dump SCONTROL.376
! to new dynamics grid for the variational assimilation SCONTROL.377
IF (RadialGridOut.AND..NOT.RadialGridIn) THEN SCONTROL.378
SCONTROL.379
CALL TIMER
('INIT_LS ',3) SCONTROL.380
SCONTROL.381
CALL INIT_LS
(NFTOUT,FIXHD_OUT,LEN_FIXHD_OUT, SCONTROL.382
& INTHD_OUT,LEN_INTHD_OUT, SCONTROL.383
& REALHD_OUT,LEN_REALHD_OUT, SCONTROL.384
& LEVDEPC_OUT,LEN1_LEVDEPC_OUT,LEN2_LEVDEPC_OUT, SCONTROL.385
& ROWDEPC_OUT,LEN1_ROWDEPC_OUT,LEN2_ROWDEPC_OUT, SCONTROL.386
& COLDEPC_OUT,LEN1_COLDEPC_OUT,LEN2_COLDEPC_OUT, SCONTROL.387
& FLDDEPC_OUT,LEN1_FLDDEPC_OUT,LEN2_FLDDEPC_OUT, SCONTROL.388
& EXTCNST_OUT,LEN_EXTCNST_OUT, SCONTROL.389
& DUMPHIST_OUT,LEN_DUMPHIST_OUT, SCONTROL.390
& CFI1_OUT,LEN_CFI1_OUT, SCONTROL.391
& CFI2_OUT,LEN_CFI2_OUT, SCONTROL.392
& CFI3_OUT,LEN_CFI3_OUT, SCONTROL.393
& LOOKUP_OUT,LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT, SCONTROL.394
& P_LEVELS_OUT,Q_LEVELS_OUT,BL_LEVELS_OUT, SCONTROL.395
& P_FIELD_OUT,P_ROWS_OUT,ROW_LENGTH_OUT, SCONTROL.396
& N_TYPES_OUT,PP_ITEMC_OUT,PP_POS_OUT, SCONTROL.397
& PP_LEN_OUT,PP_NUM_OUT,PP_TYPE_OUT, SCONTROL.398
& AKH_OUT,BKH_OUT, SCONTROL.399
& LEN_DATA_OUT, SCONTROL.400
*CALL ARGPPX
SCONTROL.401
& ICODE,CMESSAGE) SCONTROL.402
SCONTROL.403
CALL TIMER
('INIT_LS ',4) SCONTROL.404
SCONTROL.405
IF (ICODE.NE.0) CALL ABORT_IO
('INIT_CVARS',CMESSAGE,ICODE,NFTOUT) SCONTROL.406
SCONTROL.407
ELSE IF (RadialGridIn.AND..NOT.RadialGridOut)THEN SCONTROL.408
SCONTROL.409
! Read in the fixed header information for the initial UM SCONTROL.410
! dump and corresponding LS dump. SCONTROL.411
SCONTROL.412
CALL TIMER
('PFinc2UM',3) SCONTROL.413
SCONTROL.414
CALL PFinc_2UM
(NFTOUT,FIXHD_OUT,LEN_FIXHD_OUT, SCONTROL.415
& INTHD_OUT,LEN_INTHD_OUT, SCONTROL.416
& REALHD_OUT,LEN_REALHD_OUT, SCONTROL.417
& LEVDEPC_OUT,LEN1_LEVDEPC_OUT,LEN2_LEVDEPC_OUT, SCONTROL.418
& ROWDEPC_OUT,LEN1_ROWDEPC_OUT,LEN2_ROWDEPC_OUT, SCONTROL.419
& COLDEPC_OUT,LEN1_COLDEPC_OUT,LEN2_COLDEPC_OUT, SCONTROL.420
& FLDDEPC_OUT,LEN1_FLDDEPC_OUT,LEN2_FLDDEPC_OUT, SCONTROL.421
& EXTCNST_OUT,LEN_EXTCNST_OUT, SCONTROL.422
& DUMPHIST_OUT,LEN_DUMPHIST_OUT, SCONTROL.423
& CFI1_OUT,LEN_CFI1_OUT, SCONTROL.424
& CFI2_OUT,LEN_CFI2_OUT, SCONTROL.425
& CFI3_OUT,LEN_CFI3_OUT, SCONTROL.426
& LOOKUP_OUT,LEN1_LOOKUP_OUT,LEN2_LOOKUP_OUT, SCONTROL.427
& P_LEVELS_OUT,P_FIELD_OUT,P_ROWS_OUT, SCONTROL.428
& ROW_LENGTH_OUT,LEN_DATA_OUT, SCONTROL.429
& PP_ITEMC_OUT,PP_POS_OUT,N_TYPES_OUT, SCONTROL.430
& PP_LEN_OUT,PP_NUM_OUT,PP_TYPE_OUT, SCONTROL.431
& BL_LEVELS_OUT,Q_LEVELS_OUT, SCONTROL.432
& LEN1_LOOKUP_UM,LEN2_LOOKUP_UM,FIXHD_UM, SCONTROL.433
& LEN1_LOOKUP_LS,LEN2_LOOKUP_LS,FIXHD_LS, SCONTROL.434
& AKH_OUT,BKH_OUT,LAND_POINTS_OUT, SCONTROL.435
& SCALE, SCONTROL.436
*CALL ARGPPX
SCONTROL.437
& ICODE,CMESSAGE,NFTIN2,NFTIN3) SCONTROL.438
SCONTROL.439
CALL TIMER
('PFinc2UM',4) SCONTROL.440
SCONTROL.441
ENDIF ! Test for new dynamics grid from standard UM dump SCONTROL.442
SCONTROL.443
CALL TIMER
('SUPERCONTROL ',2) SCONTROL.444
SCONTROL.445
RETURN SCONTROL.446
END SCONTROL.447
*ENDIF SCONTROL.448
SCONTROL.449