*IF DEF,HPRT                                                               WRITRSU1.2      
C ******************************COPYRIGHT******************************    GTS2F400.12169  
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.12170  
C                                                                          GTS2F400.12171  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.12172  
C restrictions as set forth in the contract.                               GTS2F400.12173  
C                                                                          GTS2F400.12174  
C                Meteorological Office                                     GTS2F400.12175  
C                London Road                                               GTS2F400.12176  
C                BRACKNELL                                                 GTS2F400.12177  
C                Berkshire UK                                              GTS2F400.12178  
C                RG12 2SZ                                                  GTS2F400.12179  
C                                                                          GTS2F400.12180  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.12181  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.12182  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.12183  
C Modelling at the above address.                                          GTS2F400.12184  
C ******************************COPYRIGHT******************************    GTS2F400.12185  
C                                                                          GTS2F400.12186  
CLL  Routine: WRITRSUB -------------------------------------------------   WRITRSU1.3      
CLL                                                                        WRITRSU1.4      
CLL  Purpose: To create file containing job details for qsub to resubmit   WRITRSU1.5      
CLL           the climate model, using history block information.          WRITRSU1.6      
CLL                                                                        WRITRSU1.7      
CLL  Tested under compiler:   cft77                                        WRITRSU1.8      
CLL  Tested under OS version: UNICOS 6.1.5A                                WRITRSU1.9      
CLL                                                                        WRITRSU1.10     
CLL  Author:   A.B.SANGSTER                                                WRITRSU1.11     
CLL                                                                        WRITRSU1.12     
CLL  Model            Modification history from model version 3.0:         WRITRSU1.13     
CLL version  date                                                          WRITRSU1.14     
CLL                                                                        AD050293.150    
CLL   3.1  05/02/93    Portable Fortran unit no assigns                    AD050293.151    
CLL                    Author: A. Dickinson    Reviewer: R. Stratton       AD050293.152    
CLL   3.2    13/07/93 Changed CHARACTER*(*) to CHARACTER*(80) for          TS150793.219    
CLL                   portability.  Author Tracey Smith.                   TS150793.220    
CLL                                                                        WRITRSU1.15     
CLL  Programming standard: UM Doc Paper 3, draft version                   WRITRSU1.16     
CLL                                                                        WRITRSU1.17     
CLL  Logical components covered: C0                                        WRITRSU1.18     
CLL                                                                        WRITRSU1.19     
CLL  Project task: C0                                                      WRITRSU1.20     
CLL                                                                        WRITRSU1.21     
CLL  External documentation: On-line UM document C0 - The top-level        WRITRSU1.22     
CLL                          control system                                WRITRSU1.23     
CLL                                                                        WRITRSU1.24     
C*L  Interface and arguments:                                              WRITRSU1.25     
C                                                                          WRITRSU1.26     

      SUBROUTINE WRITRSUB                                                   1,2WRITRSU1.27     
     *         ( UNITRSUB,ICODE,CMESSAGE )                                 WRITRSU1.28     
C                                                                          WRITRSU1.29     
      IMPLICIT NONE                                                        WRITRSU1.30     
C                                                                          WRITRSU1.31     
      INTEGER HIST_UNIT                                                    GGH2F400.1      
      INTEGER      UNITRSUB  ! In  - RSUB file unit                        WRITRSU1.32     
      INTEGER       ICODE    ! Out - Return code from routine              WRITRSU1.33     
      CHARACTER*(80) CMESSAGE ! Out - Return message if failure occured    TS150793.221    
       CHARACTER *80 FILENAME                                              AD050293.153    
      PARAMETER(HIST_UNIT=10)                                              GGH2F400.2      
C*                                                                         WRITRSU1.35     
C                                                                          WRITRSU1.36     
CL Common blocks                                                           WRITRSU1.37     
C                                                                          WRITRSU1.38     
*CALL CSUBMODL                                                             GGH0F305.67     
*CALL CHSUNITS                                                             GGH0F305.68     
*CALL CHISTORY                                                             GGH0F305.69     
C                                                                          WRITRSU1.40     
C*L EXTERNAL subroutines called                                            WRITRSU1.41     
      EXTERNAL GET_FILE                                                    AD050293.154    
C*                                                                         WRITRSU1.43     
C 0. Read the top record of the permenant history                          GGH2F400.3      
C file.                                                                    GGH2F400.4      
        CALL GET_FILE(HIST_UNIT,FILENAME,80,ICODE)                         GGH2F400.5      
        OPEN(HIST_UNIT,FILE=FILENAME,FORM='FORMATTED',IOSTAT=ICODE,        PXNAMLST.26     
     &   DELIM='APOSTROPHE')                                               PXNAMLST.27     
                                                                           PXNAMLST.28     
C                                                                          GGH2F400.7      
C Check for error                                                          GGH2F400.8      
C                                                                          GGH2F400.9      
      IF(ICODE .GT.0)THEN                                                  GGH2F400.10     
        CMESSAGE='HPRINT  : Failed in OPEN of history file'                GGH2F400.11     
        GOTO 999                                                           GGH2F400.12     
      ELSEIF(ICODE .LT. 0)THEN                                             GGH2F400.13     
        WRITE(6,*)'HPRINT  : Warning message on OPEN of history file'      GIE0F403.694    
        WRITE(6,*)'IOSTAT= ',ICODE                                         GIE0F403.695    
      ENDIF                                                                GGH2F400.16     
