NCEPLIBS-bufr  11.5.0
 All Data Structures Files Functions Variables Pages
trybump.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine trybump (LUNIT, LUN, USR, I1, I2, IO, IRET)
 THIS SUBROUTINE CHECKS THE FIRST NODE ASSOCIATED WITH A CHARACTER STRING (PARSED INTO ARRAYS IN COMMON BLOCK /USRSTR/) IN ORDER TO DETERMINE IF IT REPRESENTS A DELAYED REPLICATION SEQUENCE. More...
 

Detailed Description

Author
WOOLLEN
Date
1994-01-06

Definition in file trybump.f.

Function/Subroutine Documentation

subroutine trybump (   LUNIT,
  LUN,
real*8, dimension(i1,i2)  USR,
  I1,
  I2,
  IO,
  IRET 
)

THIS SUBROUTINE CHECKS THE FIRST NODE ASSOCIATED WITH A CHARACTER STRING (PARSED INTO ARRAYS IN COMMON BLOCK /USRSTR/) IN ORDER TO DETERMINE IF IT REPRESENTS A DELAYED REPLICATION SEQUENCE.

IF SO, THEN THE DELAYED REPLICATION SEQUENCE IS INITIALIZED AND EXPANDED (I.E. "BUMPED") TO THE VALUE OF INPUT ARGUMENT I2. A CALL IS THEN MADE TO SUBROUTINE UFBRW IN ORDER TO WRITE USER DATA INTO THE NEWLY EXPANDED REPLICATION SEQUENCE.

TRYBUMP IS USUALLY CALLED FROM UFBINT AFTER UFBINT RECEIVES A NON-ZERO RETURN CODE FROM UFBRW. THE CAUSE OF A BAD RETURN FROM UFBRW IS USUALLY A DELAYED REPLICATION SEQUENCE WHICH ISN'T EXPANDED ENOUGH TO HOLD THE ARRAY OF DATA THE USER IS TRYING TO WRITE. SO TRYBUMP IS ONE LAST CHANCE TO RESOLVE THAT SITUATION.

PROGRAM HISTORY LOG: 1994-01-06 J. WOOLLEN – ORIGINAL AUTHOR 1998-07-08 J. WOOLLEN – IMPROVED MACHINE PORTABILITY 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 – MAXJL (MAXIMUM NUMBER OF JUMP/LINK ENTRIES) INCREASED FROM 15000 TO 16000 (WAS IN VERIFICATION VERSION); UNIFIED/PORTABLE FOR WRF; ADDED DOCUMENTATION (INCLUDING HISTORY) (INCOMPLETE); OUTPUTS MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE TERMINATES ABNORMALLY 2009-03-31 J. WOOLLEN – ADDED DOCUMENTATION 2014-12-10 J. ATOR – USE MODULES INSTEAD OF COMMON BLOCKS

USAGE: CALL TRYBUMP (LUNIT, LUN, USR, I1, I2, IO, IRET) INPUT ARGUMENT LIST: LUNIT - INTEGER: FORTRAN LOGICAL UNIT NUMBER FOR BUFR FILE (SEE REMARKS) LUN - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS (ASSOCIATED WITH FILE CONNECTED TO LOGICAL UNIT LUNIT) USR - REAL*8: (I1,I2) STARTING ADDRESS OF DATA VALUES TO BE WRITTEN TO DATA SUBSET I1 - INTEGER: LENGTH OF FIRST DIMENSION OF USR I2 - INTEGER: NUMBER OF "LEVELS" OF DATA VALUES TO BE WRITTEN TO DATA SUBSET IO - INTEGER: STATUS INDICATOR FOR BUFR FILE ASSOCIATED WITH LUNIT (SEE REMARKS): 0 = INPUT FILE (POSSIBLE FUTURE USE) 1 = OUTPUT FILE

OUTPUT ARGUMENT LIST: IRET - INTEGER: RETURN CODE FROM CALL TO SUBROUTINE UFBRW

REMARKS: ARGUMENT LUNIT IS NOT REFERENCED IN THIS SUBROUTINE. IT WAS INCLUDED ONLY FOR POTENTIAL FUTURE EXPANSION OF THE SUBROUTINE.

ARGUMENT IO IS ALWAYS PASSED IN WITH A VALUE OF 1 AT THE PRESENT TIME. IN THE FUTURE THE SUBROUTINE MAY BE EXPANDED TO ALLOW IT TO OPERATE ON INPUT FILES.

THIS ROUTINE CALLS: BORT INVWIN LSTJPB UFBRW USRTPL THIS ROUTINE IS CALLED BY: UFBINT UFBOVR Normally not called by any application programs.

Definition at line 70 of file trybump.f.

References invwin(), lstjpb(), ufbrw(), and usrtpl().

Referenced by ufbint(), and ufbovr().