NCEPLIBS-bufr 11.7.1
string.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine string (STR, LUN, I1, IO)
 THIS SUBROUTINE CHECKS TO SEE IF A USER-SPECIFIED CHARACTER STRING IS IN THE STRING CACHE (ARRAYS IN COMMON BLOCKS /STCACH/ AND /STORDS/). More...
 

Detailed Description

Author
WOOLLEN
Date
1994-01-06

Definition in file string.f.

Function/Subroutine Documentation

◆ string()

subroutine string ( character*(*)  STR,
  LUN,
  I1,
  IO 
)

THIS SUBROUTINE CHECKS TO SEE IF A USER-SPECIFIED CHARACTER STRING IS IN THE STRING CACHE (ARRAYS IN COMMON BLOCKS /STCACH/ AND /STORDS/).

IF IT IS NOT IN THE CACHE, IT MUST CALL THE BUFR ARCHIVE LIBRARY PARSING SUBROUTINE PARUSR TO PERFORM THE TASK OF SEPARATING AND CHECKING THE INDIVIDUAL "PIECES" (I.E., MNEMONICS) SO THAT IT CAN THEN BE ADDED TO THE CACHE. IF IT IS ALREADY IN THE CACHE, THEN THIS EXTRA WORK DOES NOT NEED TO BE PERFORMED. THE MNEMONIC STRING CACHE IS A PERFORMANCE ENHANCING DEVICE WHICH SAVES TIME WHEN THE SAME MNEMONIC STRINGS ARE ENCOUNTERED IN A USER PROGRAM, OVER AND OVER AGAIN (THE TYPICAL SCENARIO).

PROGRAM HISTORY LOG: 1994-01-06 J. WOOLLEN – ORIGINAL AUTHOR 1998-04-02 J. WOOLLEN – MODIFIED TO ENLARGE THE CACHE FROM 50 ELEMENTS TO 1000, MAXIMUM; OPTIMIZATION OF THE CACHE SEARCH ALGORITHM IN SUPPORT OF A BIGGER CACHE 1998-07-08 J. WOOLLEN – REPLACED CALL TO CRAY LIBRARY ROUTINE "ABORT" WITH CALL TO NEW INTERNAL BUFRLIB ROUTINE "BORT"; CORRECTED SOME MINOR ERRORS 1999-11-18 J. WOOLLEN – THE NUMBER OF BUFR FILES WHICH CAN BE OPENED AT ONE TIME INCREASED FROM 10 TO 32 (NECESSARY IN ORDER TO PROCESS MULTIPLE BUFR FILES UNDER THE MPI) 2003-11-04 S. BENDER – ADDED REMARKS/BUFRLIB ROUTINE INTERDEPENDENCIES 2003-11-04 D. KEYSER – UNIFIED/PORTABLE FOR WRF; ADDED DOCUMENTATION (INCLUDING HISTORY); OUTPUTS MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE TERMINATES ABNORMALLY; CHANGED CALL FROM BORT TO BORT2 2014-12-10 J. ATOR – USE MODULES INSTEAD OF COMMON BLOCKS

USAGE: CALL STRING (STR, LUN, I1, IO) INPUT ARGUMENT LIST: STR - CHARACTER*(*): STRING OF BLANK-SEPARATED MNEMONICS LUN - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS

OUTPUT ARGUMENT LIST: I1 - INTEGER: A NUMBER GREATER THAN OR EQUAL TO THE NUMBER OF BLANK-SEPARATED MNEMONICS IN STR IO - INTEGER: STATUS INDICATOR FOR BUFR FILE ASSOCIATED WITH LUN: 0 = input file 1 = output file

REMARKS: THIS ROUTINE CALLS: BORT2 PARUSR THIS ROUTINE IS CALLED BY: UFBEVN UFBGET UFBIN3 UFBINT UFBOVR UFBREP UFBSTP UFBTAB UFBTAM Normally not called by any application programs.

Definition at line 58 of file string.f.

References bort2(), modv_mxs::mxs, and parusr().

Referenced by ufbevn(), ufbget(), ufbin3(), ufbint(), ufbovr(), ufbrep(), ufbstp(), ufbtab(), and ufbtam().