C                                                                          GGH2F400.17     
      REWIND(HIST_UNIT)                                                    GGH2F400.18     
      READ(HIST_UNIT,NLIHISTO)                                             GGH2F400.19     
      READ(HIST_UNIT,NLCHISTO)                                             GGH2F400.20     
      READ(HIST_UNIT,NLIHISTG)                                             GGH2F400.21     
      READ(HIST_UNIT,NLCHISTG)                                             GGH2F400.22     
      READ(HIST_UNIT,NLCFILES)                                             GGH2F400.23     
C                                                                          GGH2F400.24     
C Check for error                                                          GGH2F400.25     
C                                                                          GGH2F400.26     
      IF(ICODE .GT.0)THEN                                                  GGH2F400.27     
        CMESSAGE='HPRINT  : Failed in READ of history file'                GGH2F400.28     
        GOTO 999                                                           GGH2F400.29     
      ELSEIF(ICODE .LT. 0)THEN                                             GGH2F400.30     
        WRITE(6,*)'HPRINT  : Warning message on READ of history file'      GIE0F403.696    
        WRITE(6,*)'IOSTAT= ',ICODE                                         GIE0F403.697    
      ENDIF                                                                GGH2F400.33     
C                                                                          GGH2F400.34     
CL                                                                         WRITRSU1.44     
CL 1. Open, rewind and write a record                                      WRITRSU1.45     
CL                                                                         WRITRSU1.46     
      CALL GET_FILE(UNITRSUB,FILENAME,80,ICODE)                            GJC0F405.38     
      OPEN(UNITRSUB,FILE=FILENAME,IOSTAT=ICODE)                            AD050293.156    
C                                                                          WRITRSU1.48     
C Check for error                                                          WRITRSU1.49     
C                                                                          WRITRSU1.50     
      IF(ICODE .GT.0)THEN                                                  WRITRSU1.51     
        CMESSAGE='WRITRSUB: Failed in OPEN of output unit'                 WRITRSU1.52     
        GOTO 999                                                           WRITRSU1.53     
      ELSEIF(ICODE .LT. 0)THEN                                             WRITRSU1.54     
        WRITE(6,*)'WRITRSUB: Warning message on OPEN of output unit'       GIE0F403.698    
        WRITE(6,*)'IOSTAT= ',ICODE                                         GIE0F403.699    
      ENDIF                                                                WRITRSU1.57     
C                                                                          WRITRSU1.58     
      REWIND(UNITRSUB)                                                     WRITRSU1.59     
      WRITE(UNITRSUB,100,IOSTAT=ICODE)                                     WRITRSU1.60     
     *                   RUN_RESUBMIT,                                     WRITRSU1.61     
     *                   RUN_RESUBMIT_Q,                                   WRITRSU1.62     
     *                   RUN_RESUBMIT_TIME,                                WRITRSU1.63     
     *                   RUN_RESUBMIT_CPU,                                 WRITRSU1.64     
     *                   RUN_RESUBMIT_MEMORY,                              WRITRSU1.65     
     *                   RUN_RESUBMIT_PRTY,                                WRITRSU1.66     
     *                   RUN_RESUBMIT_JOBNAME,                             WRITRSU1.67     
     *                   RUN_JOB_NAME                                      WRITRSU1.68     
C                                                                          WRITRSU1.69     
C Check for error                                                          WRITRSU1.70     
C                                                                          WRITRSU1.71     
      IF(ICODE .GT.0)THEN                                                  WRITRSU1.72     
        CMESSAGE='WRITRSUB: Failed in WRITE to output unit'                WRITRSU1.73     
        GOTO 999                                                           WRITRSU1.74     
      ELSEIF(ICODE .LT. 0)THEN                                             WRITRSU1.75     
        WRITE(6,*)'WRITRSUB: Warning message on WRITE to output unit'      GIE0F403.700    
        WRITE(6,*)'IOSTAT= ',ICODE                                         GIE0F403.701    
      ENDIF                                                                WRITRSU1.78     
C                                                                          WRITRSU1.79     
C                                                                          WRITRSU1.80     
 100  FORMAT('FLAG   = ',A1/                                               WRITRSU1.81     
     *       'QUEUE  = ',A12/                                              WRITRSU1.82     
     *       'TIME   = ',A12/                                              WRITRSU1.83     
     *       'CPU    = ',A12/                                              WRITRSU1.84     
     *       'MEMORY = ',A12/                                              WRITRSU1.85     
     *       'PRTY   = ',A12/                                              WRITRSU1.86     
     *       'JOBNAME = ',A8/                                              WRITRSU1.87     
     *       'THISJOB = ',A8)                                              WRITRSU1.88     
 999  CONTINUE                                                             WRITRSU1.89     
CL                                                                         WRITRSU1.90     
CL 2. Close and return                                                     WRITRSU1.91     
CL                                                                         WRITRSU1.92     
      CLOSE(UNITRSUB)                                                      WRITRSU1.93     
      RETURN                                                               WRITRSU1.94     
      END                                                                  WRITRSU1.95     
*ENDIF                                                                     WRITRSU1.96