*IF DEF,CONTROL,AND,DEF,ATMOS                                              ST_DIA11.2      
C ******************************COPYRIGHT******************************    GTS2F400.9829   
C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved.    GTS2F400.9830   
C                                                                          GTS2F400.9831   
C Use, duplication or disclosure of this code is subject to the            GTS2F400.9832   
C restrictions as set forth in the contract.                               GTS2F400.9833   
C                                                                          GTS2F400.9834   
C                Meteorological Office                                     GTS2F400.9835   
C                London Road                                               GTS2F400.9836   
C                BRACKNELL                                                 GTS2F400.9837   
C                Berkshire UK                                              GTS2F400.9838   
C                RG12 2SZ                                                  GTS2F400.9839   
C                                                                          GTS2F400.9840   
C If no contract has been raised with this copy of the code, the use,      GTS2F400.9841   
C duplication or disclosure of it is strictly prohibited.  Permission      GTS2F400.9842   
C to do so must first be obtained in writing from the Head of Numerical    GTS2F400.9843   
C Modelling at the above address.                                          GTS2F400.9844   
C ******************************COPYRIGHT******************************    GTS2F400.9845   
C                                                                          GTS2F400.9846   
CLL Subroutine ST_DIAG1 ----------------------------------------------     ST_DIA11.3      
CLL                                                                        ST_DIA11.4      
CLL Purpose : Calculates diagnostics from the wind field as required       ST_DIA11.5      
CLL U and V are pressure levels, CAT probability,                          ST_DIA11.6      
CLL maximum wind and potential vorticity using routine DYN_DIAG.           ST_DIA11.7      
CLL Now supports a potential vorticity diagnostic on theta surfaces.       ST_DIA11.8      
CLL Potential vorticity is available on a pressure surface and             MM180193.67     
CLL potential temperature on a potential vorticity surface.                MM180193.68     
CLL Added extra diagnostics UV, T, UT, VT, t2, u2, v2, w, wT, wU, wV,      ST_DIA11.10     
CLL                         q, qu, qv                                      ST_DIA11.11     
CLL                                                                        ST_DIA11.12     
CLL Control routine for CRAY YMP                                           ST_DIA11.13     
CLL                                                                        ST_DIA11.14     
CLL TJ, RS      <- programmer of some or all of previous code or changes   ST_DIA11.15     
CLL                                                                        ST_DIA11.16     
CLL  Model            Modification history from model version 3.0:         ST_DIA11.17     
CLL version  Date                                                          ST_DIA11.18     
CLL   3.1    9/02/93 : added comdeck CHSUNITS to define NUNITS for         RS030293.227    
CLL                    comdeck CCONTROL.                                   RS030293.228    
CLL 3.1   25/01/93  Change arguments to DYN_DIAG to include extra test     RR250193.54     
CLL diagnostics, items 231,232,233,234. R. Rawlins                         RR250193.55     
CLL 3.1      14/01/93 Include code to output potential vorticity on        MM180193.69     
CLL                   pressure surfaces and theta on a PV surface.         MM180193.70     
CLL   3.2    13/07/93 Changed CHARACTER*(*) to CHARACTER*(80) for          TS150793.186    
CLL                   portability.  Author Tracey Smith.                   TS150793.187    
CLL  3.2  13/04/93  Dynamic allocation of main arrays. R T H Barnes.       @DYALLOC.138    
CLL 3.3       01/11/93 Correct calculations of LAT_STEP_INVERSE            AL011193.1      
CLL                    and LONG_STEP_INVERSE.   A.S.Lawless                AL011193.2      
CLL   3.4   26/05/94  LOGICAL LLINTS passed to DYN_DIAG                    GSS1F304.202    
CLL                                               S.J.Swarbrick            GSS1F304.203    
CLL   3.5   10/04/95  Sub-model changes : Timestep length removed          ADR1F305.218    
CLL                   from Atmos dump header. D Robinson.                  ADR1F305.219    
!LL  4.4  10/04/97 : Add new diagnostics wq, Heavyside function and        ARS1F404.182    
!LL                  total column KE. Nos 235, 236, 237  R.A.Stratton      ARS1F404.183    
!LL       30/07/97 : Also Z, uZ, vZ, nos 238, 239, 240 where Z is          ARS1F404.184    
!LL                  geopotential height on u grid. R A Stratton.          ARS1F404.185    
!LL       19/08/97 : 241 mountain torque added. R A Stratton.              ARS1F404.186    
!LL   4.4   03/10/97  Pass LEVNO_PMSL_CALC to DYN_DIAG. D. Robinson        GDR3F404.3      
!LL   4.5 20/04/98   Initialise STASHWORK so that DYN_DIAG does not        GSM1F405.447    
!LL                  need to initialise halos S.D.Mullerworth              GSM1F405.448    
CLL                                                                        ST_DIA11.19     
CLL Programming standard; Unified Model Documentation Paper No. 3          ST_DIA11.20     
CLL                       version no. 1, dated 15/01/90                    ST_DIA11.21     
CLL                                                                        ST_DIA11.22     
CLL Logical components covered:                                            ST_DIA11.23     
CLL                                                                        ST_DIA11.24     
CLL System task : P0                                                       ST_DIA11.25     
CLL                                                                        ST_DIA11.26     
CLL Documentation : Unified Model Documentation Paper No P0                ST_DIA11.27     
CLL                version number 11 dated 26/11/90                        ST_DIA11.28     
CLL             and Unified Model documentation paper No C4                ST_DIA11.29     
CLL                version number 11 dated 23/11/90                        ST_DIA11.30     
!LL             and Unified Model documentation paper No D4                ARS1F404.187    
!LL             for information on product diagnostics eg uv etc.          ARS1F404.188    
CLL                                                                        ST_DIA11.31     
CLLEND---------------------------------------------------------------      ST_DIA11.32     
C*L Arguments                                                              @DYALLOC.139    
                                                                           ST_DIA11.33     

      SUBROUTINE ST_DIAG1( NUM_STASH_LEVELSDA,INT15,PSTAR_OLD,              2,6@DYALLOC.140    
*CALL ARGSIZE                                                              @DYALLOC.141    
*CALL ARGD1                                                                @DYALLOC.142    
*CALL ARGDUMA                                                              @DYALLOC.143    
*CALL ARGDUMO                                                              @DYALLOC.144    
*CALL ARGDUMW                                                              GKR1F401.266    
*CALL ARGSTS                                                               @DYALLOC.145    
*CALL ARGPTRA                                                              @DYALLOC.146    
*CALL ARGPTRO                                                              @DYALLOC.147    
*CALL ARGCONA                                                              @DYALLOC.148    
*CALL ARGPPX                                                               GKR0F305.992    
*CALL ARGFLDPT                                                             GSM1F405.449    
     &                    ICODE,CMESSAGE)                                  @DYALLOC.149    
                                                                           ST_DIA11.37     
C*                                                                         ST_DIA11.38     
      IMPLICIT NONE                                                        ST_DIA11.39     
C*L                                                                        ST_DIA11.40     
                                                                           ST_DIA11.41     
*CALL CMAXSIZE                                                             @DYALLOC.150    
*CALL CSUBMODL                                                             GSS1F305.938    
*CALL TYPSIZE                                                              @DYALLOC.151    
*CALL TYPD1                                                                @DYALLOC.152    
*CALL TYPDUMA                                                              @DYALLOC.153    
*CALL TYPDUMO                                                              @DYALLOC.154    
*CALL TYPDUMW                                                              GKR1F401.267    
*CALL TYPSTS                                                               @DYALLOC.155    
*CALL TYPPTRA                                                              @DYALLOC.156    
*CALL TYPPTRO                                                              @DYALLOC.157    
*CALL TYPCONA                                                              @DYALLOC.158    
*CALL PPXLOOK                                                              GKR0F305.993    
*CALL TYPFLDPT                                                             GSM1F405.450    
                                                                           @DYALLOC.159    
      INTEGER                                                              ST_DIA11.42     
     &        INT15,            ! Dummy for STASH_MAXLEN(15)               ST_DIA11.43     
     &        NUM_STASH_LEVELSDA,! In  Extra copy NUM_STASH_LEVELS         @DYALLOC.160    
     &        ICODE              ! Out return code : 0 Normal exit         @DYALLOC.161    
C                               !                 : >0 Error exit          ST_DIA11.45     
C                               ! workspace to be dynamically allocated    ST_DIA11.47     
      REAL                                                                 ST_DIA11.48     
     &        PSTAR_OLD(P_FIELD) ! IN Pstar before dynamics                @DYALLOC.162    
                                                                           ST_DIA11.50     
      CHARACTER*(80)                                                       TS150793.188    
     &        CMESSAGE          ! Out error message if ICODE > 0           ST_DIA11.52     
                                                                           ST_DIA11.53     
*CALL CHSUNITS                                                             RS030293.229    
*CALL CCONTROL                                                             ST_DIA11.58     
*CALL CPHYSCON                                                             ST_DIA11.59     
*CALL CTIME                                                                RR250193.56     
*CALL C_ETA_PMSL                                                           GDR3F404.4      
                                                                           ST_DIA11.60     
CL External subroutines called                                             ST_DIA11.61     
                                                                           ST_DIA11.62     
      EXTERNAL                                                             ST_DIA11.63     
     &        STASH,                                                       ST_DIA11.64     
     &        TIMER,                                                       ST_DIA11.65     
     &        DYN_DIAG                                                     ST_DIA11.66     
                                                                           ST_DIA11.67     
