*IF DEF,CONTROL JOBCTL1.2
C ******************************COPYRIGHT****************************** GTS2F400.5149
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.5150
C GTS2F400.5151
C Use, duplication or disclosure of this code is subject to the GTS2F400.5152
C restrictions as set forth in the contract. GTS2F400.5153
C GTS2F400.5154
C Meteorological Office GTS2F400.5155
C London Road GTS2F400.5156
C BRACKNELL GTS2F400.5157
C Berkshire UK GTS2F400.5158
C RG12 2SZ GTS2F400.5159
C GTS2F400.5160
C If no contract has been raised with this copy of the code, the use, GTS2F400.5161
C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.5162
C to do so must first be obtained in writing from the Head of Numerical GTS2F400.5163
C Modelling at the above address. GTS2F400.5164
C ******************************COPYRIGHT****************************** GTS2F400.5165
C GTS2F400.5166
CLL Subroutine: JOBCTL ------------------------------------------------ JOBCTL1.3
CLL JOBCTL1.4
CLL Purpose: Outputs job release request to output processing server JOBCTL1.5
CLL task at selected timesteps. JOBCTL1.6
CLL JOBCTL1.7
CLL Tested under compiler: cft77 JOBCTL1.8
CLL Tested under OS version: UNICOS 5.1 JOBCTL1.9
CLL JOBCTL1.10
CLL Author: T.C.Johns JOBCTL1.11
CLL JOBCTL1.12
CLL Model Modification history from model version 3.0: JOBCTL1.13
CLL version date JOBCTL1.14
CLL 3.1 3/02/93 : added comdeck CHSUNITS to define NUNITS for i/o RS030293.119
CLL AD050293.237
CLL 3.1 05/02/93 Portable Fortran unit no assigns AD050293.238
CLL Author: A. Dickinson Reviewer: R. Stratton AD050293.239
CLL 3.4 16/6/94 : Change CHARACTER*(*) to CHARACTER*(80) N.Farnon ANF0F304.26
CLL 3.5 25/04/95 Sub_models stage 1: make generic. RTHBarnes. GRB1F305.319
CLL 4.3 31-01-97 Parallelise writes to the pipe. LCWiles GLW2F403.1
CLL 4.4 09/10/97 Change the closes on unit 8 to flushes GBCCF404.3
CLL Author: Bob Carruthers, Cray Research GBCCF404.4
CLL JOBCTL1.15
CLL Programming standard: UM Doc Paper 3, version 2 (7/9/90) JOBCTL1.16
CLL JOBCTL1.17
CLL Logical components covered: C0 JOBCTL1.18
CLL JOBCTL1.19
CLL Project task: C0 JOBCTL1.20
CLL JOBCTL1.21
CLL External documentation: JOBCTL1.22
CLL On-line UM document C0 - The top-level control system JOBCTL1.23
CLL On-line UM document - Automated output processing system JOBCTL1.24
CLL JOBCTL1.25
CLL ------------------------------------------------------------------- JOBCTL1.26
C*L Interface and arguments: ------------------------------------------ JOBCTL1.27
C JOBCTL1.28
SUBROUTINE JOBCTL(I_AO,ICODE,CMESSAGE) 1,1JOBCTL1.29
C JOBCTL1.30
C*---------------------------------------------------------------------- JOBCTL1.31
IMPLICIT NONE JOBCTL1.32
C JOBCTL1.33
INTEGER I_AO ! Internal model indicator GRB1F305.320
! ! 1 - Atmosphere; 2 - Ocean GRB1F305.321
INTEGER ICODE ! Error return code JOBCTL1.35
CHARACTER*(80) CMESSAGE ! Error return message ANF0F304.27
C JOBCTL1.37
C Common blocks JOBCTL1.38
C JOBCTL1.39
*CALL CMAXSIZE
GRB1F305.322
*CALL CSUBMODL
GRB1F305.323
*CALL CHSUNITS
GRB1F305.324
*CALL CHISTORY
GRB1F305.325
*CALL CCONTROL
GRB1F305.326
*CALL CTIME
JOBCTL1.40
C JOBCTL1.42
*IF DEF,MPP GLW2F403.2
*CALL PARVARS
GLW2F403.3
*ENDIF GLW2F403.4
C GLW2F403.5
C GLW2F403.6
C Local variables JOBCTL1.43
c AD050293.241
c External subroutines AD050293.242
c AD050293.243
EXTERNAL GET_FILE AD050293.244
INTEGER I ! Loop counter JOBCTL1.45
* ,MODJOBREL ! modulus of jobrel_step JOBCTL1.46
CHARACTER*2 CDIGIT(10) ! Character array of digits JOBCTL1.47
CHARACTER*80 CREQUEST ! Template processing request JOBCTL1.48
CHARACTER*80 FILENAME AD050293.240
DATA CDIGIT JOBCTL1.49
* / "1 ","2 ","3 ","4 ","5 ","6 ","7 ","8 ","9 ","10" / JOBCTL1.50
DATA CREQUEST JOBCTL1.51
* / "%%% _JOB_MEMBER_ REL NET" / JOBCTL1.52
C JOBCTL1.53
CL---------------------------------------------------------------------- JOBCTL1.54
C Get name of pipe AD050293.245
CALL GET_FILE
(8,FILENAME,80,ICODE) GTD0F400.162
CL 1. Set character for internal model type GRB1F305.327
CL JOBCTL1.56
IF (I_AO.EQ.1) THEN JOBCTL1.58
CREQUEST(5:5) = "A" JOBCTL1.59
ELSE IF (I_AO.EQ.2) THEN GRB1F305.328
CREQUEST(5:5) = "O" GRB1F305.329
ELSE GRB1F305.330
ICODE = I_AO GRB1F305.331
CMESSAGE = 'JOBCTL1: invalid internal model indicator' GRB1F305.332
GO TO 9999 GRB1F305.333
END IF GRB1F305.334
GRB1F305.335
CL 2. Job Release - loop over release timesteps GRB1F305.336
CL GRB1F305.337
DO I=1,10 JOBCTL1.60
IF (JOBREL_STEPim(I,I_AO).LT.0) THEN GRB1F305.338
MODJOBREL=ABS(JOBREL_STEPim(I,I_AO)) GRB1F305.339
IF (MOD(STEPim(I_AO),MODJOBREL).EQ.0) THEN GRB1F305.340
CREQUEST(18:19) = CDIGIT(I) JOBCTL1.64
*IF DEF,MPP GLW2F403.7
IF(mype.eq.0) THEN GLW2F403.8
WRITE(8,*) CREQUEST GLW2F403.9
*IF DEF,T3E GBCCF404.5
call flush(
8, icode) GBCCF404.6
*ELSE GBCCF404.7
CLOSE(8) GLW2F403.10
OPEN(8,FILE=FILENAME) GLW2F403.11
*ENDIF GBCCF404.8
ENDIF GLW2F403.12
*ELSE GLW2F403.13
WRITE(8,*) CREQUEST JOBCTL1.65
CLOSE(8) JOBCTL1.66
OPEN(8,FILE=FILENAME) GLW2F403.14
*ENDIF GLW2F403.15
ENDIF JOBCTL1.68
ELSE JOBCTL1.69
IF (JOBREL_STEPim(I,I_AO).EQ.STEPim(I_AO)) THEN GRB1F305.341
CREQUEST(18:19) = CDIGIT(I) JOBCTL1.71
*IF DEF,MPP GLW2F403.16
IF(mype.eq.0) THEN GLW2F403.17
WRITE(8,*) CREQUEST GLW2F403.18
*IF DEF,T3E GBCCF404.9
call flush(
8, icode) GBCCF404.10
*ELSE GBCCF404.11
CLOSE(8) GLW2F403.19
OPEN(8,FILE=FILENAME) GLW2F403.20
*ENDIF GBCCF404.12
ENDIF GLW2F403.21
*ELSE GLW2F403.22
WRITE(8,*) CREQUEST JOBCTL1.72
CLOSE(8) JOBCTL1.73
OPEN(8,FILE=FILENAME) GLW2F403.23
*ENDIF GLW2F403.24
ENDIF JOBCTL1.75
ENDIF JOBCTL1.76
ENDDO JOBCTL1.77
C JOBCTL1.106
9999 CONTINUE GRB1F305.342
RETURN JOBCTL1.107
END JOBCTL1.108
*ENDIF JOBCTL1.109