NCEPLIBS-w3emc  2.9.2
w3nogds.f File Reference

Go to the source code of this file.

Functions/Subroutines

subroutine w3nogds (ITYPE, FLD, IFLD, IBITL, IPFLAG, ID, PDS, IGFLAG, IGRID, IGDS, ICOMP, IBFLAG, IBMAP, IBLEN, IBDSFL, NPTS, KBUF, ITOT, JERR)
 SUBPROGRAM: W3NOGDS MAKE A COMPLETE GRIB MESSAGE PRGMMR: FARLEY ORG: NMC421 DATE:94-11-22. More...
 

Function/Subroutine Documentation

◆ w3nogds()

subroutine w3nogds (   ITYPE,
real, dimension(*)  FLD,
integer, dimension(*)  IFLD,
  IBITL,
  IPFLAG,
integer, dimension(*)  ID,
character * 1, dimension(*)  PDS,
  IGFLAG,
  IGRID,
integer, dimension(*)  IGDS,
  ICOMP,
  IBFLAG,
integer, dimension(*)  IBMAP,
  IBLEN,
integer, dimension(*)  IBDSFL,
  NPTS,
character * 1, dimension(*)  KBUF,
  ITOT,
  JERR 
)

SUBPROGRAM: W3NOGDS MAKE A COMPLETE GRIB MESSAGE PRGMMR: FARLEY ORG: NMC421 DATE:94-11-22.

ABSTRACT: MAKES A COMPLETE GRIB MESSAGE FROM A USER SUPPLIED ARRAY OF FLOATING POINT OR INTEGER DATA. THE USER HAS THE OPTION OF SUPPLYING THE PDS OR AN INTEGER ARRAY THAT WILL BE USED TO CREATE A PDS (WITH W3FI68). THE USER MUST ALSO SUPPLY OTHER NECESSARY INFO; SEE USAGE SECTION BELOW.

PROGRAM HISTORY LOG: 97-02-24 M. FARLEY MODIFIED W3FI72 - this routine allows for NO GDS (errors in W3FI71 for GRIB grids 21-26, 61-64 forced the need for this routine). 98-06-24 Gilbert Added number of gridpoint values for grids 61-64, needed when igflag=2 ( no gds ). 98-12-21 Gilbert Replaced Function ICHAR with mova2i.

USAGE: CALL W3NOGDS(ITYPE,FLD,IFLD,IBITL, & IPFLAG,ID,PDS, & IGFLAG,IGRID,IGDS,ICOMP, & IBFLAG,IBMAP,IBLEN,IBDSFL, & IBDSFL, & NPTS,KBUF,ITOT,JERR)

INPUT ARGUMENT LIST: ITYPE - 0 = FLOATING POINT DATA SUPPLIED IN ARRAY 'FLD' 1 = INTEGER DATA SUPPLIED IN ARRAY 'IFLD' FLD - REAL ARRAY OF DATA (AT PROPER GRIDPOINTS) TO BE CONVERTED TO GRIB FORMAT IF ITYPE=0. SEE REMARKS #1 & 2. IFLD - INTEGER ARRAY OF DATA (AT PROPER GRIDPOINTS) TO BE CONVERTED TO GRIB FORMAT IF ITYPE=1. SEE REMARKS #1 & 2. IBITL - 0 = COMPUTER COMPUTES LENGTH FOR PACKING DATA FROM POWER OF 2 (NUMBER OF BITS) BEST FIT OF DATA USING 'VARIABLE' BIT PACKER W3FI58. 8, 12, ETC. COMPUTER RESCALES DATA TO FIT INTO THAT 'FIXED' NUMBER OF BITS USING W3FI59. SEE REMARKS #3.

IPFLAG - 0 = MAKE PDS FROM USER SUPPLIED ARRAY (ID) 1 = USER SUPPLYING PDS NOTE: IF PDS IS GREATER THAN 30, USE IPLFAG=1. THE USER COULD CALL W3FI68 BEFORE HE CALLS W3NOGDS. THIS WOULD MAKE THE FIRST 30 BYTES OF THE PDS, USER THEN WOULD MAKE BYTES AFTER 30. ID - INTEGER ARRAY OF VALUES THAT W3FI68 WILL USE TO MAKE AN EDITION 1 PDS IF IPFLAG=0. (SEE THE DOCBLOCK FOR W3FI68 FOR LAYOUT OF ARRAY) PDS - CHARACTER ARRAY OF VALUES (VALID PDS SUPPLIED BY USER) IF IPFLAG=1. LENGTH MAY EXCEED 28 BYTES (CONTENTS OF BYTES BEYOND 28 ARE PASSED THROUGH UNCHANGED).

IGFLAG - 0 = MAKE GDS BASED ON 'IGRID' VALUE. 1 = MAKE GDS FROM USER SUPPLIED INFO IN 'IGDS' AND 'IGRID' VALUE. SEE REMARKS #4. 2 = NO GDS WILL BE INCLUDED...for international grids *** THIS IS AN EXCEPTION TO REMARKS #4!!!! IGRID - # = GRID IDENTIFICATION (TABLE B) 255 = IF USER DEFINED GRID; IGDS MUST BE SUPPLIED AND IGFLAG MUST =1. IGDS - INTEGER ARRAY CONTAINING USER GDS INFO (SAME FORMAT AS SUPPLIED BY W3FI71 - SEE DOCKBLOCK FOR LAYOUT) IF IGFLAG=1. ICOMP - RESOLUTION AND COMPONENT FLAG FOR BIT 5 OF GDS(17) 0 = EARTH ORIENTED WINDS 1 = GRID ORIENTED WINDS