CL Dynamically allocated workspace for stash processing                    ST_DIA11.68     
                                                                           ST_DIA11.69     
      REAL                                                                 ST_DIA11.70     
     &        STASHWORK(INT15)                                             ST_DIA11.71     
     &       ,UCOMP_PRESS(NUM_STASH_LEVELSDA)                              @DYALLOC.163    
     &       ,VCOMP_PRESS(NUM_STASH_LEVELSDA)                              @DYALLOC.164    
     &       ,CAT_PROB_PRESS(NUM_STASH_LEVELSDA)                           @DYALLOC.165    
     &       ,PV_THETA(NUM_STASH_LEVELSDA)  ! requested theta levels       @DYALLOC.166    
     &       ,PV_PRESS(NUM_STASH_LEVELSDA)  ! requested p levels           @DYALLOC.167    
     &       ,THETA_ON_PV(NUM_STASH_LEVELSDA) ! requested pv levels        @DYALLOC.168    
     &       ,T_PRESS(NUM_STASH_LEVELSDA)                                  @DYALLOC.169    
     &       ,w_PRESS(NUM_STASH_LEVELSDA)                                  @DYALLOC.170    
     &       ,Q_PRESS(NUM_STASH_LEVELSDA)                                  @DYALLOC.171    
     &       ,PRESS_LEVS(NUM_STASH_LEVELSDA)                               @DYALLOC.172    
     &       ,TESTD_PRESS(NUM_STASH_LEVELSDA)                              @DYALLOC.173    
     &       ,TESTD_MODEL(NUM_STASH_LEVELSDA)                              @DYALLOC.174    
     &       ,HEAVY_PRESS(NUM_STASH_LEVELSDA)   ! Heavy press levels       ARS1F404.189    
     &       ,Z_PRESS(NUM_STASH_LEVELSDA)       ! Z pressure levels        ARS1F404.190    
                                                                           ST_DIA11.80     
C Local variables                                                          ST_DIA11.81     
                                                                           ST_DIA11.82     
      INTEGER                                                              ST_DIA11.83     
     &        I,                                                           ST_DIA11.84     
     &        NI,                                                          ST_DIA11.85     
     &        K,                                                           ST_DIA11.86     
     &        ISL,                                                         ST_DIA11.87     
     &        BL,                                                          ST_DIA11.88     
     &        TL,                                                          ST_DIA11.89     
     &        LEVEL,                                                       ST_DIA11.90     
     &        UCOMP_P_LEVS,                                                ST_DIA11.91     
     &        VCOMP_P_LEVS,                                                ST_DIA11.92     
     &        CAT_PROB_LEVS,                                               ST_DIA11.93     
     &        PV_THETA_LEVS,                                               ST_DIA11.94     
     &        PV_PRESS_LEVS,                                               MM180193.74     
     &        THETA_ON_PV_LEVS,                                            MM180193.75     
     & n_levels,                                                           TD141293.95     
     &        UV_P_LEVS,T_P_LEVS,UT_P_LEVS,VT_P_LEVS,T2_P_LEVS,            ST_DIA11.95     
     &        U2_P_LEVS,V2_P_LEVS,w_P_LEVS,WT_P_LEVS,Wu_P_LEVS,            ST_DIA11.96     
     &        WV_P_LEVS,Q_P_LEVS,QU_P_LEVS,QV_P_LEVS,QW_P_LEVS,            ARS1F404.191    
     &        TESTD_P_LEVS,TESTD_M_LEVS,HEAVY_P_LEVS                       ARS1F404.192    
     &       ,Z_P_LEVS,UZ_P_LEVS,VZ_P_LEVS                                 ARS1F404.193    
     &       ,im_ident      !  Internal Model Identifier                   GDR4F305.160    
     &       ,im_index      !  Internal Model Index for Stash Arrays       GDR4F305.161    
                                                                           ST_DIA11.98     
      INTEGER                                                              ST_DIA11.99     
     &        PT201,PT202,PT203,PT204,PT205,PT206,PT207,PT208,PT209,       ST_DIA11.100    
     &        PT210,PT211,PT212,PT213,PT214,PT215,PT216,PT217,PT218,       ST_DIA11.101    
     &        PT219,PT220,PT221,PT222,PT223,PT224,PT225,PT226,PT227,       ST_DIA11.102    
     &        PT228,PT229,PT230,                                           MM180193.76     
     &        PT231,PT232,PT233,PT234,PT235,PT236,PT237,                   ARS1F404.194    
     &        PT238,PT239,PT240,PT241                                      ARS1F404.195    
                                                                           ST_DIA11.104    
      INTEGER                                                              ST_DIA11.105    
     &  UV_IND(NUM_STASH_LEVELSDA*2),UT_IND(NUM_STASH_LEVELSDA*2),         @DYALLOC.175    
     &  VT_IND(NUM_STASH_LEVELSDA*2),T2_IND(NUM_STASH_LEVELSDA),           @DYALLOC.176    
     &  U2_IND(NUM_STASH_LEVELSDA*2),V2_IND(NUM_STASH_LEVELSDA),           @DYALLOC.177    
     &  WT_IND(NUM_STASH_LEVELSDA*2),WU_IND(NUM_STASH_LEVELSDA*2),         @DYALLOC.178    
     &  WV_IND(NUM_STASH_LEVELSDA*2),QU_IND(NUM_STASH_LEVELSDA*2),         @DYALLOC.179    
     &  QV_IND(NUM_STASH_LEVELSDA*2),QW_IND(NUM_STASH_LEVELSDA*2),         ARS1F404.196    
     &  UZ_IND(NUM_STASH_LEVELSDA*2),VZ_IND(NUM_STASH_LEVELSDA*2)          ARS1F404.197    
                                                                           ST_DIA11.112    
      LOGICAL                                                              ST_DIA11.113    
     &        ROTATE_UV,    !True if wind to be rotated                    ST_DIA11.114    
     &        ROTATE_MAX_UV !True if wind to be rotated                    ST_DIA11.115    
     &       ,ERROR_TEST    !True if pressure levels for diagnostic        ST_DIA11.116    
C                             product don't match                          ST_DIA11.117    
                                                                           ST_DIA11.118    
      REAL                                                                 ST_DIA11.119    
     &        NMOST_LAT,    !Northern most latitude of grid                ST_DIA11.120    
     &        WMOST_LONG,   !Western most longitude                        ST_DIA11.121    
     &        EW_SPACE,     !Delta longitude                               ST_DIA11.122    
     &        NS_SPACE,     !Delta latitude                                ST_DIA11.123    
     &        PHI_POLE,     !Latitude of the pseudo pole                   ST_DIA11.124    
     &        LAMBDA_POLE   !Longitude of the pseudo pole                  ST_DIA11.125    
     &  ,LAT_STEP_INVERSE                                                  ST_DIA11.126    
     &  ,LONG_STEP_INVERSE                                                 ST_DIA11.127    
                                                                           ST_DIA11.128    
CL Internal Structure:                                                     ST_DIA11.129    
                                                                           ST_DIA11.130    
!     Set to atmosphere internal model                                     GDR4F305.162    
      im_ident = atmos_im                                                  GDR4F305.163    
      im_index = internal_model_index(im_ident)                            GDR4F305.164    
                                                                           GDR4F305.165    
                                                                           ST_DIA11.131    
CL  Section 15  Dynamics diagnostics                                       ST_DIA11.132    
CL                                                                         ST_DIA11.133    
CL  Local workspace definitions                                            ST_DIA11.134    
CL ---------------------------------------------------------------------   ST_DIA11.135    
CL      call DYN_DIAG to calculate dynamical diagnostics and               ST_DIA11.136    
CL      call STASH to process output                                       ST_DIA11.137    
CL ---------------------------------------------------------------------   ST_DIA11.138    
CL                                                                         ST_DIA11.139    
CL This section of code contains numbers used to                           ST_DIA11.140    
CL check on the type of level which determines                             ST_DIA11.141    
CL the interpolation,                                                      ST_DIA11.142    
CL the codes are as follows (all for stashlist entry 11)                   ST_DIA11.143    
CL 1 -- model levels                                                       ST_DIA11.144    
CL 2 -- Pressure Levels                                                    ST_DIA11.145    
CL 3 -- Height Levels                                                      ST_DIA11.146    
CL 4 -- Theta Levels                                                       ST_DIA11.147    
CL 5 -- Potential Vorticity Levels                                         MM180193.77     
                                                                           ST_DIA11.148    
CL-------------------Extract Reqd Pressures for U_COMP_P-------------      ST_DIA11.149    
                                                                           ST_DIA11.150    
      ISL=STINDEX(1,201,15,im_index)                                       GDR4F305.166    
      IF(ISL.GT.0) THEN                                                    ST_DIA11.152    
            NI=-STLIST(10,ISL)                                             ST_DIA11.153    
            UCOMP_P_LEVS=STASH_LEVELS(1,NI)                                ST_DIA11.154    
            DO K =1,UCOMP_P_LEVS                                           ST_DIA11.155    
              UCOMP_PRESS(K)=STASH_LEVELS(K+1,NI)/1000.0                   ST_DIA11.156    
            ENDDO                                                          ST_DIA11.157    
      ELSE                                                                 ST_DIA11.158    
         UCOMP_P_LEVS=1                                                    ST_DIA11.159    
      END IF                                                               ST_DIA11.160    
                                                                           ST_DIA11.161    
