*IF DEF,SETUP,OR,DEF,COMB                                                  WRITFTX1.2      
C ******************************COPYRIGHT******************************    GTS2F400.12115  
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.12116  
C                                                                          GTS2F400.12117  
C Use, duplication or disclosure of this code is subject to the            GTS2F400.12118  
C restrictions as set forth in the contract.                               GTS2F400.12119  
C                                                                          GTS2F400.12120  
C                Meteorological Office                                     GTS2F400.12121  
C                London Road                                               GTS2F400.12122  
C                BRACKNELL                                                 GTS2F400.12123  
C                Berkshire UK                                              GTS2F400.12124  
C                RG12 2SZ                                                  GTS2F400.12125  
C                                                                          GTS2F400.12126  
C If no contract has been raised with this copy of the code, the use,      GTS2F400.12127  
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.12128  
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.12129  
C Modelling at the above address.                                          GTS2F400.12130  
C ******************************COPYRIGHT******************************    GTS2F400.12131  
C                                                                          GTS2F400.12132  
CLL  Routine: WRITFTXX -------------------------------------------------   WRITFTX1.3      
CLL                                                                        WRITFTX1.4      
CLL  Purpose: To create file of user fortran unit assignment details       WRITFTX1.5      
CLL           taken from common history block information.                 WRITFTX1.6      
CLL                                                                        WRITFTX1.7      
CLL  Tested under compiler:   cft77                                        WRITFTX1.8      
CLL  Tested under OS version: UNICOS 5.0                                   WRITFTX1.9      
CLL                                                                        WRITFTX1.10     
CLL  Author:   A.B.SANGSTER                                                WRITFTX1.11     
CLL                                                                        WRITFTX1.12     
CLL  Model            Modification history from model version 3.0:         WRITFTX1.13     
CLL version  date                                                          WRITFTX1.14     
CLL  3.1    2/02/93 : Added comdeck CHSUNITS to define NUNITS for          RS030293.70     
CLL                   extra I/O                                            RS030293.71     
CLL                                                                        AD050293.136    
CLL   3.1  05/02/93    Portable Fortran unit no assigns                    AD050293.137    
CLL                    Author: A. Dickinson    Reviewer: R. Stratton       AD050293.138    
CLL   3.2    13/07/93 Changed CHARACTER*(*) to CHARACTER*(80) for          TS150793.246    
CLL                   portability.  Author Tracey Smith.                   TS150793.247    
CLL                                                                        WRITFTX1.15     
CLL  Programming standard: UM Doc Paper 3, draft version 3 (15/1/90)       WRITFTX1.16     
CLL                                                                        WRITFTX1.17     
CLL  Logical components covered: C0                                        WRITFTX1.18     
CLL                                                                        WRITFTX1.19     
CLL  Project task: C0                                                      WRITFTX1.20     
CLL                                                                        WRITFTX1.21     
CLL  External documentation: On-line UM document C0 - The top-level        WRITFTX1.22     
CLL                          control system                                WRITFTX1.23     
C*L  Interface and arguments:                                              WRITFTX1.24     
C                                                                          WRITFTX1.25     

      SUBROUTINE WRITFTXX                                                   2,1WRITFTX1.26     
     *         ( UNITFTXX,ICODE,CMESSAGE )                                 WRITFTX1.27     
C                                                                          WRITFTX1.28     
      IMPLICIT NONE                                                        WRITFTX1.29     
C                                                                          WRITFTX1.30     
      INTEGER      UNITFTXX  ! In  - FTXX file unit                        WRITFTX1.31     
      INTEGER       ICODE    ! Out - Return code from routine              WRITFTX1.32     
      CHARACTER*(80) CMESSAGE ! Out - Return message if failure occured    TS150793.248    
       CHARACTER *80 FILENAME                                              AD050293.139    
C*                                                                         WRITFTX1.34     
C                                                                          WRITFTX1.35     
CL Common blocks                                                           WRITFTX1.36     
C                                                                          WRITFTX1.37     
*CALL CHSUNITS                                                             RS030293.72     
*CALL CLFHIST                                                              WRITFTX1.38     
C                                                                          WRITFTX1.39     
C*L EXTERNAL subroutines called                                            WRITFTX1.40     
      EXTERNAL GET_FILE                                                    AD050293.140    
C*                                                                         WRITFTX1.42     
CL  local variables                                                        RS030293.73     
C                                                                          RS030293.74     
      INTEGER        I  ! index for loop                                   RS030293.75     
C                                                                          WRITFTX1.43     
CL                                                                         WRITFTX1.44     
CL 1. Open, rewind and write a record                                      WRITFTX1.45     
CL                                                                         WRITFTX1.46     
      CALL GET_FILE(UNITFTXX,FILENAME,80,ICODE)                            GTD0F400.169    
      OPEN(UNITFTXX,FILE=FILENAME,IOSTAT=ICODE)   ! OPEN THE OUTPUT FILE   AD050293.142    
C                                                                          WRITFTX1.48     
C Check for error                                                          WRITFTX1.49     
C                                                                          WRITFTX1.50     
      IF(ICODE .GT.0)THEN                                                  WRITFTX1.51     
        CMESSAGE='WRITFTXX: Failed in OPEN of output unit'                 WRITFTX1.52     
        GOTO 999                                                           WRITFTX1.53     
      ELSEIF(ICODE .LT. 0)THEN                                             WRITFTX1.54     
        WRITE(6,*)'WRITFTXX: Warning message on OPEN of output unit'       GIE0F403.685    
        WRITE(6,*)'IOSTAT= ',ICODE                                         GIE0F403.686    
      ENDIF                                                                WRITFTX1.57     
C                                                                          WRITFTX1.58     
      REWIND(UNITFTXX)                                                     WRITFTX1.59     
      DO I=1,NUNITS                                                        RS030293.76     
        WRITE(UNITFTXX,100,IOSTAT=ICODE)MODEL_FT_UNIT(I)                   RS030293.77     
      ENDDO                                                                RS030293.78     
C                                                                          WRITFTX1.61     
C Check for error                                                          WRITFTX1.62     
C                                                                          WRITFTX1.63     
      IF(ICODE .GT.0)THEN                                                  WRITFTX1.64     
        CMESSAGE='WRITFTXX: Failed in WRITE to output unit'                WRITFTX1.65     
        GOTO 999                                                           WRITFTX1.66     
      ELSEIF(ICODE .LT. 0)THEN                                             WRITFTX1.67     
        WRITE(6,*)'WRITFTXX: Warning message on WRITE to output unit'      GIE0F403.687    
        WRITE(6,*)'IOSTAT= ',ICODE                                         GIE0F403.688    
      ENDIF                                                                WRITFTX1.70     
C                                                                          WRITFTX1.71     
C                                                                          WRITFTX1.72     
 100  FORMAT(A80)                                                          RS030293.79     
 999  CONTINUE                                                             WRITFTX1.74     
CL                                                                         WRITFTX1.75     
CL 2. Close and return                                                     WRITFTX1.76     
CL                                                                         WRITFTX1.77     
      CLOSE(UNITFTXX)                                                      WRITFTX1.78     
      RETURN                                                               WRITFTX1.79     
      END                                                                  WRITFTX1.80     
*ENDIF                                                                     WRITFTX1.81