SUBROUTINE CAPIT(STR) C$$$ SUBPROGRAM DOCUMENTATION BLOCK C C SUBPROGRAM: CAPIT C PRGMMR: WOOLLEN ORG: NP20 DATE: 2002-05-14 C C ABSTRACT: THIS SUBROUTINE CAPITALIZES A STRING OF CHARACTERS. THIS C ENABLES THE USE OF MIXED CASE IN THE UNIT SECTION OF THE ASCII C BUFR TABLES. AN EXAMPLE: A PROGRAM WHICH GENERATES AN ASCII BUFR C TABLE FROM THE "MASTER TABLE B" MIGHT END UP COPYING SOME UNITS C FIELDS IN MIXED OR LOWER CASE. IF THE UNITS ARE 'CODE TABLE' OR C 'FLAG TABLE' OR CERTAIN OTHER UNIT DESIGNATIONS, THE TABLE WILL BE C PARSED INCORRECTLY, AND THE DATA READ OR INCORRECTLY AS A RESULT. C THIS MAKES SURE ALL UNIT DESIGNATIONS ARE SEEN BY THE PARSER IN C UPPER CASE TO AVOID THESE TYPES OF PROBLEMS. C C PROGRAM HISTORY LOG: C 2002-05-14 J. WOOLLEN -- ORIGINAL AUTHOR C 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE C INTERDEPENDENCIES C 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED C DOCUMENTATION (INCLUDING HISTORY) C 2012-03-02 J. ATOR -- CHANGED NAME OF UPS ARRAY TO UPCS TO AVOID C NAMESPACE CONTENTION WITH NEW FUNCTION UPS C C USAGE: CALL CAPIT (STR) C INPUT ARGUMENT LIST: C STR - CHARACTER*(*): STRING POSSIBLY CONTAINING MIXED UPPER- C AND LOWER-CASE CHARACTERS C C OUTPUT ARGUMENT LIST: C STR - CHARACTER*(*): SAME STRING AS INPUT BUT NOW CONTAINING C ALL UPPER-CASE CHARACTERS C C REMARKS: C THIS ROUTINE CALLS: None C THIS ROUTINE IS CALLED BY: CMPMSG ELEMDX STBFDX STDMSG C STRCPT C Normally not called by any application C programs but it could be. C C ATTRIBUTES: C LANGUAGE: FORTRAN 77 C MACHINE: PORTABLE TO ALL PLATFORMS C C$$$ CHARACTER*(*) STR CHARACTER*26 UPCS,LWCS DATA UPCS/'ABCDEFGHIJKLMNOPQRSTUVWXYZ'/ DATA LWCS/'abcdefghijklmnopqrstuvwxyz'/ DO 20 I=1,LEN(STR) DO 10 J=1,26 IF(STR(I:I).EQ.LWCS(J:J)) THEN STR(I:I) = UPCS(J:J) GOTO 20 ENDIF 10 CONTINUE 20 CONTINUE RETURN END