CL-------------------Extract Reqd Pressures for V_COMP_P-------------      ST_DIA11.162    
                                                                           ST_DIA11.163    
      ISL=STINDEX(1,202,15,im_index)                                       GDR4F305.167    
      IF(ISL.GT.0) THEN                                                    ST_DIA11.165    
            NI=-STLIST(10,ISL)                                             ST_DIA11.166    
            VCOMP_P_LEVS=STASH_LEVELS(1,NI)                                ST_DIA11.167    
            DO K =1,VCOMP_P_LEVS                                           ST_DIA11.168    
              VCOMP_PRESS(K)=STASH_LEVELS(K+1,NI)/1000.0                   ST_DIA11.169    
            ENDDO                                                          ST_DIA11.170    
      ELSE                                                                 ST_DIA11.171    
         VCOMP_P_LEVS=1                                                    ST_DIA11.172    
      END IF                                                               ST_DIA11.173    
                                                                           ST_DIA11.174    
CL----------Extract required thetas for Potn_vort on theta ----            MM180193.78     
                                                                           ST_DIA11.176    
      ISL=STINDEX(1,214,15,im_index)                                       GDR4F305.168    
      IF(ISL.GT.0) THEN                                                    ST_DIA11.178    
        IF(STLIST(10,ISL).LT.0) THEN                                       ST_DIA11.179    
          IF(STLIST(11,ISL).EQ.4) THEN                                     ST_DIA11.180    
            NI = -STLIST(10,ISL)                                           ST_DIA11.181    
            PV_THETA_LEVS = STASH_LEVELS(1,NI)                             ST_DIA11.182    
            DO K = 1,PV_THETA_LEVS                                         ST_DIA11.183    
              PV_THETA(K) = STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.184    
C ***** levels are stored as integers so divide by a thousand **           ST_DIA11.185    
            ENDDO                                                          ST_DIA11.186    
          ELSE                                                             ST_DIA11.187    
            CMESSAGE = ' ST_DIAG1 level not theta for pv_theta'            ST_DIA11.188    
            ICODE = 1                                                      ST_DIA11.189    
            RETURN                                                         ST_DIA11.190    
          END IF                                                           ST_DIA11.191    
        ELSE                                                               ST_DIA11.192    
          CMESSAGE =' ST_DIAG1 level not a LEVELS list for PV_Theta'       ST_DIA11.193    
          ICODE = 1                                                        ST_DIA11.194    
          RETURN                                                           ST_DIA11.195    
        END IF                                                             ST_DIA11.196    
      ELSE                                                                 MM180193.79     
        PV_THETA_LEVS = 1                                                  MM180193.80     
      END IF                                                               ST_DIA11.199    
                                                                           ST_DIA11.200    
CL----------Extract required pressures for Potn_vort on press ----         MM180193.81     
                                                                           MM180193.82     
      ISL=STINDEX(1,229,15,im_index)                                       GDR4F305.169    
      IF(ISL.GT.0) THEN                                                    MM180193.84     
        IF(STLIST(10,ISL).LT.0) THEN                                       MM180193.85     
          IF(STLIST(11,ISL).EQ.2) THEN                                     MM180193.86     
            NI = -STLIST(10,ISL)                                           MM180193.87     
            PV_PRESS_LEVS = STASH_LEVELS(1,NI)                             MM180193.88     
            DO K = 1,PV_PRESS_LEVS                                         MM180193.89     
              PV_PRESS(K) = STASH_LEVELS(K+1,NI)/10.0                      MM180193.90     
C ***** levels are stored as integers so divide by a thousand **           MM180193.91     
C ***** Multiply by 100. to convert to pascals.                            MM180193.92     
            ENDDO                                                          MM180193.93     
          ELSE                                                             MM180193.94     
            CMESSAGE = ' ST_DIAG1 level not pressure for pv_press'         MM180193.95     
            ICODE = 1                                                      MM180193.96     
            RETURN                                                         MM180193.97     
          END IF                                                           MM180193.98     
        ELSE                                                               MM180193.99     
          CMESSAGE =' ST_DIAG1 level not a LEVELS list for PV_press'       MM180193.100    
          ICODE = 1                                                        MM180193.101    
          RETURN                                                           MM180193.102    
        END IF                                                             MM180193.103    
      ELSE                                                                 MM180193.104    
        PV_PRESS_LEVS = 1                                                  MM180193.105    
      END IF                                                               MM180193.106    
                                                                           MM180193.107    
CL----------Extract required PVs for Theta on pv -----------------         MM180193.108    
                                                                           MM180193.109    
      ISL=STINDEX(1,230,15,im_index)                                       GDR4F305.170    
      IF(ISL.GT.0) THEN                                                    MM180193.111    
        IF(STLIST(10,ISL).LT.0) THEN                                       MM180193.112    
          IF(STLIST(11,ISL).EQ.5) THEN                                     MM180193.113    
            NI = -STLIST(10,ISL)                                           MM180193.114    
            THETA_ON_PV_LEVS = STASH_LEVELS(1,NI)                          MM180193.115    
            DO K = 1,PV_PRESS_LEVS                                         MM180193.116    
              THETA_ON_PV(K) = STASH_LEVELS(K+1,NI)/1000.0                 MM180193.117    
C ***** levels are stored as integers so divide by a thousand **           MM180193.118    
            ENDDO                                                          MM180193.119    
          ELSE                                                             MM180193.120    
            CMESSAGE = ' ST_DIAG1 level not PV for theta_on_pv'            MM180193.121    
            ICODE = 1                                                      MM180193.122    
            RETURN                                                         MM180193.123    
          END IF                                                           MM180193.124    
        ELSE                                                               MM180193.125    
          CMESSAGE =' ST_DIAG1 level not a LEVELS list for theta_on_pv'    MM180193.126    
          ICODE = 1                                                        MM180193.127    
          RETURN                                                           MM180193.128    
        END IF                                                             MM180193.129    
      ELSE                                                                 MM180193.130    
        THETA_ON_PV_LEVS = 1                                               MM180193.131    
      END IF                                                               MM180193.132    
                                                                           MM180193.133    
CL----------Extract required pressures for CAT_PROB_SINGLE--------------   ST_DIA11.201    
                                                                           ST_DIA11.202    
      ISL=STINDEX(1,205,15,im_index)                                       GDR4F305.171    
      IF(ISL.GT.0) THEN                                                    ST_DIA11.204    
            NI=-STLIST(10,ISL)                                             ST_DIA11.205    
            CAT_PROB_LEVS=STASH_LEVELS(1,NI)                               ST_DIA11.206    
            DO K =1,CAT_PROB_LEVS                                          ST_DIA11.207    
              CAT_PROB_PRESS(K)=STASH_LEVELS(K+1,NI)/1000.0                ST_DIA11.208    
            ENDDO                                                          ST_DIA11.209    
      ELSE                                                                 ST_DIA11.210    
         CAT_PROB_LEVS=1                                                   ST_DIA11.211    
      END IF                                                               ST_DIA11.212    
                                                                           ST_DIA11.213    
CL----Check U and V also requested this timestep -----------------------   ST_DIA11.214    
                                                                           ST_DIA11.215    
      IF (SF(215,15)) THEN                                                 ST_DIA11.216    
       IF ((.NOT.SF(201,15)).OR.(.NOT.SF(202,15))) THEN                    ST_DIA11.217    
         CMESSAGE='ST_DIAG1 : UV error U and V must be requested'          ST_DIA11.218    
         ICODE=1                                                           ST_DIA11.219    
         GOTO 999                                                          ST_DIA11.220    
       ELSE                                                                ST_DIA11.221    
      ISL=STINDEX(1,215,15,im_index)                                       GDR4F305.172    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.223    
            NI=-STLIST(10,ISL)                                             ST_DIA11.224    
            UV_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.225    
            DO K =1,UV_P_LEVS                                              ST_DIA11.226    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.227    
              DO I=1,UCOMP_P_LEVS                                          ST_DIA11.228    
                IF (PRESS_LEVS(K).EQ.UCOMP_PRESS(I)) THEN                  ST_DIA11.229    
                  UV_IND(K)=I                                              ST_DIA11.230    
                ENDIF                                                      ST_DIA11.231    
              ENDDO                                                        ST_DIA11.232    
              DO I=1,VCOMP_P_LEVS                                          ST_DIA11.233    
                IF (PRESS_LEVS(K).EQ.VCOMP_PRESS(I)) THEN                  ST_DIA11.234    
                  UV_IND(UV_P_LEVS+K)=I                                    ST_DIA11.235    
                ENDIF                                                      ST_DIA11.236    
              ENDDO                                                        ST_DIA11.237    
            ENDDO                                                          ST_DIA11.238    
         ELSE                                                              ST_DIA11.239    
           UV_P_LEVS=1                                                     ST_DIA11.240    
         END IF                                                            ST_DIA11.241    
       END IF                                                              ST_DIA11.242    
      ELSE                                                                 ST_DIA11.243    
        UV_P_LEVS=1                                                        ST_DIA11.244    
      END IF                                                               ST_DIA11.245    
                                                                           ST_DIA11.246    
