[NCEP.List.Jifmemo] jif_memo_060127

John Ward wd22jw at lnx177.ncep.noaa.gov
Fri Jan 27 09:20:17 EST 2006


                                          January 27, 2006 




MEMORANDUM FOR:         Distribution E 

FROM:                   John H. Ward 
                        Chief, Production Management Branch 

Subject:                Changes to the NWS Production Suite 
  


1.  The moratorium on changes at the NWS Telecommunications Operations Center (TOC) is expected to end in mid to late February.  As soon as the moratorium is lifted NCEP will begin the transition from GRIB1 to GRIB2, by placing duplicate GRIB2 files on the TOC FTP server.  Both sets of data will remain on the TOC FTP server for a minimum of 180 days. 

2.  The level-II radar LDM feed will be turned on to the CCS/White at 12 UTC on 7 February 2006.  

3.  Maintenance of subscriptions to the JIF memo mailing list can be performed via a new list server at: 

  https://lstsrv.ncep.noaa.gov/mailman/listinfo/ncep.list.jifmemo 

    * * * * * * * * * * * * * * * * * * * * * * * * * * *

    The following unadvertised item was implemented this past week:

    65.  OMBLIB - Many IBM Jobs.  (Vuong, NP11).  The OMB Library contains utility routines.  Routines MAKWMO.f, TRANST.f, and QUEDES.f are obsolete and they are being deleted from the library.   Done at 12Z on 24 January. 

    * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    The following items will be implemented at 12Z on Tuesday, 31 January:       

    66.  BUFRLIB - Many IBM Jobs.  (Ator, NP12).  This library is used by many operational programs in order to encode or decode BUFR messages.  The following updates and enhancements are being made:
(1) Documentation is being improved and/or clarified within many existing routines throughout BUFRLIB.
(2) Global parameter MAXMEM (the maximum number of bytes that can be used to store BUFR messages internally) is being increased from 16Mb to 50Mb, and global parameter MAXTBA (the maximum number of entries in the internal BUFR Table A) is being increased from 50 to 60.  In addition, all global parameters are being moved into a new global INCLUDE file "bufrlib.PRM", rather than continuing to hardcode the same parameter values in every individual source file where they were needed, which facilitates making future modifications to any of these parameter values.
(3) An additional CCS compilation of BUFRLIB (libbufr_s_64.a) is now being maintained via the makefile.  This new version is identical to the existing libbufr_4_64.a compilation, except that several parameter values within "bufrlib.PRM" are set much larger in order to allow extremely large BUFR messages (i.e. up to 2.5Mb) to be processed.
(4) The capability to compress output BUFR messages is being incorporated into subroutines WRITSB and WRITSA, instead of calling separate subroutines WRITCP and WRITCA, respectively.  The use of compression can now be easily toggled on or off (with "off" as the default if left unspecified) via new subroutine CMPMSG.  Therefore, subroutine WRITCA is being marked as obsolete (for future removal from BUFRLIB) since the same functionality can now be obtained by calling the new subroutine CMPMSG, followed by a call to WRITSA.  In a similar manner, WRITCP is being modified to call subroutines CMPMSG and WRITSB, although it is being retained as a distinct subroutine within BUFRLIB (rather than also being marked as obsolete) out of consideration for the large number of existing application programs which use it.
(5) A new function IUPBS01 is being added to the BUFRLIB which works like existing function IUPBS1, except that it uses a descriptive mnemonic rather than a hardcoded byte number in order to specify the value to be unpacked from Section 0 or Section 1 of a BUFR message.  This allows the same function call to work on messages encoded using either BUFR edition 3 or BUFR edition 4 (rather than having to pass in different byte numbers depending on the edition number), and it also allows values encoded across multiple bytes (e.g. section lengths, 4-digit years, etc.) to be easily unpacked as well.  Therefore, the existing function IUPBS1 is being marked as obsolete (for future removal from BUFRLIB).  Many other BUFRLIB subroutines (e.g. UPDS3, DATEBF, DUMPBF, STNDRD, CKTABA, NMBYT, MSGWRT, RDBFDX, etc.) are being modified to use the new function IUPBS01.  In addition, a new function IUPVS01 is being added which calls IUPBS01 in an in-line fashion, and existing function IUPVS1 whi!
 ch called IUPBS1 in an in-line fashion is being marked as obsolete.
