NCEPLIBS-w3emc 2.12.0
Loading...
Searching...
No Matches
w3fi85.f File Reference

Generate bufr message. More...

Go to the source code of this file.

Functions/Subroutines

subroutine fi8501 (kary, istep, kclass, kseg, idata, rdata, kdata, nsub, kdesc, nrdesc, ierrtn)
 Perform replication of descriptors.
 
subroutine fi8502 (, kbufr, kclass, kseg, kdesc, nrdesc, i, istep, kary, kdata, isect3, krfvsw, newrfv, ldesc, ierrtn, indexb)
 Process an operator descriptor.
 
subroutine fi8503 (i, kdesc, nrdesc, isect3, iunitd, kseq, knum, klist, ierrtn)
 Expand sequence descriptor.
 
subroutine fi8505 (mif, mdesc, nr, ierrtn)
 Convert descriptors fxy to decimal.
 
subroutine fi8506 (istep, isect3, kary, jdesc, newnr, kdesc, nrdesc, ldesc, aname, aunits, kscale, krfval, kwidth, krfvsw, newrfv, kseq, knum, klist, ibfsiz, kdata, kbufr, ierrtn, indexb)
 Process data in non-compressed format.
 
subroutine fi8508 (istep, iunitb, idata, kdesc, nrdesc, atext, ksub, kary, kdata, ldesc, aname, aunits, kscale, krfval, krfvsw, isect3, kwidth, kassoc, iunitd, kseq, knum, klist, ierrtn, indexb)
 Combine integer/text data.
 
subroutine fi8509 (istep, iunitb, rdata, kdesc, nrdesc, atext, ksub, kary, kdata, ldesc, aname, aunits, kscale, krfval, krfvsw, isect3, kwidth, kassoc, iunitd, kseq, knum, klist, ierrtn, indexb)
 Convert real/text input to integer.
 
subroutine fi8511 (isect3, kary, jif, jdesc, newnr, kif, kdesc, nrdesc, ierrtn)
 Rebuild kdesc from jdesc.
 
subroutine fi8512 (iunitb, isect3, kdesc, nrdesc, kary, ierrtn, ldesc, aname, aunits, kscale, krfval, kwidth, krfvsw, iunitd, kseq, knum, klist, indexb)
 Read in table B.
 
subroutine fi8513 (iunitd, isect3, kseq, knum, klist, ierrtn)
 Read in table D.
 
subroutine w3fi85 (istep, iunitb, iunitd, ibfsiz, isect1, isect3, jif, jdesc, newnr, idata, rdata, atext, kassoc, kif, kdesc, nrdesc, isec2d, isec2b, kdata, kary, kbufr, ierrtn)
 Using information available in supplied arrays, generate a bufr message (wmo code fm94).
 

Detailed Description

Generate bufr message.

Author
Bill Cavanaugh
Date
1993-09-29

Definition in file w3fi85.f.

Function/Subroutine Documentation

◆ fi8501()

subroutine fi8501 ( integer, dimension(*)  kary,
integer  istep,
integer  kclass,
integer  kseg,
integer, dimension(*)  idata,
real, dimension(*)  rdata,
integer, dimension(500,*)  kdata,
  nsub,
integer, dimension(3,*)  kdesc,
integer  nrdesc,
integer  ierrtn 
)

Perform replication of descriptors.

Author
Bill Cavanaugh
Date
1993-12-03 Have encountered a replication descriptor. It may include delayed replication or not. That decision should have been made prior to calling this routine.