CL-------------------Extract Reqd Pressures for T on wind grid-------      ST_DIA11.247    
                                                                           ST_DIA11.248    
      ISL=STINDEX(1,216,15,im_index)                                       GDR4F305.173    
      IF(ISL.GT.0) THEN                                                    ST_DIA11.250    
            NI=-STLIST(10,ISL)                                             ST_DIA11.251    
            T_P_LEVS=STASH_LEVELS(1,NI)                                    ST_DIA11.252    
            DO K =1,T_P_LEVS                                               ST_DIA11.253    
              T_PRESS(K)=STASH_LEVELS(K+1,NI)/1000.0                       ST_DIA11.254    
            ENDDO                                                          ST_DIA11.255    
      ELSE                                                                 ST_DIA11.256    
         T_P_LEVS=1                                                        ST_DIA11.257    
      END IF                                                               ST_DIA11.258    
                                                                           ST_DIA11.259    
CL----Check UT requested at same time as  U and T-----------------------   ST_DIA11.260    
                                                                           ST_DIA11.261    
      IF (SF(217,15)) THEN                                                 ST_DIA11.262    
       IF ((.NOT.SF(201,15)).OR.(.NOT.SF(216,15))) THEN                    ST_DIA11.263    
         CMESSAGE='ST_DIAG1 : UT error U and T must be requested'          ST_DIA11.264    
         ICODE=1                                                           ST_DIA11.265    
         GOTO 999                                                          ST_DIA11.266    
       ELSE                                                                ST_DIA11.267    
      ISL=STINDEX(1,217,15,im_index)                                       GDR4F305.174    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.269    
            NI=-STLIST(10,ISL)                                             ST_DIA11.270    
            UT_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.271    
            DO K =1,UT_P_LEVS                                              ST_DIA11.272    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.273    
              DO I=1,UCOMP_P_LEVS                                          ST_DIA11.274    
                IF (PRESS_LEVS(K).EQ.UCOMP_PRESS(I)) THEN                  ST_DIA11.275    
                  UT_IND(K)=I                                              ST_DIA11.276    
                ENDIF                                                      ST_DIA11.277    
              ENDDO                                                        ST_DIA11.278    
              DO I=1,T_P_LEVS                                              ST_DIA11.279    
                IF (PRESS_LEVS(K).EQ.T_PRESS(I)) THEN                      ST_DIA11.280    
                  UT_IND(UT_P_LEVS+K)=I                                    ST_DIA11.281    
                ENDIF                                                      ST_DIA11.282    
              ENDDO                                                        ST_DIA11.283    
            ENDDO                                                          ST_DIA11.284    
         ELSE                                                              ST_DIA11.285    
           UT_P_LEVS=1                                                     ST_DIA11.286    
         END IF                                                            ST_DIA11.287    
       END IF                                                              ST_DIA11.288    
      ELSE                                                                 ST_DIA11.289    
        UT_P_LEVS=1                                                        ST_DIA11.290    
      END IF                                                               ST_DIA11.291    
                                                                           ST_DIA11.292    
CL----Check VT requested at same time as  V and T-----------------------   ST_DIA11.293    
                                                                           ST_DIA11.294    
      IF (SF(218,15)) THEN                                                 ST_DIA11.295    
       IF ((.NOT.SF(202,15)).OR.(.NOT.SF(216,15))) THEN                    ST_DIA11.296    
         CMESSAGE='ST_DIAG1 : VT error V and T must be requested'          ST_DIA11.297    
         ICODE=1                                                           ST_DIA11.298    
         GOTO 999                                                          ST_DIA11.299    
       ELSE                                                                ST_DIA11.300    
      ISL=STINDEX(1,218,15,im_index)                                       GDR4F305.175    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.302    
            NI=-STLIST(10,ISL)                                             ST_DIA11.303    
            VT_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.304    
            DO K =1,VT_P_LEVS                                              ST_DIA11.305    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.306    
              DO I=1,VCOMP_P_LEVS                                          ST_DIA11.307    
                IF (PRESS_LEVS(K).EQ.VCOMP_PRESS(I)) THEN                  ST_DIA11.308    
                  VT_IND(K)=I                                              ST_DIA11.309    
                ENDIF                                                      ST_DIA11.310    
              ENDDO                                                        ST_DIA11.311    
              DO I=1,T_P_LEVS                                              ST_DIA11.312    
                IF (PRESS_LEVS(K).EQ.T_PRESS(I)) THEN                      ST_DIA11.313    
                  VT_IND(VT_P_LEVS+K)=I                                    ST_DIA11.314    
                ENDIF                                                      ST_DIA11.315    
              ENDDO                                                        ST_DIA11.316    
            ENDDO                                                          ST_DIA11.317    
         ELSE                                                              ST_DIA11.318    
           VT_P_LEVS=1                                                     ST_DIA11.319    
         END IF                                                            ST_DIA11.320    
       END IF                                                              ST_DIA11.321    
      ELSE                                                                 ST_DIA11.322    
        VT_P_LEVS=1                                                        ST_DIA11.323    
      END IF                                                               ST_DIA11.324    
                                                                           ST_DIA11.325    
CL----Check T2 requested at same time as  T ----------------------------   ST_DIA11.326    
                                                                           ST_DIA11.327    
      IF (SF(219,15)) THEN                                                 ST_DIA11.328    
       IF (.NOT.SF(216,15)) THEN                                           ST_DIA11.329    
         CMESSAGE='ST_DIAG1 : T2 error T must be requested'                ST_DIA11.330    
         ICODE=1                                                           ST_DIA11.331    
         GOTO 999                                                          ST_DIA11.332    
       ELSE                                                                ST_DIA11.333    
      ISL=STINDEX(1,219,15,im_index)                                       GDR4F305.176    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.335    
            NI=-STLIST(10,ISL)                                             ST_DIA11.336    
            T2_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.337    
            DO K =1,T2_P_LEVS                                              ST_DIA11.338    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.339    
              DO I=1,T_P_LEVS                                              ST_DIA11.340    
                IF (PRESS_LEVS(K).EQ.T_PRESS(I)) THEN                      ST_DIA11.341    
                  T2_IND(K)=I                                              ST_DIA11.342    
                ENDIF                                                      ST_DIA11.343    
              ENDDO                                                        ST_DIA11.344    
            ENDDO                                                          ST_DIA11.345    
         ELSE                                                              ST_DIA11.346    
           T2_P_LEVS=1                                                     ST_DIA11.347    
         END IF                                                            ST_DIA11.348    
       END IF                                                              ST_DIA11.349    
      ELSE                                                                 ST_DIA11.350    
        T2_P_LEVS=1                                                        ST_DIA11.351    
      END IF                                                               ST_DIA11.352    
                                                                           ST_DIA11.353    
CL----Check U2 requested at same time as  U ----------------------------   ST_DIA11.354    
                                                                           ST_DIA11.355    
      IF (SF(220,15)) THEN                                                 ST_DIA11.356    
       IF (.NOT.SF(201,15)) THEN                                           ST_DIA11.357    
         CMESSAGE='ST_DIAG1 : U2 error U must be requested'                ST_DIA11.358    
         ICODE=1                                                           ST_DIA11.359    
         GOTO 999                                                          ST_DIA11.360    
       ELSE                                                                ST_DIA11.361    
      ISL=STINDEX(1,220,15,im_index)                                       GDR4F305.177    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.363    
            NI=-STLIST(10,ISL)                                             ST_DIA11.364    
            U2_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.365    
            DO K =1,U2_P_LEVS                                              ST_DIA11.366    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.367    
              DO I=1,UCOMP_P_LEVS                                          ST_DIA11.368    
                IF (PRESS_LEVS(K).EQ.UCOMP_PRESS(I)) THEN                  ST_DIA11.369    
                  U2_IND(K)=I                                              ST_DIA11.370    
                ENDIF                                                      ST_DIA11.371    
              ENDDO                                                        ST_DIA11.372    
            ENDDO                                                          ST_DIA11.373    
         ELSE                                                              ST_DIA11.374    
           U2_P_LEVS=1                                                     ST_DIA11.375    
         END IF                                                            ST_DIA11.376    
       END IF                                                              ST_DIA11.377    
      ELSE                                                                 ST_DIA11.378    
        U2_P_LEVS=1                                                        ST_DIA11.379    
      END IF                                                               ST_DIA11.380    
                                                                           ST_DIA11.381    
CL----Check V2 requested at same time as  V ----------------------------   ST_DIA11.382    
                                                                           ST_DIA11.383    
      IF (SF(221,15)) THEN                                                 ST_DIA11.384    
       IF (.NOT.SF(202,15)) THEN                                           ST_DIA11.385    
         CMESSAGE='ST_DIAG1 : V2 error V must be requested'                ST_DIA11.386    
         ICODE=1                                                           ST_DIA11.387    
         GOTO 999                                                          ST_DIA11.388    
       ELSE                                                                ST_DIA11.389    
      ISL=STINDEX(1,221,15,im_index)                                       GDR4F305.178    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.391    
            NI=-STLIST(10,ISL)                                             ST_DIA11.392    
            V2_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.393    
            DO K =1,V2_P_LEVS                                              ST_DIA11.394    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.395    
              DO I=1,VCOMP_P_LEVS                                          ST_DIA11.396    
                IF (PRESS_LEVS(K).EQ.VCOMP_PRESS(I)) THEN                  ST_DIA11.397    
                  V2_IND(K)=I                                              ST_DIA11.398    
                ENDIF                                                      ST_DIA11.399    
              ENDDO                                                        ST_DIA11.400    
            ENDDO                                                          ST_DIA11.401    
         ELSE                                                              ST_DIA11.402    
           V2_P_LEVS=1                                                     ST_DIA11.403    
         END IF                                                            ST_DIA11.404    
       END IF                                                              ST_DIA11.405    
      ELSE                                                                 ST_DIA11.406    
        V2_P_LEVS=1                                                        ST_DIA11.407    
      END IF                                                               ST_DIA11.408    
                                                                           ST_DIA11.409    
