*IF DEF,CONTROL,AND,DEF,ATMOS STMAXLN1.2 C ******************************COPYRIGHT****************************** GTS2F400.9667 C (c) CROWN COPYRIGHT 1995, METEOROLOGICAL OFFICE, All Rights Reserved. GTS2F400.9668 C GTS2F400.9669 C Use, duplication or disclosure of this code is subject to the GTS2F400.9670 C restrictions as set forth in the contract. GTS2F400.9671 C GTS2F400.9672 C Meteorological Office GTS2F400.9673 C London Road GTS2F400.9674 C BRACKNELL GTS2F400.9675 C Berkshire UK GTS2F400.9676 C RG12 2SZ GTS2F400.9677 C GTS2F400.9678 C If no contract has been raised with this copy of the code, the use, GTS2F400.9679 C duplication or disclosure of it is strictly prohibited. Permission GTS2F400.9680 C to do so must first be obtained in writing from the Head of Numerical GTS2F400.9681 C Modelling at the above address. GTS2F400.9682 C ******************************COPYRIGHT****************************** GTS2F400.9683 C GTS2F400.9684 CLL Subroutine ST_MAXLEN ---------------------------------------------- STMAXLN1.3 CLL STMAXLN1.4 CLL Purpose : Returns max value of STASH_MAXLEN for consecutive code STMAXLN1.5 CLL sections for use in dynamically allocating STASHWORK. STMAXLN1.6 CLL STMAXLN1.7 CLL Level 2 control routine STMAXLN1.8 CLL Version for CRAY YMP STMAXLN1.9 CLL STMAXLN1.10 CLL Model Modification history: STMAXLN1.11 CLL version Date STMAXLN1.12 CLL 3.2 18/06/93 New control interfacing routine required because STMAXLN1.13 CLL of dynamic allocation changes. R.T.H.Barnes. STMAXLN1.14 CLL STMAXLN1.15 CLL Programming standard : unified model documentation paper No 3 STMAXLN1.16 CLL STMAXLN1.17 CLL System components covered : STMAXLN1.18 CLL STMAXLN1.19 CLL System task : Stash from dynamics routines STMAXLN1.20 CLL STMAXLN1.21 CLL Documentation : Unified model documentation paper no. STMAXLN1.22 CLL STMAXLN1.23 CLLEND ----------------------------------------------------------------- STMAXLN1.24 C*L Arguments STMAXLN1.25SUBROUTINE ST_MAXLEN(STASH_LEN,SECTION_1,SECTION_2, 4GDR4F305.390 & internal_model, GDR4F305.391 *CALL ARGSIZE
STMAXLN1.27 *CALL ARGSTS
STMAXLN1.28 & ICODE,CMESSAGE) STMAXLN1.29 STMAXLN1.30 IMPLICIT NONE STMAXLN1.31 STMAXLN1.32 *CALL CMAXSIZE
STMAXLN1.33 *CALL CSUBMODL
GSS1F305.940 *CALL TYPSIZE
STMAXLN1.34 *CALL TYPSTS
STMAXLN1.35 STMAXLN1.36 INTEGER STMAXLN1.37 & STASH_LEN, ! max STASH length for consecutive sections STMAXLN1.38 & SECTION_1, ! First section STMAXLN1.39 & SECTION_2, ! Last section STMAXLN1.40 & internal_model, ! Internal Model Identifier GDR4F305.392 & ICODE ! Return code : 0 Normal Exit STMAXLN1.42 C ! : >0 Error STMAXLN1.43 STMAXLN1.44 CHARACTER*(*) STMAXLN1.45 & CMESSAGE ! Error message if return code >0 STMAXLN1.46 STMAXLN1.47 C External subroutines called : NONE STMAXLN1.48 STMAXLN1.49 C Local Variables : GDR4F305.393 GDR4F305.394 INTEGER SECTION ! Loop variable GDR4F305.395 INTEGER im_ident ! Internal Model Identifier GDR4F305.396 INTEGER im_index ! Internal Model Index for STASH GDR4F305.397 STMAXLN1.51 ICODE=0 STMAXLN1.52 CMESSAGE=' ' STMAXLN1.53 STMAXLN1.54 im_ident = internal_model GDR4F305.398 im_index = internal_model_index(im_ident) GDR4F305.399 GDR4F305.400 STASH_LEN = 1 STMAXLN1.55 DO SECTION = SECTION_1,SECTION_2 STMAXLN1.56 STASH_LEN = MAX(STASH_LEN,STASH_MAXLEN(SECTION,im_index)) GDR4F305.401 END DO STMAXLN1.58 STMAXLN1.59 RETURN STMAXLN1.60 END STMAXLN1.61 STMAXLN1.62 *ENDIF STMAXLN1.63