(6) A new subroutine PKVS01 is being added which works like existing subroutine PKVS1, except that it uses a descriptive mnemonic rather than a hardcoded byte number in order to specify the value to be stored into Section 0 or Section 1 of all future output BUFR messages.  This allows the same subroutine call to work on messages encoded using either BUFR edition 3 or BUFR edition 4 (rather than having to pass in different byte numbers depending on the edition number, and it also allows values encoded across multiple bytes (e.g. 4-digit years, originating centers and subcenters, etc.) to be easily overwritten as well.  Therefore, the existing subroutine PKVS1 is being marked as obsolete (for future removal from BUFRLIB).  In a similar manner, a new subroutine PKBS1 is being added to replace existing subroutine OVRBS1, which is also marked as obsolete.
(7) A new subroutine CNVED4 is being added which, given a BUFR message encoded using BUFR edition 3, creates and outputs an equivalent message encoded using BUFR edition 4.  This subroutine can be called by an application program, or it can alternatively be activated in an in-line fashion via a call to new subroutine PKVS01 using the descriptive mnemonic "BEN" (i.e. BUFR edition number) with a corresponding value of "4".
(8) Subroutines NEMTAB, NUMTAB, TABENT and TABSUB are being modified to support the Table C operators 2-07-YYY and 2-08-YYY, which are new to BUFR with the advent of edition 4.
(9) Subroutines COPYST, WRITST and STANDARD, which had been marked as obsolete within a previous version of BUFRLIB, are being deleted.
(10) The default BUFR master table version number is being changed from "4" to "12" within subroutines CMSGINI, DXMINI and MSGINI.
(11) A logic error is being corrected in subroutine STNDRD to ensure that byte 4 of Section 4 is always properly zeroed out.
(12) A logic error is being corrected in subroutine PARUTG which was preventing 1-bit delayed replication factors from being directly read via a call to subroutine UFBINT.
(13) A logic error is being corrected in subroutine WRCMPS which was causing a character compression array to be improperly initialized.  In addition, a local parameter is being increased to allow up to 4000 subsets to be written into a single compressed BUFR message.
(14) Subroutine UFBMEM is being modified to not abort when there are either too many messages read in or too many bytes read in (i.e., .gt. array limits passed in), but rather to process the limiting number of messages and/or bytes and print a diagnostic.
(15) Subroutine CLOSMG is being modified to override logic that had always written out messages 1 and 2 even when they contained zero subsets (it assumed these contained the dump center and processing time in Section 1).  This change insures that if the unit number argument is passed in as a negative number the first time this routine is called by an application program, ALL empty messages will be skipped (i.e., assumes that messages 1 and 2 do not contain dump center and processing time). This remains set for all subsequent calls to CLOSMG for a particular file; regardless of the sign of the unit number (CLOSMG is called by other BUFRLIB routines which always pass in a positive unit number).
(16) A new function IGETDATE is being added which unpacks and returns the Section 1 date-time from an input BUFR message, in format of either YYYYMMDDHH or YYMMDDHH depending on the value requested via the most recent call to subroutine DATELEN.  The same logic had been repeated within numerous existing subroutines throughout BUFRLIB and is being consolidated into this single subroutine that can itself be called from wherever it is needed.
(17) A new subroutine GETLENS is being added which unpacks and returns the individual section lengths from an input BUFR message.  The same logic had been repeated within numerous existing subroutines throughout BUFRLIB and is being consolidated into this single subroutine that can itself be called from wherever it is needed.
(18) A new subroutine RDMSGW is being added which reads the next padded BUFR message from a given BUFR file.  The same logic had been repeated within numerous existing subroutines throughout BUFRLIB and is being consolidated into this single subroutine that can itself be called from wherever it is needed.
(19) A new function PKFTBV is being added which computes and returns the value equivalent to the setting of a specified bit within a flag table of a specified width.  In addition, a new subroutine UPFTBV is being added which functions as the logical inverse, i.e. given a mnemonic and corresponding flag table value, it computes and returns the equivalent bit settings.
(20) A new subroutine UFBPOS, which allows a user to directly point at and read a specified subset from within a specified message in an input BUFR file, is being added to BUFRLIB.  Previously, this logic existed as an in-line subroutine within a separate application program.
(21) A new subroutine GETABDB, which returns internal BUFR table information in a pre-defined ASCII format, is being added to BUFRLIB.  Previously, this logic existed as an in-line subroutine within a separate application program.
(22) Subroutine READMG is being modified to handle BUFR messages which are not padded out to an 8-byte boundary and for which it had therefore previously been necessary to instead call the separate subroutine READIBM.  Logic is being added to allow the option of having READMG behave like the separate subroutine READFT, so that it will not abort when a read error is encountered but rather will treat it the same as an end-of-file condition.  This option is activated by passing in the negative of the usual logical unit number.  READMG can now properly read from any FORTRAN-blocked file of BUFR messages, and therefore the existing subroutines READIBM, IREADIBM, READFT and IREADFT are being marked as obsolete (for future removal from BUFRLIB).
(23) A set of generic C-language functions for reading/writing BUFR messages from/to generic BUFR files (which may or may not contain FORTRAN-blocking and/or message padding) are being added to BUFRLIB.  These functions (CCBFL, COBFL, CRBMG, CWBMG and RBYTES) are primarily intended for use by separate application programs (such as cwordsh), but are themselves being directly incorporated into BUFRLIB in order to prevent such application programs from having to directly link to certain COMMON blocks and parameter sizes internal to BUFRLIB.
(24) Function MOVA2I is being marked as obsolete (for future removal from BUFRLIB)  It is present in the "C" language version of the W3 Libraries and is no longer called by any BUFR Archive Library routines.  A warning message will be printed instructing users to migrate to MOVA2I in the W3 Libraries.
(25) Subroutine UFBTAB is being modified to work for compressed BUFR messages.  An option to return only the subset count (when the input unit number is less than zero) is also being added.
(26) Subroutine COPYSB is being modified to write out a compressed subset/message if the input subset/message is compressed (before this subroutine could only write out an uncompressed subset/message regardless of the compression status of the input subset/message).

    67.  CWORDSH - Many IBM Jobs.  (Ator, NP12).  This program converts binary byte-stream BUFR files back and forth from a FORTRAN-blocked format.  The program is being rewritten using the new BUFRLIB C-language I/O logic in order to handle any input BUFR files, including files which contain extraneous characters such as WMO bulletin headers and/or which previously required the use of the separate application program GRABBUFR.  In addition, all direct links to BUFRLIB /COMMON/ blocks are being removed, making the overall program more portable and less dependent on the inner workings of BUFRLIB.     

    68.  TOCBUFR - IBM Job NAM_NAMSNDP.  (Ator, NP12).  This program reads the NAM sounding BUFR messages from within a file, standardizes them, and writes them out to a new file containing TOC flag field separator blocks and WMO headers for dissemination to AWIPS.  The program is being modified to in-line a copy of subroutine STANDARD from the current operational BUFRLIB.  This is necessary because subroutine STANDARD will be removed from BUFRLIB but the logic is still needed within the TOCBUFR program for the current version (build 5.0) of AWIPS.     

    69.  SCRIPT - IBM Job HYSPT_datachk.  (Manikin, NP22).  Script setup_hysplit.sh sets up a hysplit dispersion run.  The script is being modified to (1) correct the "number of particles" variable that somehow became set to an unintended high value, causing longer than expected run times and (2) correct a problem in which the previous iteration could not be used, requiring a complete restart for an ongoing event.     

    70.  FIX FILE - IBM Job HYSPT_datachk.  (Manikin, NP22).  Fixed file hysplit_rsmc.plants is the database list of predefined locations for use in the hysplit dispersion model.  The fixed field is being modified to correct six entries to add underscores to their listings in place of blank spaces.     

    71.  GFS_BUFR - IBM Job JGFS_POSTSND.  (Pan, NP23).  This program generates the BUFR formatted station forecast products from the GFS forecasts.  The programs station elevation algorithm is being modified so that when a station elevation is not available, the model's elevation at the station location will be used.     

    72.  N-AWIPS - Many IBM Jobs.  (Cdb, NP14).  N-AWIPS creates model GEMPAK files and graphics.  It is being upgraded to the latest version of N-AWIPS which is 5.9.1.     

    73.  SCRIPT - IBM Job JDRF_GEMPAK_GIF.  (Sager, NP12).  New HTML script index_polar.shtml is the home page for polar ice drift forecast graphics available on the NCEP Model Analysis and Forecast website.     

    74.  SCRIPT - IBM Job JDRF_GEMPAK_GIF.  (Sager, NP12).  New HTML script index_polar_body.shtml is the message portion of the home page for polar ice drift forecast graphics available on the NCEP Model Analysis and Forecast website.    

    75.  SCRIPT - IBM Jobs JDRF_GEMPAK_GIF, JGFS_GEMPAK_GIF, JNAM_GEMPAK_GIF, JWAVE_GEMPAK_GIF.  (Sager, NP12).  HTML script index_carib_body.shtml is the model selection page for Caribbean region graphics available on the NCEP Model Analysis and Forecast graphical website.  The script is being changed to include a link to the new polar ice drift forecast home page.     

    76.  SCRIPT - IBM Jobs JDRF_GEMPAK_GIF, JGFS_GEMPAK_GIF, JNAM_GEMPAK_GIF, JWAVE_GEMPAK_GIF.  (Sager, NP12).  HTML script index_epac_body.shtml is the model selection page for the eastern Pacific graphics available on the NCEP Model Analysis and Forecast graphical website.  The script is being changed to include a link to the new polar drift ice forecast selection page.     

    77.  SCRIPT - IBM Jobs JDRF_GEMPAK_GIF, JGFS_GEMPAK_GIF, JNAM_GEMPAK_GIF, JWAVE_GEMPAK_GIF.  (Sager, NP12).  HTML script index_npac_body.shtml is the static model selection page for the northern Pacific graphics of the NCEP Model Analysis and Forecast graphical website.  The script is being changed to include a link to the new polar drift ice forecast selection page.     

    78.  SCRIPT - IBM Jobs JDRF_GEMPAK_GIF, JGFS_GEMPAK_GIF, JNAM_GEMPAK_GIF, JWAVE_GEMPAK_GIF.  (Sager, NP12).  HTML script index_namer_body.shtml is the static model selection page for the North American graphics available on the NCEP Model Analysis and Forecast graphical website.  The script is being changed to include a link to the new polar drift ice forecast selection page.     

    79.  SCRIPT - IBM Jobs JDRF_GEMPAK_GIF, JGFS_GEMPAK_GIF, JNAM_GEMPAK_GIF, JWAVE_GEMPAK_GIF.  (Sager, NP12).  Perl script drfice_model_page generates the polar drift ice forecast graphic selection page for the NCEP Model Analysis and Forecast graphical website.  The script is being changed to correct the spacing of columns.     

    80.  SMS - IBM Job SMS.  (Cooke, NP11).  The servers file is used by SMS clients to view other SMS machines.  The servers file is being modified on all SMS client machines (smsgb1/2, smsfmt1/2, lnxwwb1/2, lnx177) to no longer list ncepbk.

    * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    The following data flow items will be implemented at 12Z on Tuesday, 31 January:    

    81.  DATAFLOW - System BB_LDM.SH.  (Cooke, NP11).  New script bb-ldm.sh will be used by Big Brother to monitor the status of each LDM feed on blue_iodprod.  The bb-ldm is the configuration file used by bb-ldm.sh to identify the feed types.   

    82.  DATAFLOW - System CCS.  (Cooke, NP11).  New script convert_grib1to2.sh converts GRIB1 model output to GRIB2 and then realerts with a new subtype.     

    83.  DATAFLOW - System CCS.  (Freeman, NP11).  The ftpget.pl script retrieves a file from a remote host.  The ftppush.pl pushes files to remote hosts.  The dbn_util.pl is a set of utilities for DBNet.  The ftpget.pl and ftppush.pl scripts are being updated to write error status of failed transfers to the xfer_errors directory.  The dbn_util.pl is being updated to include the utilities required to write the error status.    

    84.  DATAFLOW - System ncosrv.  (Freeman, NP11).  The parsing.tbl defines actions to be taken in response to an alert.  The dbn_admin.tbl defines DBNet daemons.  The scp.tbl defines files to be sent to remote hosts.  Old dagna push queues and definitions are being replaced with new server jlsrv.  The parsing.tbl is being updated to remove references to push files to dagna server and replace with jlsrv.  The dbn_admin.tbl is being updated to remove push daemons for dagna and replace them with jlsrv.  The scp.tbl is being updated to remove references to files to be pushed to dagna, and replace with jlsrv.

    * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

    The following data flow item will be implemented at 12Z on Wednesday, 1 February: 
 
    85.  DATAFLOW - Systems ncosrv, tgsv6.  (Freeman, NP11).  The parsing.tbl defines actions to be taken in response to an alert.  The parsing.tbl is being updated on tgp06 to send status messages to ncosrv.  The parsing.tbl is being updated on ncosrv to send the status messages to lnx323 and process them.




More information about the NCEP.List.Jifmemo mailing list