CL-------------------Extract Reqd Pressures for w on wind grid-------      ST_DIA11.410    
                                                                           ST_DIA11.411    
      ISL=STINDEX(1,222,15,im_index)                                       GDR4F305.179    
      IF(ISL.GT.0) THEN                                                    ST_DIA11.413    
            NI=-STLIST(10,ISL)                                             ST_DIA11.414    
            w_P_LEVS=STASH_LEVELS(1,NI)                                    ST_DIA11.415    
            DO K =1,w_P_LEVS                                               ST_DIA11.416    
              w_PRESS(K)=STASH_LEVELS(K+1,NI)/1000.0                       ST_DIA11.417    
            ENDDO                                                          ST_DIA11.418    
      ELSE                                                                 ST_DIA11.419    
         w_P_LEVS=1                                                        ST_DIA11.420    
      END IF                                                               ST_DIA11.421    
                                                                           ST_DIA11.422    
CL----Check wT requested at same time as  w and T-----------------------   ST_DIA11.423    
                                                                           ST_DIA11.424    
      IF (SF(223,15)) THEN                                                 ST_DIA11.425    
       IF ((.NOT.SF(222,15)).OR.(.NOT.SF(216,15))) THEN                    ST_DIA11.426    
         CMESSAGE='ST_DIAG1 : wT error w and T must be requested'          ST_DIA11.427    
         ICODE=1                                                           ST_DIA11.428    
         GOTO 999                                                          ST_DIA11.429    
       ELSE                                                                ST_DIA11.430    
      ISL=STINDEX(1,223,15,im_index)                                       GDR4F305.180    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.432    
            NI=-STLIST(10,ISL)                                             ST_DIA11.433    
            WT_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.434    
            DO K =1,WT_P_LEVS                                              ST_DIA11.435    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.436    
              DO I=1,W_P_LEVS                                              ST_DIA11.437    
                IF (PRESS_LEVS(K).EQ.W_PRESS(I)) THEN                      ST_DIA11.438    
                  WT_IND(K)=I                                              ST_DIA11.439    
                ENDIF                                                      ST_DIA11.440    
              ENDDO                                                        ST_DIA11.441    
              DO I=1,T_P_LEVS                                              ST_DIA11.442    
                IF (PRESS_LEVS(K).EQ.T_PRESS(I)) THEN                      ST_DIA11.443    
                  WT_IND(WT_P_LEVS+K)=I                                    ST_DIA11.444    
                ENDIF                                                      ST_DIA11.445    
              ENDDO                                                        ST_DIA11.446    
            ENDDO                                                          ST_DIA11.447    
         ELSE                                                              ST_DIA11.448    
           WT_P_LEVS=1                                                     ST_DIA11.449    
         END IF                                                            ST_DIA11.450    
       END IF                                                              ST_DIA11.451    
      ELSE                                                                 ST_DIA11.452    
        WT_P_LEVS=1                                                        ST_DIA11.453    
      END IF                                                               ST_DIA11.454    
                                                                           ST_DIA11.455    
CL----Check wU requested at same time as  w and u-----------------------   ST_DIA11.456    
                                                                           ST_DIA11.457    
      IF (SF(224,15)) THEN                                                 ST_DIA11.458    
       IF ((.NOT.SF(222,15)).OR.(.NOT.SF(201,15))) THEN                    ST_DIA11.459    
         CMESSAGE='ST_DIAG1 : wU error w and U must be requested'          ST_DIA11.460    
         ICODE=1                                                           ST_DIA11.461    
         GOTO 999                                                          ST_DIA11.462    
       ELSE                                                                ST_DIA11.463    
      ISL=STINDEX(1,224,15,im_index)                                       GDR4F305.181    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.465    
            NI=-STLIST(10,ISL)                                             ST_DIA11.466    
            WU_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.467    
            DO K =1,WU_P_LEVS                                              ST_DIA11.468    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.469    
              DO I=1,W_P_LEVS                                              ST_DIA11.470    
                IF (PRESS_LEVS(K).EQ.W_PRESS(I)) THEN                      ST_DIA11.471    
                  WU_IND(K)=I                                              ST_DIA11.472    
                ENDIF                                                      ST_DIA11.473    
              ENDDO                                                        ST_DIA11.474    
              DO I=1,UCOMP_P_LEVS                                          ST_DIA11.475    
                IF (PRESS_LEVS(K).EQ.UCOMP_PRESS(I)) THEN                  ST_DIA11.476    
                  WU_IND(WU_P_LEVS+K)=I                                    ST_DIA11.477    
                ENDIF                                                      ST_DIA11.478    
              ENDDO                                                        ST_DIA11.479    
            ENDDO                                                          ST_DIA11.480    
         ELSE                                                              ST_DIA11.481    
           WU_P_LEVS=1                                                     ST_DIA11.482    
         END IF                                                            ST_DIA11.483    
       END IF                                                              ST_DIA11.484    
      ELSE                                                                 ST_DIA11.485    
        WU_P_LEVS=1                                                        ST_DIA11.486    
      END IF                                                               ST_DIA11.487    
                                                                           ST_DIA11.488    
CL----Check wV requested at same time as  w and V-----------------------   ST_DIA11.489    
                                                                           ST_DIA11.490    
      IF (SF(225,15)) THEN                                                 ST_DIA11.491    
       IF ((.NOT.SF(222,15)).OR.(.NOT.SF(202,15))) THEN                    ST_DIA11.492    
         CMESSAGE='ST_DIAG1 : wV error w and V must be requested'          ST_DIA11.493    
         ICODE=1                                                           ST_DIA11.494    
         GOTO 999                                                          ST_DIA11.495    
       ELSE                                                                ST_DIA11.496    
      ISL=STINDEX(1,225,15,im_index)                                       GDR4F305.182    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.498    
            NI=-STLIST(10,ISL)                                             ST_DIA11.499    
            WV_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.500    
            DO K =1,WV_P_LEVS                                              ST_DIA11.501    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.502    
              DO I=1,W_P_LEVS                                              ST_DIA11.503    
                IF (PRESS_LEVS(K).EQ.W_PRESS(I)) THEN                      ST_DIA11.504    
                  WV_IND(K)=I                                              ST_DIA11.505    
                ENDIF                                                      ST_DIA11.506    
              ENDDO                                                        ST_DIA11.507    
              DO I=1,VCOMP_P_LEVS                                          ST_DIA11.508    
                IF (PRESS_LEVS(K).EQ.VCOMP_PRESS(I)) THEN                  ST_DIA11.509    
                  WV_IND(WV_P_LEVS+K)=I                                    ST_DIA11.510    
                ENDIF                                                      ST_DIA11.511    
              ENDDO                                                        ST_DIA11.512    
            ENDDO                                                          ST_DIA11.513    
         ELSE                                                              ST_DIA11.514    
           WV_P_LEVS=1                                                     ST_DIA11.515    
         END IF                                                            ST_DIA11.516    
       END IF                                                              ST_DIA11.517    
      ELSE                                                                 ST_DIA11.518    
        WV_P_LEVS=1                                                        ST_DIA11.519    
      END IF                                                               ST_DIA11.520    
                                                                           ST_DIA11.521    
                                                                           ST_DIA11.522    
CL-------------------Extract Reqd Pressures for q on wind grid-------      ST_DIA11.523    
                                                                           ST_DIA11.524    
      ISL=STINDEX(1,226,15,im_index)                                       GDR4F305.183    
      IF(ISL.GT.0) THEN                                                    ST_DIA11.526    
            NI=-STLIST(10,ISL)                                             ST_DIA11.527    
            Q_P_LEVS=STASH_LEVELS(1,NI)                                    ST_DIA11.528    
            DO K =1,Q_P_LEVS                                               ST_DIA11.529    
              Q_PRESS(K)=STASH_LEVELS(K+1,NI)/1000.0                       ST_DIA11.530    
            ENDDO                                                          ST_DIA11.531    
      ELSE                                                                 ST_DIA11.532    
         Q_P_LEVS=1                                                        ST_DIA11.533    
      END IF                                                               ST_DIA11.534    
                                                                           ST_DIA11.535    