IBFLAG - 0 = MAKE BIT MAP FROM USER SUPPLIED DATA

= BIT MAP PREDEFINED BY CENTER

SEE REMARKS #5. IBMAP - INTEGER ARRAY CONTAINING BIT MAP IBLEN - LENGTH OF BIT MAP WILL BE USED TO VERIFY LENGTH OF FIELD (ERROR IF IT DOESN'T MATCH).

IBDSFL - INTEGER ARRAY CONTAINING TABLE 11 FLAG INFO BDS OCTET 4: (1) 0 = GRID POINT DATA 1 = SPHERICAL HARMONIC COEFFICIENTS (2) 0 = SIMPLE PACKING 1 = SECOND ORDER PACKING (3) ... SAME VALUE AS 'ITYPE' 0 = ORIGINAL DATA WERE FLOATING POINT VALUES 1 = ORIGINAL DATA WERE INTEGER VALUES (4) 0 = NO ADDITIONAL FLAGS AT OCTET 14 1 = OCTET 14 CONTAINS FLAG BITS 5-12 (5) 0 = RESERVED - ALWAYS SET TO 0 BYTE 6 OPTION 1 NOT AVAILABLE (AS OF 5-16-93) (6) 0 = SINGLE DATUM AT EACH GRID POINT 1 = MATRIX OF VALUES AT EACH GRID POINT BYTE 7 OPTION 0 WITH SECOND ORDER PACKING N/A (AS OF 5-16-93) (7) 0 = NO SECONDARY BIT MAPS 1 = SECONDARY BIT MAPS PRESENT (8) 0 = SECOND ORDER VALUES HAVE CONSTANT WIDTH 1 = SECOND ORDER VALUES HAVE DIFFERENT WIDTHS

OUTPUT ARGUMENT LIST: NPTS - NUMBER OF GRIDPOINTS IN ARRAY FLD OR IFLD KBUF - ENTIRE GRIB MESSAGE ('GRIB' TO '7777') EQUIVALENCE TO INTEGER ARRAY TO MAKE SURE IT IS ON WORD BOUNARY. ITOT - TOTAL LENGTH OF GRIB MESSAGE IN BYTES JERR - = 0, COMPLETED MAKING GRIB FIELD WITHOUT ERROR 1, IPFLAG NOT 0 OR 1 2, IGFLAG NOT 0 OR 1 OR 2 3, ERROR CONVERTING IEEE F.P. NUMBER TO IBM370 F.P. 4, W3FI71 ERROR/IGRID NOT DEFINED 5, W3FK74 ERROR/GRID REPRESENTATION TYPE NOT VALID 6, GRID TOO LARGE FOR PACKER DIMENSION ARRAYS SEE AUTOMATION DIVISION FOR REVISION! 7, LENGTH OF BIT MAP NOT EQUAL TO SIZE OF FLD/IFLD 8, W3FI73 ERROR, ALL VALUES IN IBMAP ARE ZERO

OUTPUT FILES: FT06F001 - STANDARD FORTRAN OUTPUT PRINT FILE

SUBPROGRAMS CALLED: LIBRARY: W3LIB - W3FI58, W3FI59, W3FI68, W3FI71, W3FI73, W3FI74 W3FI75, W3FI76, W3FI01

REMARKS: 1) IF BIT MAP TO BE INCLUDED IN MESSAGE, NULL DATA SHOULD BE INCLUDED IN FLD OR IFLD. THIS ROUTINE WILL TAKE CARE OF 'DISCARDING' ANY NULL DATA BASED ON THE BIT MAP. 2) UNITS MUST BE THOSE IN GRIB DOCUMENTATION: NMC O.N. 388 OR WMO PUBLICATION 306. 3) IN EITHER CASE, INPUT NUMBERS WILL BE MULTIPLIED BY '10 TO THE NTH' POWER FOUND IN ID(25) OR PDS(27-28), THE D-SCALING FACTOR, PRIOR TO BINARY PACKING. 4) ALL NMC PRODUCED GRIB FIELDS WILL HAVE A GRID DEFINITION SECTION INCLUDED IN THE GRIB MESSAGE. ID(6) WILL BE SET TO '1'.

  • GDS WILL BE BUILT BASED ON GRID NUMBER (IGRID), UNLESS IGFLAG=1 (USER SUPPLYING IGDS). USER MUST STILL SUPPLY IGRID EVEN IF IGDS PROVIDED. 5) IF BIT MAP USED THEN ID(7) OR PDS(8) MUST INDICATE THE PRESENCE OF A BIT MAP. 6) ARRAY KBUF SHOULD BE EQUIVALENCED TO AN INTEGER VALUE OR ARRAY TO MAKE SURE IT IS ON A WORD BOUNDARY. 7) SUBPROGRAM CAN BE CALLED FROM A MULTIPROCESSING ENVIRONMENT.

ATTRIBUTES: LANGUAGE: CRAY CFT77 FORTRAN MACHINE: CRAY C916/256, Y-MP8/864, Y-MP EL92/256, J916/2048

Definition at line 156 of file w3nogds.f.