Program history log:

  • Bill Cavanaugh 1993-12-03
  • J. Hoppa 1994-03-25 Added line to initialize nxtptr to correct an error in the standard replication.
  • J. Hoppa 1994-03-28 Corrected an error in the standard replication that was adding extra zeros to the bufr message after the replicated data.
  • J. Hoppa 1994-03-31 Added the subset number to the parameter list. corrected the equation for the number of replications with delayed replication. (istart and k don't exist)
  • J. Hoppa 1994-04-19 Switched the variables next and nxtprt
  • J. Hoppa 1994-04-20 Added the kdata parameter counter to the parameter list. In the assignment of nreps when have delayed replication, changed index in kdata from n to k.
  • J. Hoppa 1994-04-29 Removed n and k from the input list changed n to kary(11) and k to kary(2)
Parameters
[in]ISTEP
[in]KCLASS
[in]KSEG
[in]IDATA
[in]RDATA
[in]KDATA
[in]NSUBCurrent subset
[in,out]KDESC(modified [out]) List of descriptors
[in,out]NRDESCNumber of (new [out]) descriptors in kdesc
[out]IERRTNError return value
KARY
Author
Bill Cavanaugh
Date
1993-12-03

Definition at line 979 of file w3fi85.f.

◆ fi8502()

subroutine fi8502 (   kbufr,
integer  kclass,
integer  kseg,
integer, dimension(3,*)  kdesc,
integer  nrdesc,
integer  i,
  istep,
integer, dimension(*)  kary,
integer, dimension(500,*)  kdata,
integer, dimension(*)  isect3,
integer, dimension(*)  krfvsw,
integer, dimension(*)  newrfv,
integer, dimension(*)  ldesc,
integer  ierrtn,
  indexb 
)

Process an operator descriptor.

Author
Bill Cavanaugh
Date
193-12-03 Have encountered an operator descriptor.

Program history log:

  • Bill Cavanaugh 1993-12-03
  • J. Hoppa 1994-04-15 Added kbufr to input parameter list. added block of data to correctly use sbyte when writing a 205yyy descriptor to the bufr message. The previous way didn't work because kdata was getting incremeted by the ksub value, not the param value.
  • J. Hoppa 1994-04-29 Changed k to kary(2) removed a line that became obsolete with above change
  • J. Hoppa 1994-05-18 Added a kary(2) increment
Parameters
[in]KCLASS
[in]KSEG
[in,out]KDESC
[in,out]NRDESC
[in]I
[in]ISTEP
[in,out]KARY
[out]IERRTNError return value
KBUFR
KDATA
ISECT3
KRFVSW
NEWRFV
LDESC
INDEXB
Author
Bill Cavanaugh
Date
193-12-03

Definition at line 1114 of file w3fi85.f.

◆ fi8503()

subroutine fi8503 ( integer  i,
integer, dimension(3,*)  kdesc,
integer  nrdesc,
integer, dimension(*)  isect3,
integer  iunitd,
integer, dimension(*)  kseq,
integer, dimension(*)  knum,
integer, dimension(300,*)  klist,
integer  ierrtn 
)

Expand sequence descriptor.

Author
Bill Cavanaugh
Date
1993-12-03 Have encountered a sequence descriptor. must perform proper replacment of descriptors in line.

Program history log:

  • Bill Cavanaugh 1993-12-03
Parameters
[in,out]ICurrent position in descriptor list
[in,out]KDESCList (modified [out]) of descriptors
[in,out]NRDESCNumber (new [out]) of descriptors in kdesc
[in]IUNITD
[in]KSEQ
[in]KNUM
[in]KLIST
[out]IERRTNError return value
ISECT3
Author
Bill Cavanaugh
Date
1993-12-03

Definition at line 1305 of file w3fi85.f.

◆ fi8505()

subroutine fi8505 (   mif,
integer, dimension(3,*)  mdesc,
integer  nr,
  ierrtn 
)

Convert descriptors fxy to decimal.

Author
Bill Cavanaugh
Date
1993-12-03 Construct decimal descriptor values from f x and y segments

Program history log:

  • Bill Cavanaugh 1993-12-03
Parameters
[in]MIFinput flag
[in,out]MDESClist of descriptors in f x y (decimal [out]) form
[in]NRnumber of descriptors in mdesc
[out]IERRTNerror return value
Author
Bill Cavanaugh
Date
1993-12-03

Definition at line 1392 of file w3fi85.f.

◆ fi8506()

subroutine fi8506 ( integer  istep,
integer, dimension(*)  isect3,
integer, dimension(*)  kary,
integer, dimension(3,*)  jdesc,
integer  newnr,
integer, dimension(3,*)  kdesc,
integer  nrdesc,
integer, dimension(*)  ldesc,
character*40, dimension(*)  aname,
character*25, dimension(*)  aunits,
integer, dimension(*)  kscale,
integer, dimension(*)  krfval,
integer, dimension(*)  kwidth,
integer, dimension(*)  krfvsw,
integer, dimension(*)  newrfv,
integer, dimension(*)  kseq,
integer, dimension(*)  knum,
integer, dimension(300,*)  klist,
  ibfsiz,
integer, dimension(500,*)  kdata,
integer, dimension(*)  kbufr,
integer  ierrtn,
integer, dimension(*)  indexb 
)

Process data in non-compressed format.

Author
Bill Cavanaugh
Date
1993-12-03 Process data into non-compressed format for inclusion into section 4 of the bufr message

Program history log:

  • Bill Cavanaugh 1993-12-03
  • J. Hoppa 1994-03-24 Changed the inner loop from a do loop to a goto loop so nrdesc isn't a set value. corrected a value in the call to fi8503().
  • J. Hoppa 1994-03-31 Corrected an error in sending the subset number rather than the descriptor number to subroutine fi8501(). Added the subset number to the fi8501() parameter list.
  • J. Hoppa 1994-04015 Added line to keep the parameter pointer kary(2) up to date. this variable is used in subroutine fi8502(). added kbufr to the parameter list in the call to subroutine fi8502(). corrected an infinite loop when have an operator descriptor that was caused by a correction made 94-03-24
  • J. Hoppa 1994-04-20 Added k to call to subroutine w3fi01
  • J. Hoppa 1994-04-29 Changed n to kary(11) and k to kary(2) removed k and n from the call to fi8501()
  • J. Hoppa 1994-05-03 Added an increment to kary(11) to prevent and infinite loop when have a missing value
  • J. Hoppa 1994-05-18 Changed so increments kary(2) after each call to sbyte and deleted kary(2) = kary(11) + kary(18)
Parameters
[in]ISTEP
[in]ISECT3
[in]KARY
[in]JDESC
[in]NEWNR
[in]KDESC
[in]NRDESC
[in]LDESC
[in]ANAME
[in]AUNITS
[in]KSCALE
[in]KRFVAL
[in]KWIDTH
[in]KRFVSW
[in]NEWRFV
[in]KSEQ
[in]KNUM
[in]KLIST
[out]KDATA
[out]KBUFR
[out]IERRTN
IBFSIZ
INDEXB
Author
Bill Cavanaugh
Date
1993-12-03

Definition at line 1469 of file w3fi85.f.

◆ fi8508()

subroutine fi8508 ( integer  istep,
integer  iunitb,
integer, dimension(*)  idata,
integer, dimension(3,*)  kdesc,
integer  nrdesc,
character*1, dimension(*)  atext,
integer  ksub,
integer, dimension(*)  kary,
integer, dimension(500,*)  kdata,
integer, dimension(*)  ldesc,
character*40, dimension(*)  aname,
character*25, dimension(*)  aunits,
integer, dimension(*)  kscale,
integer, dimension(*)  krfval,
integer, dimension(*)  krfvsw,
integer, dimension(*)  isect3,
integer, dimension(*)  kwidth,
integer, dimension(*)  kassoc,
integer  iunitd,
integer, dimension(*)  kseq,
integer, dimension(*)  knum,
integer, dimension(300,*)  klist,
  ierrtn,
integer, dimension(*)  indexb 
)

Combine integer/text data.

Author
Bill Cavanaugh
Date
1993-12-03 Construct integer subset from real and text data

Program history log:

  • Bill Cavanaugh 1993-12-03
  • J. Hoppa 1994-03-31 added ksub to fi8501() parameter list.
  • J. Hoppa 1994-04-18 added dummy variable idum to fi8502() parameter list.
  • J. Hoppa 1994-04-20 added dummy variable ll to fi8501() parameter list.
  • J. Hoppa 1994-04-29 changed i to kary(11) added a kary(2) assignment so have something to pass to subroutines ** test this ** removed i and ll from call to fi8501()
  • J. Hoppa 1994-05-13 added code to calculate kwords when kfunc=2
  • J. Hoppa 1994-05-18 deleted kary(2) assignment
Parameters
[in]ISTEP
[in]IUNITBUnit number of device containing table b
[in]IDATAInteger working array
[in]KDESCExpanded descriptor set
[in]NRDESCNumber of descriptors in kdesc
[in]ATEXTText data for ccitt ia5 and text operator fields
[in]KSUBSubset number
[in]KARYWorking array
[in]ISECT3
[out]KDATAArray containing integer subsets
[out]LDESCList of table b descriptors (decimal)
[out]ANAMEList of descriptor names
[out]AUNITSUnits for each descriptor
[out]KSCALEBase 10 scale factor for each descriptor
[out]KRFVALReference value for each descriptor
[out]KRFVSW
[out]KWIDTHStandard bit width to contain each value for specific descriptor
[out]KASSOC
[out]IERRTNError return flag
IUNITD
KSEQ
KNUM
KLIST
INDEXB
Author
Bill Cavanaugh
Date
1993-12-03

Definition at line 1749 of file w3fi85.f.

◆ fi8509()

subroutine fi8509 ( integer  istep,
integer  iunitb,
real, dimension(*)  rdata,
integer, dimension(3,*)  kdesc,
integer  nrdesc,
character*1, dimension(*)  atext,
integer  ksub,
integer, dimension(*)  kary,
integer, dimension(500,*)  kdata,
integer, dimension(*)  ldesc,
character*40, dimension(*)  aname,
character*25, dimension(*)  aunits,
integer, dimension(*)  kscale,
integer, dimension(*)  krfval,
integer, dimension(*)  krfvsw,
integer, dimension(*)  isect3,
integer, dimension(*)  kwidth,
integer, dimension(*)  kassoc,
integer  iunitd,
integer, dimension(*)  kseq,
integer, dimension(*)  knum,
integer, dimension(300,*)  klist,
integer  ierrtn,
integer, dimension(*)  indexb 
)

Convert real/text input to integer.

Author
Bill Cavanaugh
Date
1993-12-03 Construct integer subset from real and text data.

Program history log:

  • Bill Cavanaugh 1993-12-03
  • J. Hoppa 1994-03-31 Added ksub to the fi8501 parameter list.
  • J. Hoppa 1994-04-18 Added dummy variable idum to fi8502 parameter list.
  • J. Hoppa 1994-04-20 Added dummy variable ll to fi8501 parameter list.
  • J. Hoppa 1994-04-29 Changed i to kary(11) added a kary(2) assignment so have something to pass to subroutines ** test this ** removed i and ll from call to fi8501
  • J. Hoppa 1994-05-18 Deleted kary(2) assignment
Parameters
[in]IUNITBunit number of device containing table b
[in]RDATAreal working array
[in]KDESCexpanded descriptor set
[in]NRDESCnumber of descriptors in kdesc
[in]ATEXTtext data for ccitt ia5 and text operator fields
[in]KSUBsubset number
[in]KARYworking array
[in]ISECT3
[in]IUNITD
[out]KDATAArray containing integer subsets
[out]LDESCList of table b descriptors (decimal)
[out]ANAMEList of descriptor names
[out]AUNITSUnits for each descriptor
[out]KSCALEBase 10 scale factor for each descriptor
[out]KRFVALReference value for each descriptor
[out]KRFVSW
[out]KASSOC
[out]KWIDTHStandard bit width to contain each value for specific descriptor
[out]IERRTNError return flag
[out]KNUM
[out]KLIST
ISTEP
KSEQ
INDEXB
Author
Bill Cavanaugh
Date
1993-12-03

Definition at line 1973 of file w3fi85.f.

◆ fi8511()

subroutine fi8511 ( integer, dimension(*)  isect3,
integer, dimension(*)  kary,
integer  jif,
integer, dimension(3,*)  jdesc,
integer  newnr,
integer  kif,
integer, dimension(3,*)  kdesc,
integer  nrdesc,
integer  ierrtn 
)

Rebuild kdesc from jdesc.

Author
Bill Cavanaugh
Date
1993-12-03 Construct working descriptor list from list of descriptors in section 3.

Program history log:

  • Bill Cavanaugh 1993-12-03
Parameters
[in]ISECT3
[in]KARYUtility - array see main routine
[in]JIFDescriptor input form flag
[in]JDESCList of descriptors for section 3
[in]NEWNRNumber of descriptors in jdesc
[out]KIFDescriptor form
[out]KDESCWorking list of descriptors
[out]NRDESCNumber of descriptors in kdesc
[out]IERRTNError return
  • IERRTN = 0 Normal return
  • IERRTN = 5 Found delayed replication during expansion
Author
Bill Cavanaugh
Date
1993-12-03

Definition at line 2203 of file w3fi85.f.

◆ fi8512()

subroutine fi8512 ( integer  iunitb,
integer, dimension(*)  isect3,
integer, dimension(3,*)  kdesc,
integer  nrdesc,
integer, dimension(*)  kary,
integer  ierrtn,
integer, dimension(*)  ldesc,
character*40, dimension(*)  aname,
character*25, dimension(*)  aunits,
integer, dimension(*)  kscale,
integer, dimension(*)  krfval,
integer, dimension(*)  kwidth,
integer, dimension(*)  krfvsw,
integer  iunitd,
integer, dimension(*)  kseq,
integer, dimension(*)  knum,
integer, dimension(300,*)  klist,
integer, dimension(*)  indexb 
)

Read in table B.

Author
Bill Cavanaugh
Date
1993-12-03 Read in tailored set of table B descriptors.

Program history log:

  • Bill Cavanaugh 1993-12-03
  • J. Hoppa 1994-04-18 An error has been corrected to prevent later searching table b if there are only operator descriptors in the descriptor list.
  • J. Hoppa 1994-05-17 Changed the loop for expanding sequence descriptors from a do loop to a goto loop
Parameters
[in]IUNITBUnit where table b entries reside
[in]KDESCWorking descriptor list
[in]NRDESCNumber of descriptors in kdesc
[in]IUNITDUnit where table d entries reside
[out]KARY
[out]IERRTN
[out]LDESCDescriptors in table b (decimal values)
[out]ANAMEArray containing names of descriptors
[out]AUNITSArray containing units of descriptors
[out]KSCALEScale values for each descriptor
[out]KRFVALReference values for each descriptor
[out]KWIDTHBit width of each descriptor
[out]KRFVSWNew reference value switch
[out]KSEQSequence descriptor
[out]KNUMNumber of descriptors in sequence
[out]KLISTSequence of descriptors
ISECT3
INDEXB
Author
Bill Cavanaugh
Date
1993-12-03

Definition at line 2268 of file w3fi85.f.

◆ fi8513()

subroutine fi8513 ( integer  iunitd,
integer, dimension(*)  isect3,
integer, dimension(*)  kseq,
integer, dimension(*)  knum,
integer, dimension(300,*)  klist,
  ierrtn 
)

Read in table D.

Author
Bill Cavanaugh
Date
1993-12-03 Read in table D

Program history log:

  • Bill Cavanaugh 1993-12-03
Parameters
[in]IUNITDUnit number of input device
[out]KSEQKey for sequence descriptors
[out]KNUMNumber if descriptors in list
[out]KLISTDescriptors list
[out]IERRTNError return flag
ISECT3
Author
Bill Cavanaugh
Date
1993-12-03

Definition at line 2422 of file w3fi85.f.

◆ w3fi85()

subroutine w3fi85 (   istep,
  iunitb,
  iunitd,
  ibfsiz,
integer, dimension(*)  isect1,
integer, dimension(*)  isect3,
  jif,
integer, dimension(3,*)  jdesc,
integer  newnr,
integer, dimension(*)  idata,
real, dimension(*)  rdata,
character*1, dimension(*)  atext,
integer, dimension(*)  kassoc,
  kif,
integer, dimension(3,*)  kdesc,
  nrdesc,
integer, dimension(255)  isec2d,
integer  isec2b,
integer, dimension(500,*)  kdata,
integer, dimension(*)  kary,
integer, dimension(*)  kbufr,
  ierrtn 
)

Using information available in supplied arrays, generate a bufr message (wmo code fm94).

there may be a section 2 included in the bufr message if the user follows proper procedure. messages are constructed in accordance with bufr edition 2. entries for section 1 must be passed to this routine in the isect1 array. entries for section 3 must be passed to this routine in isect3.

In the event that the user requests a reduction of reports in a bufr message if a particular message becomes oversized, the possibility exists of the last block of data producing an oversized message. the user must verify that isect3(6) does in fact equal zero to assure that all of the data has been included as output.

Program history log:

  • Bill Cavanaugh 1993-09-29
  • J. Hoppa 1994-03-22 Corrected an error when writing the descriptors into the bufr message
  • J. Hoppa 1994-03-31 Added the subset number to the parameter list of subroutine fi8501()
  • J. Hoppa 1994-04-15 Added kbufr to the parameter list of subroutine fi8502()
  • J. Hoppa 1994-04-20 Added the kdata parameter counter to the parameter list of subroutine fi8501()
  • J. Hoppa 1995-04-29 Changed nq and n to kary(2) changed jk to kary(11) added an assignment to kary(2) so have something to pass to subroutines deleted jk and ll from call to fi8501()
Parameters
[in]ISTEPKey for selection of processing step
  • 1 = Process integer/text array into kdata.
  • 2 = Process real/text array into kdata.
  • 3 = Construct bufr message.
[in]IUNITBUnit number of device containing table b
[in]IUNITDUnit number of device containing table d
[in]IBFSIZSize in bytes of bufr message array (kbufr) should be a multiple of word size.
[in]ISECT1Contains information to enter into section 1 (1) Edition number (2) Bufr master table number 0 = meteorological others not yet defined (3) Originating center - subcenter number (4) Originating center number (5) Update sequence number (6) Optional section flag should be set to zero unless user write additional code to enter local information into section 3 (7) Bufr message type (8) Bufr message sub_type (9) Master table version number (10) Local table version number (11) Year of century - representative of data (12) Month - representative of data (13) Day - representative of data (14) Hour - representative of data (15) Minute - representative of data (16)-(20) Unused
[in]ISECT3Values to be inserted into section 3, and to control report reduction for oversized messages
  • (1) Number of subsets Defines the number of subsets being passed to the encoder routine for inclusion into a bufr message. If the user has specified the use of the subset/report reduction activation switch, then a part of those subsets may be used for the current message and the remainder retained for a subsequent message.
  • (2) Observed flag
    • 0 = observed data
    • 1 = other data
  • (3) Compressed flag
    • 0 = noncompressed
    • 1 = compressed
  • (4) Subset/report reduction activation switch used to control the number of reports entered into a bufr message when maximum message size is exceeded
    • 0 = option not active
    • 1 = option is active. unused subsets will be shifted to low order positions of entry array.
    • 2 = option is active. unused subsets will remain in entry positions.
Note
If this flag is set to any other values, program will be terminated with an error condition.
  • (5) Number of reports to decrement by, if oversized message (minimum value = one). If zero is entered, it will be replaced by one.
  • (6) Number of unused reports returned to user
  • (7) Number of reports included in message
  • (8) Number of table b entries available to decoder
  • (9) Number of table d entries available to decoder
  • (10) Text input flag
    • 0 = ASCII input
    • 1 = EBCIDIC input
Parameters
[in]JIFJDESC input format flag
  • 0 = F X Y
  • 1 = Decimal format
[in]JDESCList of descriptors to go into section 3 Each descriptor = F * 16384 + X * 256 + Y They may or may not be an exact match of the working descriptor list in kdesc. This set of descriptors may contain sequence descriptors to provide additional compression within the bufr message. There may be as few as one sequence descriptor, or as many descriptors as there are in kdesc.
[in]NEWNRNR of descriptors in JDESC
[in]IDATAInteger array dimensioned by the number of descriptors to be used
[in]RDATAReal array dimensioned by the number of descriptors to be used
[in]ATEXTArray containing all text data associated with a specific report. All data identified as text data must be in ASCII.
[in]KASSOCInteger array dimensioned by the number of descriptors to be used, containing the associated field values for any entry in the descriptor list.
[in]KIFKDESC input format flag
  • 0 = F X Y
  • 1 = DECIMAL FORMAT
[in]KDESCList of descriptors to go into section 3 fully expanded set of working descriptors. there should be an element descriptor for every data entry, but there should be no sequence descriptors.
[in]NRDESCNR of descriptors in kdesc
[in]ISEC2DData or text to be entered into section 2
[in]ISEC2BNumber of bytes of data in isec2d
[out]KDATASource data array . a 2-dimension integer array where kdata(subset,param) subset = subset number param = parameter number.
[out]KARYWorking array for message under construction
  • (1) unused
  • (2) parameter pointer
  • (3) message bit pointer
  • (4) delayed replication flag
    • 0 = no delayed replication
    • 1 = contains delayed replication
  • (5) bit pointer for start of section 4
  • (6) unused
  • (7) nr of bits for parameter/data packing
  • (8) total bits for ascii data
  • (9) scale change value
  • (10) indicator (used in w3fi85)
    • 1 = numeric data
    • 2 = text data
  • (11) pointer to current pos in kdesc
  • (12) unused
  • (13) unused
  • (14) unused
  • (15) data type
  • (16) unused
  • (17) unused
  • (18) words added for text or associated fields
  • (19) location for total byte count
  • (20) size of section 0
  • (21) size of section 1
  • (22) size of section 2
  • (23) size of section 3
  • (24) size of section 4
  • (25) size of section 5
  • (26) nr bits added by table c operator
  • (27) bit width of associated field
  • (28) jdesc input form flag
    • 0 = Descriptor in f x y form
      • F in JDESC(1,I)
      • X in JDESC(2,I)
      • Y in JDESC(3,I)
    • 1 = DEscriptor in decimal form in jdesc(1,i)
  • (29) kdesc input form flag
    • 0 = Descriptor in F X Y form
      • F in KDESC(1,I)
      • X in KDESC(2,I)
      • Y in KDESC(3,I)
    • 1 = Descriptor in decimal form in kdesc(1,i)
  • (30) bufr message total byte count
[out]KBUFRArray to contain completed bufr message
[out]IERRTNError return flag

IERRTN:

  • = 0 Normal return, bufr message resides in kbufr
    • if isect3(4)= 0, all reports have been processed into a bufr message
    • if isect3(4)= 1, a bufr message has been generated with all or part of the data passed to this routine. isect3(6) contains the number of reports that were not used but are being held for the next message.
  • = 1 bufr message construction was halted because contents exceeded maximum size (only when isect3(4) = 0)
  • = 2 bufr message construction was halted because of encounter with a descriptor not found in table b.
  • = 3 routine was called with no subsets
  • = 4 error occured while reading table b
  • = 5 an attempt was made to expand jdesc into kdesc, but a descriptor indicating delayed replication was encountered
  • = 6 error occured while reading table d
  • = 7 data value could not be contained in specified bit width
  • = 8 delayed replication not permitted in compressed data format
  • = 9 an operator descriptor 2 04 yyy opening an associated field (yyy not eq zero) was not followed by the defining descriptor 0 31 021 (7957 decimal).
  • = 10 delayed replication descriptor was not followed by descriptor for delayed replication factor.
    • 0 31 001
    • 0 31 002
    • 0 31 011
    • 0 31 012
  • = 11 encountered a reference value that forced a data element to become negative
  • = 12 no matching table d entry for sequence descriptor.
  • = 13 encountered a non-acceptable data entry flag. isect3(6) should be 0 or 1.
  • = 14 converting descriptors fxy->decimal, number to convert = 0
  • = 15 no descriptors specified for section 3
  • = 16 incomplete table b, number of descriptors in table b does not match number of descriptors needed to construct bufr message
  • = 20 incorrect entry of replication or sequence descriptor in list of reference value changes
  • = 21 incorrect operator descriptor in list of reference value changes
  • = 22 attempting to enter new reference value into table b, but descriptor does not exist in current modified table b
Author
Bill Cavanaugh
Date
1993-09-29

Definition at line 210 of file w3fi85.f.