CL----Check qU requested at same time as  q and u-----------------------   ST_DIA11.536    
                                                                           ST_DIA11.537    
      IF (SF(227,15)) THEN                                                 ST_DIA11.538    
       IF ((.NOT.SF(226,15)).OR.(.NOT.SF(201,15))) THEN                    ST_DIA11.539    
         CMESSAGE='ST_DIAG1 : qU error q and U must be requested'          ST_DIA11.540    
         ICODE=1                                                           ST_DIA11.541    
         GOTO 999                                                          ST_DIA11.542    
       ELSE                                                                ST_DIA11.543    
      ISL=STINDEX(1,227,15,im_index)                                       GDR4F305.184    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.545    
            NI=-STLIST(10,ISL)                                             ST_DIA11.546    
            QU_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.547    
            DO K =1,QU_P_LEVS                                              ST_DIA11.548    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.549    
              DO I=1,Q_P_LEVS                                              ST_DIA11.550    
                IF (PRESS_LEVS(K).EQ.Q_PRESS(I)) THEN                      ST_DIA11.551    
                  QU_IND(K)=I                                              ST_DIA11.552    
                ENDIF                                                      ST_DIA11.553    
              ENDDO                                                        ST_DIA11.554    
              DO I=1,UCOMP_P_LEVS                                          ST_DIA11.555    
                IF (PRESS_LEVS(K).EQ.UCOMP_PRESS(I)) THEN                  ST_DIA11.556    
                  QU_IND(QU_P_LEVS+K)=I                                    ST_DIA11.557    
                ENDIF                                                      ST_DIA11.558    
              ENDDO                                                        ST_DIA11.559    
            ENDDO                                                          ST_DIA11.560    
         ELSE                                                              ST_DIA11.561    
           QU_P_LEVS=1                                                     ST_DIA11.562    
         END IF                                                            ST_DIA11.563    
       END IF                                                              ST_DIA11.564    
      ELSE                                                                 ST_DIA11.565    
        QU_P_LEVS=1                                                        ST_DIA11.566    
      END IF                                                               ST_DIA11.567    
                                                                           ST_DIA11.568    
CL----Check qV requested at same time as  q and V-----------------------   ST_DIA11.569    
                                                                           ST_DIA11.570    
      IF (SF(228,15)) THEN                                                 ST_DIA11.571    
       IF ((.NOT.SF(226,15)).OR.(.NOT.SF(202,15))) THEN                    ST_DIA11.572    
         CMESSAGE='ST_DIAG1 : qV error q and V must be requested'          ST_DIA11.573    
         ICODE=1                                                           ST_DIA11.574    
         GOTO 999                                                          ST_DIA11.575    
       ELSE                                                                ST_DIA11.576    
      ISL=STINDEX(1,228,15,im_index)                                       GDR4F305.185    
         IF(ISL.GT.0) THEN                                                 ST_DIA11.578    
            NI=-STLIST(10,ISL)                                             ST_DIA11.579    
            QV_P_LEVS=STASH_LEVELS(1,NI)                                   ST_DIA11.580    
            DO K =1,QV_P_LEVS                                              ST_DIA11.581    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ST_DIA11.582    
              DO I=1,Q_P_LEVS                                              ST_DIA11.583    
                IF (PRESS_LEVS(K).EQ.Q_PRESS(I)) THEN                      ST_DIA11.584    
                  QV_IND(K)=I                                              ST_DIA11.585    
                ENDIF                                                      ST_DIA11.586    
              ENDDO                                                        ST_DIA11.587    
              DO I=1,VCOMP_P_LEVS                                          ST_DIA11.588    
                IF (PRESS_LEVS(K).EQ.VCOMP_PRESS(I)) THEN                  ST_DIA11.589    
                  QV_IND(QV_P_LEVS+K)=I                                    ST_DIA11.590    
                ENDIF                                                      ST_DIA11.591    
              ENDDO                                                        ST_DIA11.592    
            ENDDO                                                          ST_DIA11.593    
         ELSE                                                              ST_DIA11.594    
           QV_P_LEVS=1                                                     ST_DIA11.595    
         END IF                                                            ST_DIA11.596    
       END IF                                                              ST_DIA11.597    
      ELSE                                                                 ST_DIA11.598    
        QV_P_LEVS=1                                                        ST_DIA11.599    
      END IF                                                               ST_DIA11.600    
                                                                           ST_DIA11.601    
!L----Check qw requested at same time as  q and w-----------------------   ARS1F404.198    
      QW_P_LEVS=1                                                          ARS1F404.199    
      IF (SF(235,15)) THEN                                                 ARS1F404.200    
       IF ((.NOT.SF(226,15)).OR.(.NOT.SF(222,15))) THEN                    ARS1F404.201    
         CMESSAGE='ST_DIAG1 : qw error q and w must be requested'          ARS1F404.202    
         ICODE=1                                                           ARS1F404.203    
         GOTO 999                                                          ARS1F404.204    
       ELSE                                                                ARS1F404.205    
         ISL=STINDEX(1,235,15,im_index)                                    ARS1F404.206    
         IF(ISL.GT.0) THEN                                                 ARS1F404.207    
            NI=-STLIST(10,ISL)                                             ARS1F404.208    
            QW_P_LEVS=STASH_LEVELS(1,NI)                                   ARS1F404.209    
            DO K =1,QW_P_LEVS                                              ARS1F404.210    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ARS1F404.211    
              DO I=1,Q_P_LEVS                                              ARS1F404.212    
                IF (PRESS_LEVS(K).EQ.Q_PRESS(I)) THEN                      ARS1F404.213    
                  QW_IND(K)=I                                              ARS1F404.214    
                ENDIF                                                      ARS1F404.215    
              ENDDO                                                        ARS1F404.216    
              DO I=1,W_P_LEVS                                              ARS1F404.217    
                IF (PRESS_LEVS(K).EQ.W_PRESS(I)) THEN                      ARS1F404.218    
                  QW_IND(QW_P_LEVS+K)=I                                    ARS1F404.219    
                ENDIF                                                      ARS1F404.220    
              ENDDO                                                        ARS1F404.221    
            ENDDO                                                          ARS1F404.222    
         END IF                                                            ARS1F404.223    
       END IF                                                              ARS1F404.224    
      END IF                                                               ARS1F404.225    
CL-------------------Extract Reqd Pressures for Test Diagnostic 233--      RR250193.62     
                                                                           RR250193.63     
      ISL=STINDEX(1,233,15,im_index)                                       GDR4F305.186    
      IF(ISL.GT.0) THEN                                                    RR250193.65     
            NI=-STLIST(10,ISL)                                             RR250193.66     
            TESTD_P_LEVS=STASH_LEVELS(1,NI)                                RR250193.67     
            DO K =1,TESTD_P_LEVS                                           RR250193.68     
              TESTD_PRESS(K)=STASH_LEVELS(K+1,NI)/1000.0                   RR250193.69     
            ENDDO                                                          RR250193.70     
      ELSE                                                                 RR250193.71     
            TESTD_P_LEVS=1                                                 RR250193.72     
      END IF                                                               RR250193.73     
                                                                           RR250193.74     
CL-------------------Extract Reqd Model levs for Test Diagnostic 234--     RR250193.75     
                                                                           RR250193.76     
      ISL=STINDEX(1,234,15,im_index)                                       GDR4F305.187    
      IF(ISL.GT.0) THEN                                                    RR250193.78     
            NI=-STLIST(10,ISL)                                             RR250193.79     
            TESTD_M_LEVS=STASH_LEVELS(1,NI)                                RR250193.80     
            DO K =1,TESTD_M_LEVS                                           RR250193.81     
              TESTD_MODEL(K)=STASH_LEVELS(K+1,NI)  ! Converts to real      RR250193.82     
            ENDDO                                                          RR250193.83     
      ELSE                                                                 RR250193.84     
            TESTD_M_LEVS=1                                                 RR250193.85     
      END IF                                                               RR250193.86     
!L-------------------Extract Reqd Pressures for Heavyside function---      ARS1F404.226    
                                                                           ST_DIA11.602    
      ISL=STINDEX(1,236,15,im_index)                                       ARS1F404.227    
      IF(ISL.GT.0) THEN                                                    ARS1F404.228    
            NI=-STLIST(10,ISL)                                             ARS1F404.229    
            HEAVY_P_LEVS=STASH_LEVELS(1,NI)                                ARS1F404.230    
            DO K =1,HEAVY_P_LEVS                                           ARS1F404.231    
              HEAVY_PRESS(K)=STASH_LEVELS(K+1,NI)/1000.0                   ARS1F404.232    
            ENDDO                                                          ARS1F404.233    
      ELSE                                                                 ARS1F404.234    
         HEAVY_P_LEVS=1                                                    ARS1F404.235    
      END IF                                                               ARS1F404.236    
                                                                           ARS1F404.237    
!L-------------------Extract Reqd Pressures for geopotential height-----   ARS1F404.238    
                                                                           ARS1F404.239    
      ISL=STINDEX(1,238,15,im_index)                                       ARS1F404.240    
      IF(ISL.GT.0) THEN                                                    ARS1F404.241    
            NI=-STLIST(10,ISL)                                             ARS1F404.242    
            Z_P_LEVS=STASH_LEVELS(1,NI)                                    ARS1F404.243    
            DO K =1,Z_P_LEVS                                               ARS1F404.244    
              Z_PRESS(K)=STASH_LEVELS(K+1,NI)/1000.0                       ARS1F404.245    
            ENDDO                                                          ARS1F404.246    
      ELSE                                                                 ARS1F404.247    
         Z_P_LEVS=1                                                        ARS1F404.248    
      END IF                                                               ARS1F404.249    
                                                                           ARS1F404.250    
!L----Check UZ requested at same time as  Z and u-----------------------   ARS1F404.251    
                                                                           ARS1F404.252    
      UZ_P_LEVS=1                                                          ARS1F404.253    
      IF (SF(239,15)) THEN                                                 ARS1F404.254    
       IF ((.NOT.SF(238,15)).OR.(.NOT.SF(201,15))) THEN                    ARS1F404.255    
         CMESSAGE='ST_DIAG1 : UZ error Z and U must be requested'          ARS1F404.256    
         ICODE=1                                                           ARS1F404.257    
         GOTO 999                                                          ARS1F404.258    
       ELSE                                                                ARS1F404.259    
         ISL=STINDEX(1,239,15,im_index)                                    ARS1F404.260    
         IF(ISL.GT.0) THEN                                                 ARS1F404.261    
            NI=-STLIST(10,ISL)                                             ARS1F404.262    
            UZ_P_LEVS=STASH_LEVELS(1,NI)                                   ARS1F404.263    
            DO K =1,UZ_P_LEVS                                              ARS1F404.264    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ARS1F404.265    
              DO I=1,Z_P_LEVS                                              ARS1F404.266    
                IF (PRESS_LEVS(K).EQ.Z_PRESS(I)) THEN                      ARS1F404.267    
                  UZ_IND(K)=I                                              ARS1F404.268    
                ENDIF                                                      ARS1F404.269    
              ENDDO                                                        ARS1F404.270    
              DO I=1,UCOMP_P_LEVS                                          ARS1F404.271    
                IF (PRESS_LEVS(K).EQ.UCOMP_PRESS(I)) THEN                  ARS1F404.272    
                  UZ_IND(UZ_P_LEVS+K)=I                                    ARS1F404.273    
                ENDIF                                                      ARS1F404.274    
              ENDDO                                                        ARS1F404.275    
            ENDDO                                                          ARS1F404.276    
         END IF                                                            ARS1F404.277    
       END IF                                                              ARS1F404.278    
      END IF                                                               ARS1F404.279    
                                                                           ARS1F404.280    
!L----Check VZ requested at same time as  Z and v-----------------------   ARS1F404.281    
      VZ_P_LEVS=1                                                          ARS1F404.282    
      IF (SF(240,15)) THEN                                                 ARS1F404.283    
       IF ((.NOT.SF(238,15)).OR.(.NOT.SF(202,15))) THEN                    ARS1F404.284    
         CMESSAGE='ST_DIAG1 : vZ error Z and v must be requested'          ARS1F404.285    
         ICODE=1                                                           ARS1F404.286    
         GOTO 999                                                          ARS1F404.287    
       ELSE                                                                ARS1F404.288    
         ISL=STINDEX(1,240,15,im_index)                                    ARS1F404.289    
         IF(ISL.GT.0) THEN                                                 ARS1F404.290    
            NI=-STLIST(10,ISL)                                             ARS1F404.291    
            VZ_P_LEVS=STASH_LEVELS(1,NI)                                   ARS1F404.292    
            DO K =1,VZ_P_LEVS                                              ARS1F404.293    
              PRESS_LEVS(K)=STASH_LEVELS(K+1,NI)/1000.0                    ARS1F404.294    
              DO I=1,Z_P_LEVS                                              ARS1F404.295    
                IF (PRESS_LEVS(K).EQ.Z_PRESS(I)) THEN                      ARS1F404.296    
                  VZ_IND(K)=I                                              ARS1F404.297    
                ENDIF                                                      ARS1F404.298    
              ENDDO                                                        ARS1F404.299    
              DO I=1,VCOMP_P_LEVS                                          ARS1F404.300    
                IF (PRESS_LEVS(K).EQ.VCOMP_PRESS(I)) THEN                  ARS1F404.301    
                  VZ_IND(VZ_P_LEVS+K)=I                                    ARS1F404.302    
                ENDIF                                                      ARS1F404.303    
              ENDDO                                                        ARS1F404.304    
            ENDDO                                                          ARS1F404.305    
         END IF                                                            ARS1F404.306    
       END IF                                                              ARS1F404.307    
      END IF                                                               ARS1F404.308    
                                                                           ARS1F404.309    
CL------------------Set up Pointers for STASHWORK -------------------      ST_DIA11.603    
                                                                           ST_DIA11.604    
      PT201=SI(201,15,im_index)                                            GDR4F305.188    
      PT202=SI(202,15,im_index)                                            GDR4F305.189    
      PT203=SI(203,15,im_index)                                            GDR4F305.190    
      PT204=SI(204,15,im_index)                                            GDR4F305.191    
      PT205=SI(205,15,im_index)                                            GDR4F305.192    
      PT206=SI(206,15,im_index)                                            GDR4F305.193    
      PT207=SI(207,15,im_index)                                            GDR4F305.194    
      PT208=SI(208,15,im_index)                                            GDR4F305.195    
      PT209=SI(209,15,im_index)                                            GDR4F305.196    
      PT210=SI(210,15,im_index)                                            GDR4F305.197    
      PT211=SI(211,15,im_index)                                            GDR4F305.198    
      PT212=SI(212,15,im_index)                                            GDR4F305.199    
      PT213=SI(213,15,im_index)                                            GDR4F305.200    
      PT214=SI(214,15,im_index)                                            GDR4F305.201    
      PT215=SI(215,15,im_index)                                            GDR4F305.202    
      PT216=SI(216,15,im_index)                                            GDR4F305.203    
      PT217=SI(217,15,im_index)                                            GDR4F305.204    
      PT218=SI(218,15,im_index)                                            GDR4F305.205    
      PT219=SI(219,15,im_index)                                            GDR4F305.206    
      PT220=SI(220,15,im_index)                                            GDR4F305.207    
      PT221=SI(221,15,im_index)                                            GDR4F305.208    
      PT222=SI(222,15,im_index)                                            GDR4F305.209    
      PT223=SI(223,15,im_index)                                            GDR4F305.210    
      PT224=SI(224,15,im_index)                                            GDR4F305.211    
      PT225=SI(225,15,im_index)                                            GDR4F305.212    
      PT226=SI(226,15,im_index)                                            GDR4F305.213    
      PT227=SI(227,15,im_index)                                            GDR4F305.214    
      PT228=SI(228,15,im_index)                                            GDR4F305.215    
      PT229=SI(229,15,im_index)                                            GDR4F305.216    
      PT230=SI(230,15,im_index)                                            GDR4F305.217    
      PT231=SI(231,15,im_index)                                            GDR4F305.218    
      PT232=SI(232,15,im_index)                                            GDR4F305.219    
      PT233=SI(233,15,im_index)                                            GDR4F305.220    
      PT234=SI(234,15,im_index)                                            GDR4F305.221    
      PT235=SI(235,15,im_index)                                            ARS1F404.310    
      PT236=SI(236,15,im_index)                                            ARS1F404.311    
      PT237=SI(237,15,im_index)                                            ARS1F404.312    
      PT238=SI(238,15,im_index)                                            ARS1F404.313    
      PT239=SI(239,15,im_index)                                            ARS1F404.314    
      PT240=SI(240,15,im_index)                                            ARS1F404.315    
      PT241=SI(241,15,im_index)                                            ARS1F404.316    
                                                                           ST_DIA11.634    
! Initialise STASHWORK array because DYN_DIAG does not initialise halos    GSM1F405.451    
!* DIR$ CACHE_BYPASS STASHWORK                                             GSM1F405.452    
      DO I=1,INT15                                                         GSM1F405.453    
        STASHWORK(I)=0.                                                    GSM1F405.454    
      ENDDO                                                                GSM1F405.455    
                                                                           GSM1F405.456    
      IF(LTIMER) THEN                                                      ST_DIA11.635    
        CALL TIMER('DYN_DIAG',3)                                           ST_DIA11.636    
      END IF                                                               ST_DIA11.637    
C Set flags to control wind rotation according to whether ELF grid         ST_DIA11.638    
      IF(ELF) THEN               ! ELF Grid                                RR250193.91     
        ROTATE_UV=.TRUE.                                                   ST_DIA11.640    
        ROTATE_MAX_UV=.TRUE.                                               ST_DIA11.641    
      ELSE                                                                 ST_DIA11.642    
        ROTATE_UV=.FALSE.                                                  ST_DIA11.643    
        ROTATE_MAX_UV=.FALSE.                                              ST_DIA11.644    
      ENDIF                                                                ST_DIA11.645    
      NMOST_LAT=A_REALHD(3)                                                ST_DIA11.646    
      WMOST_LONG=A_REALHD(4)                                               ST_DIA11.647    
      NS_SPACE=A_REALHD(2)                                                 ST_DIA11.648    
      EW_SPACE=A_REALHD(1)                                                 ST_DIA11.649    
      PHI_POLE=A_REALHD(5)                                                 ST_DIA11.650    
      LAMBDA_POLE=A_REALHD(6)                                              ST_DIA11.651    
      LAT_STEP_INVERSE = RECIP_PI_OVER_180/A_REALHD(2)                     AL011193.3      
      LONG_STEP_INVERSE = RECIP_PI_OVER_180/A_REALHD(1)                    AL011193.4      
      n_levels=p_levels-1                                                  TD141293.97     
C                                                                          ST_DIA11.654    
      CALL DYN_DIAG (                                                      ST_DIA11.655    
*CALL ARGFLDPT                                                             GSM1F405.457    
C Primary data in                                                          ST_DIA11.656    
     &     D1(JPSTAR),D1(JU(1)),D1(JV(1)),                                 ST_DIA11.657    
     &     D1(JQ(1)),D1(JTHETA(1)),D1(JOROG),D1(JP_EXNER(1)),PSTAR_OLD,    ST_DIA11.658    
                                                                           ST_DIA11.659    
C Primary data constants                                                   ST_DIA11.660    
                                                                           ST_DIA11.661    
     &     U_ROWS,P_ROWS,ROW_LENGTH,P_LEVELS,Q_LEVELS,P_FIELD,U_FIELD,     ST_DIA11.662    
     &     A_LEVDEPC(JAK),A_LEVDEPC(JBK),AKH,BKH,A_LEVDEPC(JDELTA_AK),     ST_DIA11.663    
     &     A_LEVDEPC(JDELTA_BK),NMOST_LAT,WMOST_LONG,NS_SPACE,EW_SPACE,    ST_DIA11.664    
     &     PHI_POLE,LAMBDA_POLE,SEC_U_LATITUDE,ROTATE_UV,ROTATE_MAX_UV,    ST_DIA11.665    
     &     ELF,ETA_MATRIX_INV,MATRIX_POLY_ORDER,LAT_STEP_INVERSE,          RR250193.92     
     &     LONG_STEP_INVERSE,SECS_PER_STEPim(atmos_im),SEC_P_LATITUDE,     ADR1F305.220    
     &     COS_U_LATITUDE,F3,FORECAST_HRS,                                 ADR1F305.221    
                                                                           ST_DIA11.671    
C Required Thetas                                                          ST_DIA11.672    
                                                                           MM180193.136    
     &   PV_THETA,PV_PRESS,THETA_ON_PV,REQ_THETA_PV_LEVS,                  MM180193.137    
     & n_levels,                                                           TD141293.96     
                                                                           RR250193.94     
C Required Pressure levels                                                 RR250193.95     
                                                                           RR250193.96     
     &   UCOMP_PRESS,VCOMP_PRESS,CAT_PROB_PRESS,T_PRESS,W_PRESS,Q_PRESS,   ST_DIA11.674    
     &   TESTD_PRESS,HEAVY_PRESS,Z_PRESS,                                  ARS1F404.317    
                                                                           ST_DIA11.675    
C Required Model levels                                                    RR250193.98     
                                                                           RR250193.99     
     &   TESTD_MODEL,                                                      RR250193.100    
                                                                           RR250193.101    
C pressure indices                                                         ST_DIA11.676    
                                                                           ST_DIA11.677    
     &     UV_IND,UT_IND,VT_IND,T2_IND,U2_IND,V2_IND,WT_IND,WU_IND,        ST_DIA11.678    
     &     WV_IND,QU_IND,QV_IND,QW_IND,UZ_IND,VZ_IND,                      ARS1F404.318    
                                                                           ST_DIA11.680    
C DIAGNOSTICS OUT                                                          ST_DIA11.681    
                                                                           ST_DIA11.682    
     &      STASHWORK(PT201),STASHWORK(PT202),STASHWORK(PT203),            ST_DIA11.683    
     &      STASHWORK(PT204),STASHWORK(PT205),STASHWORK(PT206),            ST_DIA11.684    
     &      STASHWORK(PT207),STASHWORK(PT208),STASHWORK(PT209),            ST_DIA11.685    
     &      STASHWORK(PT210),STASHWORK(PT211),STASHWORK(PT212),            ST_DIA11.686    
     &      STASHWORK(PT213),STASHWORK(PT214),                             ST_DIA11.687    
     &      STASHWORK(PT215),STASHWORK(PT216),                             ST_DIA11.688    
     &      STASHWORK(PT217),STASHWORK(PT218),STASHWORK(PT219),            ST_DIA11.689    
     &      STASHWORK(PT220),STASHWORK(PT221),STASHWORK(PT222),            ST_DIA11.690    
     &      STASHWORK(PT223),STASHWORK(PT224),STASHWORK(PT225),            ST_DIA11.691    
     &      STASHWORK(PT226),STASHWORK(PT227),STASHWORK(PT228),            ST_DIA11.692    
     &      STASHWORK(PT229),STASHWORK(PT230),                             MM180193.138    
     &      STASHWORK(PT231),STASHWORK(PT232),STASHWORK(PT233),            RR250193.102    
     &      STASHWORK(PT234),                                              RR250193.103    
     &      STASHWORK(PT235),STASHWORK(PT236),STASHWORK(PT237),            ARS1F404.319    
     &      STASHWORK(PT238),STASHWORK(PT239),STASHWORK(PT240),            ARS1F404.320    
     &      STASHWORK(PT241),                                              ARS1F404.321    
                                                                           ST_DIA11.693    
C Diagnostic length                                                        ST_DIA11.694    
                                                                           ST_DIA11.695    
     &     UCOMP_P_LEVS,VCOMP_P_LEVS,CAT_PROB_LEVS,PV_THETA_LEVS,          ST_DIA11.696    
     &     PV_PRESS_LEVS,THETA_ON_PV_LEVS,THETA_PV_P_LEVS,                 MM180193.139    
     &     UV_P_LEVS,T_P_LEVS,                                             ST_DIA11.697    
     &     UT_P_LEVS,VT_P_LEVS,T2_P_LEVS,U2_P_LEVS,V2_P_LEVS,w_P_LEVS,     ST_DIA11.698    
     &     WT_P_LEVS,WU_P_LEVS,WV_P_LEVS,Q_P_LEVS,QU_P_LEVS,QV_P_LEVS,     ST_DIA11.699    
     &     TESTD_P_LEVS,TESTD_M_LEVS,                                      RR250193.104    
     &     QW_P_LEVS,HEAVY_P_LEVS,Z_P_LEVS,UZ_P_LEVS,VZ_P_LEVS,            ARS1F404.322    
                                                                           ST_DIA11.700    
C Diagnostic logical indicators                                            ST_DIA11.701    
                                                                           ST_DIA11.702    
     &      SF(201,15),SF(202,15),SF(203,15),SF(204,15),SF(205,15),        ST_DIA11.703    
     &      SF(206,15),SF(207,15),SF(208,15),SF(209,15),SF(210,15),        ST_DIA11.704    
     &      SF(211,15),SF(212,15),SF(213,15),SF(214,15),                   ST_DIA11.705    
     &      SF(215,15),SF(216,15),                                         ST_DIA11.706    
     &      SF(217,15),SF(218,15),SF(219,15),SF(220,15),SF(221,15),        ST_DIA11.707    
     &      SF(222,15),SF(223,15),SF(224,15),SF(225,15),SF(226,15),        ST_DIA11.708    
     &      SF(227,15),SF(228,15),SF(229,15),SF(230,15),                   MM180193.140    
     &      SF(231,15),SF(232,15),SF(233,15),SF(234,15),                   RR250193.105    
     &      SF(235,15),SF(236,15),SF(237,15),SF(238,15),SF(239,15),        ARS1F404.323    
     &      SF(240,15),SF(241,15),                                         ARS1F404.324    
     &      LEVNO_PMSL_CALC,                                               GDR3F404.5      
                                                                           ST_DIA11.710    
C Diagnostic return code and message                                       ST_DIA11.711    
                                                                           ST_DIA11.712    
     &     ICODE,CMESSAGE,                                                 GSS1F304.204    
                                                                           GSS1F304.205    
C Logical switch for linear TS calc                                        GSS1F304.206    
                                                                           GSS1F304.207    
     &     LLINTS)                                                         GSS1F304.208    
                                                                           ST_DIA11.714    
      IF(LTIMER) THEN                                                      ST_DIA11.715    
        CALL TIMER('DYN_DIAG',4)                                           ST_DIA11.716    
      END IF                                                               ST_DIA11.717    
                                                                           ST_DIA11.718    
                                                                           ST_DIA11.719    
      IF(LTIMER) THEN                                                      ST_DIA11.720    
        CALL TIMER('STASH   ',3)                                           ST_DIA11.721    
      END IF                                                               ST_DIA11.722    
                                                                           ST_DIA11.723    
      IF(ICODE.NE.0) THEN                                                  ST_DIA11.724    
        RETURN                                                             ST_DIA11.725    
      ENDIF                                                                ST_DIA11.726    
                                                                           ST_DIA11.727    
      CALL STASH(a_sm,a_im,15,STASHWORK,                                   GKR0F305.994    
*CALL ARGSIZE                                                              @DYALLOC.182    
*CALL ARGD1                                                                @DYALLOC.183    
*CALL ARGDUMA                                                              @DYALLOC.184    
*CALL ARGDUMO                                                              @DYALLOC.185    
*CALL ARGDUMW                                                              GKR1F401.268    
*CALL ARGSTS                                                               @DYALLOC.186    
*CALL ARGPPX                                                               GKR0F305.995    
     &           ICODE,CMESSAGE)                                           @DYALLOC.190    
                                                                           ST_DIA11.729    
      IF(LTIMER) THEN                                                      ST_DIA11.730    
        CALL TIMER('STASH   ',4)                                           ST_DIA11.731    
      END IF                                                               ST_DIA11.732    
                                                                           ST_DIA11.733    
  999 CONTINUE                                                             ST_DIA11.734    
      RETURN                                                               ST_DIA11.735    
      END                                                                  ST_DIA11.736    
*ENDIF                                                                     ST_DIA11.737