diff --git a/docs/ReleaseNotes.md b/docs/ReleaseNotes.md index 4a85c35a..1397fb8d 100644 --- a/docs/ReleaseNotes.md +++ b/docs/ReleaseNotes.md @@ -3,7 +3,7 @@ @brief Detailed description of changes included within each new release. -### Version 11.6.0 - TBD +### Version 11.6.0 - November 10, 2021 * All of the library builds now use dynamic allocation, so the "_DA" suffix has now been correspondingly removed from the names of the library builds. diff --git a/src/adn30.f b/src/adn30.f index 38d0964a..b7b32e4f 100644 --- a/src/adn30.f +++ b/src/adn30.f @@ -9,22 +9,21 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] IDN - integer: Bit-wise representation of FXY value -C> @param[in] L30 - integer: Length of string to be returned; can be +C> @param[in] IDN -- integer: Bit-wise representation of FXY value +C> @param[in] L30 -- integer: Length of string to be returned; can be C> either 5 or 6 characters -C> @returns adn30 - character*(*): FXY value +C> @returns adn30 -- character*(*): FXY value C> C> @remarks C> - This function is the logical inverse of function idn30(). C> C> Program History Log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to CRAY library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine bort() -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added -C> history documentation +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to CRAY library routine "ABORT" with call to new internal BUFRLIB routine bort() | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added history documentation | FUNCTION ADN30(IDN,L30) diff --git a/src/arallocc.c b/src/arallocc.c index 8a393646..3e4281ab 100644 --- a/src/arallocc.c +++ b/src/arallocc.c @@ -27,8 +27,10 @@ * operating system once the application program terminates. * * Program history log: - * - 2014-12-04 J. Ator -- Original author - * - 2021-05-17 J. Ator -- Allow up to 24 characters in cbunit + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2014-12-04 | J. Ator | Original author | + * | 2021-05-17 | J. Ator | Allow up to 24 characters in cbunit | */ void arallocc( void ) diff --git a/src/arallocf.f b/src/arallocf.f index e58b2a7e..94fb2604 100644 --- a/src/arallocf.f +++ b/src/arallocf.f @@ -22,14 +22,14 @@ C> operating system once the application program terminates. C> C> Program history log: -C> - 2014-12-04 J. Ator -- Original author -C> - 2016-05-24 J. Ator -- Added allocations for MODA_BITMAPS -C> and MODA_NRV203 -C> - 2017-05-22 J. Ator -- Added allocations for MODA_RLCCMN -C> - 2019-05-09 J. Ator -- Modified allocations for MODA_BUFRMG -C> - 2021-01-08 J. Ator -- Modified mstabs array declarations -C> for GNUv10 portability -C> - 2021-05-17 J. Ator -- Allow up to 24 characters in cbunit +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2014-12-04 | J. Ator | Original author | +C> | 2016-05-24 | J. Ator | Added allocations for MODA_BITMAPS and MODA_NRV203 | +C> | 2017-05-22 | J. Ator | Added allocations for MODA_RLCCMN | +C> | 2019-05-09 | J. Ator | Modified allocations for MODA_BUFRMG | +C> | 2021-01-08 | J. Ator | Modified mstabs array declarations for GNUv10 portability | +C> | 2021-05-17 | J. Ator | Allow up to 24 characters in cbunit | C> SUBROUTINE ARALLOCF diff --git a/src/ardllocc.c b/src/ardllocc.c index 1f43f0fe..6b0268a5 100644 --- a/src/ardllocc.c +++ b/src/ardllocc.c @@ -15,7 +15,9 @@ * @date 2014-12-04 * * Program history log: - * - 2014-12-04 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2014-12-04 | J. Ator | Original author | */ void ardllocc( void ) diff --git a/src/ardllocf.f b/src/ardllocf.f index 2c30f1d5..23b4aa81 100644 --- a/src/ardllocf.f +++ b/src/ardllocf.f @@ -9,7 +9,9 @@ C> @date 2014-12-04 C> C> Program history log: -C> - 2014-12-04 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2014-12-04 | J. Ator | Original author | C> SUBROUTINE ARDLLOCF diff --git a/src/atrcpt.f b/src/atrcpt.f index 5cce61e3..40438e5c 100644 --- a/src/atrcpt.f +++ b/src/atrcpt.f @@ -14,11 +14,11 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] MSGIN - integer(*): BUFR message -C> @param[in] LMSGOT - integer: Dimensioned size (in integers) of +C> @param[in] MSGIN -- integer(*): BUFR message +C> @param[in] LMSGOT -- integer: Dimensioned size (in integers) of C> MSGOT; used by the subroutine to ensure that C> it doesn't overflow the MSGOT array -C> @param[out] MSGOT - integer(*): Copy of MSGIN with a tank +C> @param[out] MSGOT -- integer(*): Copy of MSGIN with a tank C> receipt time added to Section 1 C> C> @remarks @@ -27,7 +27,9 @@ C> for extra space when allocating MSGOT within the application program. C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | C> SUBROUTINE ATRCPT(MSGIN,LMSGOT,MSGOT) diff --git a/src/bfrini.f90.in b/src/bfrini.f90.in index 093980b6..2e04108b 100644 --- a/src/bfrini.f90.in +++ b/src/bfrini.f90.in @@ -15,44 +15,27 @@ !> @date 1994-01-06 !> !> Program history log: -!> - 1994-01-06 J. Woollen -- Original author -!> - 1995-06-28 J. Woollen -- Increased the size of internal BUFR table -!> arrays in order to handle bigger files -!> - 1998-07-08 J. Woollen -- Modified to make Y2K-compliant -!> - 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) -!> - 2000-09-19 J. Woollen -- Maximum message length increased from -!> 10,000 to 20,000 bytes -!> - 2003-11-04 J. Ator -- Added documentation -!> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -!> - 2003-11-04 D. Keyser -- MAXJL (maximum number of jump/link entries) -!> increased from 15000 to 16000 (was in -!> verification version); initialize -!> variable JSR to zero in new COMMON block -!> /BUFRSR/ (was in verification version); -!> unified/portable for WRF; added history -!> documentation -!> - 2004-08-18 J. Ator -- Added initialization of COMMON /MSGSTD/; -!> maximum message length increased from -!> 20,000 to 50,000 bytes -!> - 2005-11-29 J. Ator -- Added initialization of COMMON /MSGCMP/ -!> and calls to pkvs1 and pkvs01() -!> - 2009-03-23 J. Ator -- Added initialization of COMMON /DSCACH/, -!> COMMON /MSTINF/ and COMMON /TNKRCP/ -!> - 2012-09-15 J. Woollen -- Modified for C/I/O/BUFR interface, -!> added initialization of COMMON blocks -!> /ENDORD/ and /BUFRBMISS/ -!> - 2014-09-15 J. Ator -- Change default location of MTDIR -!> - 2014-11-18 J. Ator -- Added initialization of modules MSGLIM -!> and USRINT; remove S01CM initialization -!> - 2016-11-29 J. Ator -- Explicitly initialize BMISS as 10E10_8 -!> - 2017-10-13 J. Ator -- Added initialization of COMMON /TABLEF/ -!> - 2019-05-03 J. Ator -- Change default location of MTDIR -!> - 2019-05-09 J. Ator -- Added dimensions for MSGLEN -!> - 2021-03-23 J. Ator -- Use mtinfo() with MASTER_TABLE_DIR -!> macro from CMake +!> | Date | Programmer | Comments | +!> | -----|------------|----------| +!> | 1994-01-06 | J. Woollen | Original author | +!> | 1995-06-28 | J. Woollen | Increased the size of internal BUFR table arrays in order to handle bigger files | +!> | 1998-07-08 | J. Woollen | Modified to make Y2K-compliant | +!> | 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) | +!> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +!> | 2003-11-04 | J. Ator | Added documentation | +!> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +!> | 2003-11-04 | D. Keyser | MAXJL increased from 15000 to 16000; initialize variable JSR to zero in new COMMON block /BUFRSR/; unified/portable for WRF; added documentation | +!> | 2004-08-18 | J. Ator | Added initialization of COMMON /MSGSTD/; maximum message length increased from 20,000 to 50,000 bytes | +!> | 2005-11-29 | J. Ator | Added initialization of COMMON /MSGCMP/ and calls to pkvs1 and pkvs01() | +!> | 2009-03-23 | J. Ator | Added initialization of COMMON /DSCACH/, COMMON /MSTINF/ and COMMON /TNKRCP/ | +!> | 2012-09-15 | J. Woollen | Modified for C/I/O/BUFR interface, added initialization of COMMON blocks /ENDORD/ and /BUFRBMISS/ | +!> | 2014-09-15 | J. Ator | Change default location of MTDIR | +!> | 2014-11-18 | J. Ator | Added initialization of modules MSGLIM and USRINT; remove S01CM initialization | +!> | 2016-11-29 | J. Ator | Explicitly initialize BMISS as 10E10_8 | +!> | 2017-10-13 | J. Ator | Added initialization of COMMON /TABLEF/ | +!> | 2019-05-03 | J. Ator | Change default location of MTDIR | +!> | 2019-05-09 | J. Ator | Added dimensions for MSGLEN | +!> | 2021-03-23 | J. Ator | Use mtinfo() with MASTER_TABLE_DIR macro from CMake | !> subroutine bfrini diff --git a/src/blocks.f b/src/blocks.f index a5372acf..d6017e8c 100644 --- a/src/blocks.f +++ b/src/blocks.f @@ -23,10 +23,10 @@ C> @author J. Woollen C> @date 2012-09-15 C> -C> @param[in,out] MBAY - integer(*): BUFR message, possibly with -C> added control words on output -C> @param[in,out] MWRD - integer: Size (in integers) of contents -C> of MBAY +C> @param[in,out] MBAY -- integer(*): BUFR message, possibly with +C> added control words on output +C> @param[in,out] MWRD -- integer: Size (in integers) of contents +C> of MBAY C> C> @remarks C> - For more information about IEEE Fortran control words, as @@ -38,7 +38,9 @@ C> application program. C> C> Program history log: -C> - 2012-09-15 J. Woollen -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2012-09-15 | J. Ator | Original author | C> SUBROUTINE BLOCKS(MBAY,MWRD) diff --git a/src/bort.f b/src/bort.f index f77dd31f..fb63c75c 100644 --- a/src/bort.f +++ b/src/bort.f @@ -10,15 +10,14 @@ C> @author J. Woollen C> @date 1998-07-08 C> -C> @param[in] STR - character*(*): Error message +C> @param[in] STR -- character*(*): Error message C> C> Program history log: -C> - 1998-07-08 J. Woollen -- Original author -C> - 2003-11-04 J. Ator -- Added documentation; replaced call to -C> intrinsic C routine "exit" with call -C> to bort_exit() to ensure return of -C> non-zero status code -C> - 2009-04-21 J. Ator -- Use errwrt() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1998-07-08 | J. Woollen | Original author | +C> | 2003-11-04 | J. Ator | Added documentation; replaced call to intrinsic C routine "exit" with call to bort_exit() to ensure return of non-zero status code | +C> | 2009-04-21 | J. Ator | Use errwrt() | C> SUBROUTINE BORT(STR) diff --git a/src/bort2.f b/src/bort2.f index af6c86d6..70bd8432 100644 --- a/src/bort2.f +++ b/src/bort2.f @@ -10,12 +10,14 @@ C> @author D. Keyser C> @date 2003-11-04 C> -C> @param[in] STR1 - character*(*): First error message -C> @param[in] STR2 - character*(*): Second error message +C> @param[in] STR1 -- character*(*): First error message +C> @param[in] STR2 -- character*(*): Second error message C> C> Program history log: -C> - 2003-11-04 D. Keyser -- Original author -C> - 2009-04-21 J. Ator -- Use errwrt() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2003-11-04 | D. Keyser | Original author | +C> | 2009-04-21 | J. Ator | Use errwrt() | C> SUBROUTINE BORT2(STR1,STR2) diff --git a/src/bort_exit.c b/src/bort_exit.c index d56b6494..ba19d817 100644 --- a/src/bort_exit.c +++ b/src/bort_exit.c @@ -12,10 +12,12 @@ * @date 2003-11-04 * * Program history log: - * - 2003-11-04 J. Ator -- Original author - * - 2003-11-04 D. Keyser -- Unified/portable for WRF - * - 2004-08-18 J. Ator -- Use bufrlib.h include file - * - 2007-01-19 J. Ator -- Fix declaration for ANSI-C + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2003-11-04 | J. Ator | Original author | + * | 2003-11-04 | D. Keyser | Unified/portable for WRF | + * | 2004-08-18 | J. Ator | Use bufrlib.h include file | + * | 2007-01-19 | J. Ator | Fix declaration for ANSI-C | */ void bort_exit( void ) diff --git a/src/bvers.f.in b/src/bvers.f.in index beaefdb9..2419e993 100644 --- a/src/bvers.f.in +++ b/src/bvers.f.in @@ -8,26 +8,27 @@ C> C> @author J. Ator C> @date 2009-03-23 C> -C> @param[out] CVERSTR - character*(*): Version string +C> @param[out] CVERSTR -- character*(*): Version string C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author -C> - 2011-09-26 J. Ator -- Updated to version 10.0.1 -C> - 2012-02-24 J. Ator -- Updated to version 10.1.0 -C> - 2012-10-12 J. Ator -- Updated to version 10.2.0 -C> - 2012-11-29 J. Ator -- Updated to version 10.2.1 -C> - 2012-12-04 J. Ator -- Updated to version 10.2.2 -C> - 2013-01-08 J. Ator -- Updated to version 10.2.3 -C> - 2013-01-09 J. Ator -- Updated to version 10.2.4 -C> - 2013-01-25 J. Ator -- Updated to version 10.2.5 -C> - 2014-11-12 J. Ator -- Updated to version 11.0.0 -C> - 2015-09-24 J. Ator -- Updated to version 11.0.1 -C> - 2016-02-12 J. Ator -- Updated to version 11.0.2 -C> - 2016-03-18 J. Ator -- Updated to version 11.1.0 -C> - 2016-05-10 J. Ator -- Updated to version 11.2.0 -C> - 2017-04-03 J. Ator -- Updated to version 11.3.0 -C> - 2020-10-21 J. Ator -- Updated to use PROJECT_VERSION -C> macro from CMake +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | +C> | 2011-09-26 | J. Ator | Updated to version 10.0.1 | +C> | 2012-02-24 | J. Ator | Updated to version 10.1.0 | +C> | 2012-10-12 | J. Ator | Updated to version 10.2.0 | +C> | 2012-11-29 | J. Ator | Updated to version 10.2.1 | +C> | 2012-12-04 | J. Ator | Updated to version 10.2.2 | +C> | 2013-01-08 | J. Ator | Updated to version 10.2.3 | +C> | 2013-01-09 | J. Ator | Updated to version 10.2.4 | +C> | 2013-01-25 | J. Ator | Updated to version 10.2.5 | +C> | 2014-11-12 | J. Ator | Updated to version 11.0.0 | +C> | 2015-09-24 | J. Ator | Updated to version 11.0.1 | +C> | 2016-02-12 | J. Ator | Updated to version 11.0.2 | +C> | 2016-03-18 | J. Ator | Updated to version 11.1.0 | +C> | 2016-05-10 | J. Ator | Updated to version 11.2.0 | +C> | 2017-04-03 | J. Ator | Updated to version 11.3.0 | +C> | 2020-10-21 | J. Ator | Updated to use PROJECT_VERSION macro from CMake | C> SUBROUTINE BVERS (CVERSTR) diff --git a/src/cadn30.f b/src/cadn30.f index d51165a3..19a05da3 100644 --- a/src/cadn30.f +++ b/src/cadn30.f @@ -12,11 +12,13 @@ C> @author J. Ator C> @date 2004-08-18 C> -C> @param[in] IDN - integer: Bit-wise representation of FXY value -C> @param[out] ADN - character*6: FXY value +C> @param[in] IDN -- integer: Bit-wise representation of FXY value +C> @param[out] ADN -- character*6: FXY value C> C> Program History Log: -C> - 2004-08-18 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2004-08-18 | J. Ator | Original author | C> SUBROUTINE CADN30( IDN, ADN ) diff --git a/src/capit.f b/src/capit.f index e38548d2..cf5ce67d 100644 --- a/src/capit.f +++ b/src/capit.f @@ -7,12 +7,13 @@ C> @author J. Woollen C> @date 2002-05-14 C> -C> @param[in,out] STR - character*(*): String +C> @param[in,out] STR -- character*(*): String C> C> Program History Log: -C> - 2002-05-14 J. Woollen -- Original author -C> - 2012-03-02 J. Ator -- Changed name of ups array to upcs to avoid -C> namespace contention with function ups() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2002-05-14 | J. Woollen | Original author | +C> | 2012-03-02 | J. Ator | Changed name of ups array to upcs to avoid namespace contention with function ups() | C> SUBROUTINE CAPIT(STR) diff --git a/src/ccbfl.c b/src/ccbfl.c index ba2afc07..0cc48c15 100644 --- a/src/ccbfl.c +++ b/src/ccbfl.c @@ -13,7 +13,9 @@ * @date 2005-11-29 * * Program history log: - * - 2005-11-29 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2005-11-29 | J. Ator | Original author | */ void ccbfl( void ) { diff --git a/src/chrtrna.f b/src/chrtrna.f index 735e2d4a..c3a95cf8 100644 --- a/src/chrtrna.f +++ b/src/chrtrna.f @@ -13,11 +13,11 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] CHR - character(*): Array of characters in ASCII -C> @param[in] N - integer: Number of characters to be copied +C> @param[in] CHR -- character(*): Array of characters in ASCII +C> @param[in] N -- integer: Number of characters to be copied C> from CHR, starting from the beginning of C> the array -C> @param[out] STR - character*(*): Character string in ASCII or +C> @param[out] STR -- character*(*): Character string in ASCII or C> EBCDIC, depending on native machine C> C> @remarks @@ -25,8 +25,10 @@ C> EBCDIC is made via an internal call to subroutine wrdlen(). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2003-11-04 J. Ator -- Added documentation +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2003-11-04 | J. Ator | Added documentation | C> SUBROUTINE CHRTRNA(STR,CHR,N) diff --git a/src/closbf.f b/src/closbf.f index b97c394b..195c428a 100644 --- a/src/closbf.f +++ b/src/closbf.f @@ -9,7 +9,7 @@ C> @authors J. Ator C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file C> C> @remarks C> - This subroutine will execute a Fortran "CLOSE" on logical unit LUNIT, @@ -21,17 +21,15 @@ C> ensure that all output is properly flushed to LUNIT. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2003-11-04 J. Ator -- Don't close lunit if opened as a NULL file -C> by openbf() -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation -C> - 2012-09-15 J. Woollen -- Modified for C/I/O/BUFR interface; -C> added call to closfb() to close C files -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2020-07-16 J. Ator -- Add sanity check to ensure that openbf() -C> was previously called (needed for GSI) +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2003-11-04 | J. Ator | Don't close lunit if opened as a NULL file by openbf() | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added history documentation | +C> | 2012-09-15 | J. Woollen | Modified for C/I/O/BUFR interface; added call to closfb() to close C files | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2020-07-16 | J. Ator | Add sanity check to ensure that openbf() was previously called (needed for GSI) | C> SUBROUTINE CLOSBF(LUNIT) diff --git a/src/closmg.f b/src/closmg.f index 9fa2d4ff..8893f960 100644 --- a/src/closmg.f +++ b/src/closmg.f @@ -10,7 +10,7 @@ C> @authors D. Keyser C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Absolute value is Fortran logical unit +C> @param[in] LUNIN -- integer: Absolute value is Fortran logical unit C> number for BUFR file C> C>
Logical unit ABS(LUNIN) should have already been opened for output @@ -23,32 +23,19 @@ C> times that normally appear in the first 2 messages of NCEP dump files. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT"; modified to make Y2K -C> compliant -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Maximum message length increased from -C> 10,000 to 20,000 bytes -C> - 2003-05-19 J. Woollen -- Corrected a bug which prevented the dump -C> center and initiation time messages from -C> being written out -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2004-08-09 J. Ator -- Maximum message length increased from -C> 20,000 to 50,000 bytes -C> - 2005-05-26 D. Keyser -- Add LUNIN < 0 option to suppress writing -C> of all future zero-subset messsages to -C> ABS(LUNIN) -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant | +C> | 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) | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2003-05-19 | J. Woollen | Corrected a bug which prevented the dump center and initiation time messages from being written out | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added history documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-05-26 | D. Keyser | Add LUNIN < 0 option to suppress writing of all future zero-subset messsages to ABS(LUNIN) | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE CLOSMG(LUNIN) diff --git a/src/cmpmsg.f b/src/cmpmsg.f index d8057d74..3ab21b9b 100644 --- a/src/cmpmsg.f +++ b/src/cmpmsg.f @@ -8,7 +8,7 @@ C> @author J. Ator C> @date 2005-03-09 C> -C> @param[in] CF - character*1: Flag indicating whether future BUFR +C> @param[in] CF -- character*1: Flag indicating whether future BUFR C> output messages are to be compressed C> - 'N' = No (the default) C> - 'Y' = Yes @@ -34,8 +34,9 @@ C> it is not activated by default. C> C> Program history log: -C> - 2005-03-09 J. Ator -- Original author -C> +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-03-09 | J. Ator | Original author | C> SUBROUTINE CMPMSG(CF) diff --git a/src/cmpstia1.c b/src/cmpstia1.c index e999acdb..c26988db 100644 --- a/src/cmpstia1.c +++ b/src/cmpstia1.c @@ -17,17 +17,19 @@ * @author J. Ator * @date 2017-11-13 * - * @param[in] pe1 - struct code_flag_entry*: First master Code/Flag - * table entry - * @param[in] pe2 - struct code_flag_entry*: Second master Code/Flag - * table entry - * @returns cmpstia1 - integer: - * - -1 = pe1 is less than pe2 - * - 0 = pe1 is equal to pe2 - * - 1 = pe1 is greater than pe2 + * @param[in] pe1 -- struct code_flag_entry*: First master Code/Flag + * table entry + * @param[in] pe2 -- struct code_flag_entry*: Second master Code/Flag + * table entry + * @returns cmpstia1 -- integer: + * - -1 = pe1 is less than pe2 + * - 0 = pe1 is equal to pe2 + * - 1 = pe1 is greater than pe2 * * Program history log: - * - 2017-11-13 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2017-11-13 | J. Ator | Original author | */ int cmpstia1( const void *pe1, const void *pe2 ) { diff --git a/src/cmpstia2.c b/src/cmpstia2.c index e08a8114..8b19152d 100644 --- a/src/cmpstia2.c +++ b/src/cmpstia2.c @@ -17,17 +17,19 @@ * @author J. Ator * @date 2017-11-13 * - * @param[in] pe1 - struct code_flag_entry*: First master Code/Flag - * table entry - * @param[in] pe2 - struct code_flag_entry*: Second master Code/Flag - * table entry - * @returns cmpstia2 - integer: - * - -1 = pe1 is less than pe2 - * - 0 = pe1 is equal to pe2 - * - 1 = pe1 is greater than pe2 + * @param[in] pe1 -- struct code_flag_entry*: First master Code/Flag + * table entry + * @param[in] pe2 -- struct code_flag_entry*: Second master Code/Flag + * table entry + * @returns cmpstia2 -- integer: + * - -1 = pe1 is less than pe2 + * - 0 = pe1 is equal to pe2 + * - 1 = pe1 is greater than pe2 * * Program history log: - * - 2017-11-13 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2017-11-13 | J. Ator | Original author | */ int cmpstia2( const void *pe1, const void *pe2 ) { diff --git a/src/cnved4.f b/src/cnved4.f index 02704458..723baf70 100644 --- a/src/cnved4.f +++ b/src/cnved4.f @@ -14,11 +14,11 @@ C> @author J. Ator C> @date 2005-11-29 C> -C> @param[in] MSGIN - integer(*): BUFR message -C> @param[in] LMSGOT - integer: Dimensioned size (in integers) of +C> @param[in] MSGIN -- integer(*): BUFR message +C> @param[in] LMSGOT -- integer: Dimensioned size (in integers) of C> MSGOT; used by the subroutine to ensure that C> it doesn't overflow the MSGOT array -C> @param[out] MSGOT - integer(*): Copy of MSGIN encoded using +C> @param[out] MSGOT -- integer(*): Copy of MSGIN encoded using C> BUFR edition 4 C> C> @remarks @@ -28,10 +28,10 @@ C> for extra space when allocating MSGOT within the application program. C> C> Program history log: -C> - 2005-11-29 J. Ator -- Original author -C> - 2009-08-12 J. Ator -- Allow silent return (instead of bort() -C> return) if MSGIN is already encoded using -C> edition 4 +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-11-29 | J. Ator | Original author | +C> | 2009-08-12 | J. Ator | Allow silent return (instead of bort() return) if MSGIN is already encoded using edition 4 | C> SUBROUTINE CNVED4(MSGIN,LMSGOT,MSGOT) diff --git a/src/cobfl.c b/src/cobfl.c index bd7db71a..d9bf655a 100644 --- a/src/cobfl.c +++ b/src/cobfl.c @@ -15,11 +15,11 @@ * @author J. Ator * @date 2005-11-29 * - * @param[in] bfl - char*: System file to be opened. + * @param[in] bfl -- char*: System file to be opened. * Inclusion of directory prefixes or other * local filesystem notation is allowed, up * to 200 total characters. - * @param[in] io - char: Flag indicating how bfl is to + * @param[in] io -- char: Flag indicating how bfl is to * be opened: * - 'r' = input (for reading BUFR messages) * - 'w' = output (for writing BUFR messages) @@ -74,8 +74,10 @@ * location previously specified via a call to subroutine errwrt(). * * Program history log: - * - 2005-11-29 J. Ator -- Original author - * - 2021-10-20 J. Ator -- Increase MXFNLEN to 200 characters + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2005-11-29 | J. Ator | Original author | + * | 2021-10-20 | J. Ator | Increase MXFNLEN to 200 characters | */ void cobfl( char *bfl, char *io ) { diff --git a/src/codflg.f b/src/codflg.f index bc9b3403..26713f69 100644 --- a/src/codflg.f +++ b/src/codflg.f @@ -9,7 +9,7 @@ C> @author J. Ator C> @date 2017-10-13 C> -C> @param[in] CF - character*1: Flag indicating whether +C> @param[in] CF -- character*1: Flag indicating whether C> or not to include code and flag table C> information during all future reads of C> master BUFR tables @@ -38,7 +38,9 @@ C> 'N' is used for CF, as set within subroutine bfrini(). C> C> Program history log: -C> - 2017-10-13 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2017-10-13 | J. Ator | Original author | C> SUBROUTINE CODFLG(CF) diff --git a/src/copybf.f b/src/copybf.f index b0c4f22c..42b2a4e6 100644 --- a/src/copybf.f +++ b/src/copybf.f @@ -7,9 +7,9 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Fortran logical unit number for +C> @param[in] LUNIN -- integer: Fortran logical unit number for C> source BUFR file -C> @param[in] LUNOT - integer: Fortran logical unit number for +C> @param[in] LUNOT -- integer: Fortran logical unit number for C> target BUFR file C> C>
The logical unit numbers LUNIN and LUNOT must already be @@ -24,17 +24,15 @@ C> documentation for subroutine msgwrt(). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 2000-09-19 J. Woollen -- Maximum message length increased -C> from 10,000 to 20,000 bytes -C> - 2004-08-09 J. Ator -- Maximum message length increased -C> from 20,000 to 50,000 bytes -C> - 2005-11-29 J. Ator -- Use rdmsgw() and iupbs01() -C> - 2012-09-15 J. Woollen -- Modified for C/I/O/BUFR interface; -C> use status() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-11-29 | J. Ator | Use rdmsgw() and iupbs01() | +C> | 2012-09-15 | J. Woollen | Modified for C/I/O/BUFR interface; use status() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE COPYBF(LUNIN,LUNOT) diff --git a/src/copymg.f b/src/copymg.f index a477fe21..f0eadf70 100644 --- a/src/copymg.f +++ b/src/copymg.f @@ -12,9 +12,9 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Fortran logical unit number for +C> @param[in] LUNIN -- integer: Fortran logical unit number for C> source BUFR file -C> @param[in] LUNOT - integer: Fortran logical unit number for +C> @param[in] LUNOT -- integer: Fortran logical unit number for C> target BUFR file C> C>
Logical unit LUNIN should have already been opened for input @@ -41,20 +41,16 @@ C> described in the documentation for subroutine msgwrt(). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Maximum message length increased -C> from 10,000 to 20,000 bytes -C> - 2004-08-09 J. Ator -- Maximum message length increased -C> from 20,000 to 50,000 bytes -C> - 2005-11-29 J. Ator -- Use iupbs01() -C> - 2009-06-26 J. Ator -- Use iok2cpy() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 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) | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-11-29 | J. Ator | Use iupbs01() | +C> | 2009-06-26 | J. Ator | Use iok2cpy() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE COPYMG(LUNIN,LUNOT) diff --git a/src/copysb.f b/src/copysb.f index 5429b3c9..040178db 100644 --- a/src/copysb.f +++ b/src/copysb.f @@ -7,11 +7,11 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Fortran logical unit number for +C> @param[in] LUNIN -- integer: Fortran logical unit number for C> source BUFR file -C> @param[in] LUNOT - integer: Fortran logical unit number for +C> @param[in] LUNOT -- integer: Fortran logical unit number for C> target BUFR file -C> @param[out] IRET - integer: return code +C> @param[out] IRET -- integer: return code C> - 0 = normal return C> - -1 = a BUFR data subset could not be C> read from the BUFR message in @@ -41,26 +41,18 @@ C> subset to be copied from LUNIN to LUNOT. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Maximum message length increased -C> from 10,000 to 20,000 bytes -C> - 2002-05-14 J. Woollen -- Removed old Cray compiler directives -C> - 2004-08-09 J. Ator -- Maximum message length increased -C> from 20,000 to 50,000 bytes -C> - 2005-09-16 J. Woollen -- Now writes out compressed subset/message if -C> input subset/message is compressed (before -C> could only write out uncompressed subset/ -C> message regardless of compression status of -C> input subset/message) -C> - 2009-06-26 J. Ator -- Use iok2cpy() -C> - 2014-11-03 J. Ator -- Handle oversized (>65530 bytes) subsets -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 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) | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2002-05-14 | J. Woollen | Removed old Cray compiler directives | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-09-16 | J. Woollen | Now writes out compressed subset/message if input subset/message is compressed | +C> | 2009-06-26 | J. Ator | Use iok2cpy() | +C> | 2014-11-03 | J. Ator | Handle oversized (>65530 bytes) subsets | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE COPYSB(LUNIN,LUNOT,IRET) diff --git a/src/cpdxmm.f b/src/cpdxmm.f index 52226cc2..1e0fcbc2 100644 --- a/src/cpdxmm.f +++ b/src/cpdxmm.f @@ -7,14 +7,15 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR C> file C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author -C> - 2012-09-15 J. Woollen -- Modified for C/I/O/BUFR interface; -C> replace Fortran BACKSPACE with C backbufr() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | +C> | 2012-09-15 | J. Woollen | Modified for C/I/O/BUFR interface; replace Fortran BACKSPACE with C backbufr() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE CPDXMM( LUNIT ) diff --git a/src/cpmstabs.c b/src/cpmstabs.c index 2849bd2b..96add78b 100644 --- a/src/cpmstabs.c +++ b/src/cpmstabs.c @@ -15,32 +15,34 @@ * @author J. Ator * @date 2014-12-04 * - * @param[in] pnmtb - f77int*: Number of master Table B entries - * @param[in] pibfxyn - f77int*: Bit-wise representations of - * master Table B FXY numbers - * @param[in] pcbscl - char(*)[4]: Master Table B scale factors - * @param[in] pcbsref - char(*)[12]: Master Table B reference + * @param[in] pnmtb -- f77int*: Number of master Table B entries + * @param[in] pibfxyn -- f77int*: Bit-wise representations of + * master Table B FXY numbers + * @param[in] pcbscl -- char(*)[4]: Master Table B scale factors + * @param[in] pcbsref -- char(*)[12]: Master Table B reference * values - * @param[in] pcbbw - char(*)[4]: Master Table B bit widths - * @param[in] pcbunit - char(*)[24]: Master Table B units - * @param[in] pcbmnem - char(*)[8]: Master Table B mnemonics - * @param[in] pcbelem - char(*)[120]: Master Table B element names - * @param[in] pnmtd - f77int*: Number of master Table D entries - * @param[in] pidfxyn - f77int*: Bit-wise representations of - * master Table D FXY numbers - * @param[in] pcdseq - char(*)[120]: Master Table D sequence names - * @param[in] pcdmnem - char(*)[8]: Master Table D mnemonics - * @param[in] pndelem - f77int*: Number of child descriptors for - * master Table D sequence - * @param[in] pidefxy - f77int*: Bit-wise representations of - * child descriptors for master Table D - * sequence - * @param[in] maxcd - f77int*: Maximum number of child descriptors - * for a master Table D sequence + * @param[in] pcbbw -- char(*)[4]: Master Table B bit widths + * @param[in] pcbunit -- char(*)[24]: Master Table B units + * @param[in] pcbmnem -- char(*)[8]: Master Table B mnemonics + * @param[in] pcbelem -- char(*)[120]: Master Table B element names + * @param[in] pnmtd -- f77int*: Number of master Table D entries + * @param[in] pidfxyn -- f77int*: Bit-wise representations of + * master Table D FXY numbers + * @param[in] pcdseq -- char(*)[120]: Master Table D sequence names + * @param[in] pcdmnem -- char(*)[8]: Master Table D mnemonics + * @param[in] pndelem -- f77int*: Number of child descriptors for + * master Table D sequence + * @param[in] pidefxy -- f77int*: Bit-wise representations of + * child descriptors for master Table D + * sequence + * @param[in] maxcd -- f77int*: Maximum number of child descriptors + * for a master Table D sequence * * Program history log: - * - 2014-12-04 J. Ator -- Original author - * - 2021-05-17 J. Ator -- Allow up to 24 characters in cbunit + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2014-12-04 | J. Ator | Original author | + * | 2021-05-17 | J. Ator | Allow up to 24 characters in cbunit | */ void cpmstabs( f77int *pnmtb, f77int *pibfxyn, char (*pcbscl)[4], diff --git a/src/cpymem.f b/src/cpymem.f index fabbde12..763bfb72 100644 --- a/src/cpymem.f +++ b/src/cpymem.f @@ -12,7 +12,7 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNOT - integer: Fortran logical unit number for +C> @param[in] LUNOT -- integer: Fortran logical unit number for C> target BUFR file C> C>
One or more files of BUFR messages should have already been @@ -39,22 +39,18 @@ C> described in the documentation for subroutine msgwrt(). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Maximum message length increased -C> from 10,000 to 20,000 bytes -C> - 2001-08-15 D. Keyser -- Increased MAXMEM from 8 Mb to 16 Mb -C> - 2004-08-09 J. Ator -- Maximum message length increased -C> from 20,000 to 50,000 bytes -C> - 2004-11-15 D. Keyser -- Increased MAXMEM from 16 Mb to 50 Mb -C> - 2005-11-29 J. Ator -- Use iupbs01() -C> - 2009-06-26 J. Ator -- Use iok2cpy() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 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) | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2001-08-15 | D. Keyser | Increased MAXMEM from 8 Mb to 16 Mb | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2004-11-15 | D. Keyser | Increased MAXMEM from 16 Mb to 50 Mb | +C> | 2005-11-29 | J. Ator | Use iupbs01() | +C> | 2009-06-26 | J. Ator | Use iok2cpy() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE CPYMEM(LUNOT) diff --git a/src/crbmg.c b/src/crbmg.c index 5fbfb70c..62bb887b 100644 --- a/src/crbmg.c +++ b/src/crbmg.c @@ -13,13 +13,13 @@ * @author J. Ator * @date 2005-11-29 * - * @param[in] mxmb - f77int*: Dimensioned size (in bytes) of + * @param[in] mxmb -- f77int*: Dimensioned size (in bytes) of * bmg; used by the subroutine to ensure that * it doesn't overflow the bmg array - * @param[out] bmg - char*: BUFR message - * @param[out] nmb - f77int*: Size (in bytes) of BUFR message + * @param[out] bmg -- char*: BUFR message + * @param[out] nmb -- f77int*: Size (in bytes) of BUFR message * in bmg - * @param[out] iret - f77int*: return code + * @param[out] iret -- f77int*: return code * - 0 = normal return * - 1 = overflow of bmg array * - 2 = "7777" indicator not found in @@ -40,7 +40,9 @@ * before being returned by this subroutine. * * Program history log: - * - 2005-11-29 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2005-11-29 | J. Ator | Original author | * */ void crbmg( char *bmg, f77int *mxmb, f77int *nmb, f77int *iret ) diff --git a/src/cread.c b/src/cread.c index dc699df0..8af896fd 100644 --- a/src/cread.c +++ b/src/cread.c @@ -22,12 +22,14 @@ * @author J. Woollen * @date 2012-09-15 * - * @param[in] nfile - f77int*: Internal Fortran I/O stream index associated with ufile - * @param[in] ufile - char*: [path/]name of system file to be opened + * @param[in] nfile -- f77int*: Internal Fortran I/O stream index associated with ufile + * @param[in] ufile -- char*: [path/]name of system file to be opened * * Program history log: - * - 2012-09-15 J. Woollen -- Original author - * - 2014-11-07 J. Ator -- Allow dynamic allocation of pb array + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2012-09-15 | J. Woollen | Original author | + * | 2014-11-07 | J. Ator | Allow dynamic allocation of pb array | */ void openrb (nfile,ufile) f77int *nfile; char *ufile; { pb[*nfile] = fopen( ufile , "rb " ); } @@ -37,12 +39,14 @@ void openrb (nfile,ufile) f77int *nfile; char *ufile; { pb[*nfile] = fopen( uf * @author J. Woollen * @date 2012-09-15 * - * @param[in] nfile - f77int*: Internal Fortran I/O stream index associated with ufile - * @param[in] ufile - char*: [path/]name of system file to be opened + * @param[in] nfile -- f77int*: Internal Fortran I/O stream index associated with ufile + * @param[in] ufile -- char*: [path/]name of system file to be opened * * Program history log: - * - 2012-09-15 J. Woollen -- Original author - * - 2014-11-07 J. Ator -- Allow dynamic allocation of pb array + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2012-09-15 | J. Woollen | Original author | + * | 2014-11-07 | J. Ator | Allow dynamic allocation of pb array | */ void openwb (nfile,ufile) f77int *nfile; char *ufile; { pb[*nfile] = fopen( ufile , "wb " ); } @@ -52,12 +56,14 @@ void openwb (nfile,ufile) f77int *nfile; char *ufile; { pb[*nfile] = fopen( uf * @author J. Woollen * @date 2012-09-15 * - * @param[in] nfile - f77int*: Internal Fortran I/O stream index associated with ufile - * @param[in] ufile - char*: [path/]name of system file to be opened + * @param[in] nfile -- f77int*: Internal Fortran I/O stream index associated with ufile + * @param[in] ufile -- char*: [path/]name of system file to be opened * * Program history log: - * - 2012-09-15 J. Woollen -- Original author - * - 2014-11-07 J. Ator -- Allow dynamic allocation of pb array + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2012-09-15 | J. Woollen | Original author | + * | 2014-11-07 | J. Ator | Allow dynamic allocation of pb array | */ void openab (nfile,ufile) f77int *nfile; char *ufile; { pb[*nfile] = fopen( ufile , "a+b" ); } @@ -67,11 +73,13 @@ void openab (nfile,ufile) f77int *nfile; char *ufile; { pb[*nfile] = fopen( uf * @author J. Woollen * @date 2012-09-15 * - * @param[in] nfile - f77int*: Internal Fortran I/O stream index associated with BUFR file + * @param[in] nfile -- f77int*: Internal Fortran I/O stream index associated with BUFR file * * Program history log: - * - 2012-09-15 J. Woollen -- Original author - * - 2014-11-07 J. Ator -- Allow dynamic allocation of pb and lstpos arrays + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2012-09-15 | J. Woollen | Original author | + * | 2014-11-07 | J. Ator | Allow dynamic allocation of pb and lstpos arrays | */ void backbufr (nfile ) f77int *nfile; { fsetpos(pb[*nfile],&lstpos[*nfile]);} @@ -81,11 +89,13 @@ void backbufr (nfile ) f77int *nfile; { fsetpos(pb[*nfile],&ls * @author J. Woollen * @date 2012-09-15 * - * @param[in] nfile - f77int*: Internal Fortran I/O stream index associated with BUFR file + * @param[in] nfile -- f77int*: Internal Fortran I/O stream index associated with BUFR file * * Program history log: - * - 2012-09-15 J. Woollen -- Original author - * - 2014-11-07 J. Ator -- Allow dynamic allocation of pb array + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2012-09-15 | J. Woollen | Original author | + * | 2014-11-07 | J. Ator | Allow dynamic allocation of pb array | */ void cewind (nfile ) f77int *nfile; { rewind(pb[*nfile]); } @@ -95,11 +105,13 @@ void cewind (nfile ) f77int *nfile; { rewind(pb[*nfile]); } * @author J. Woollen * @date 2012-09-15 * - * @param[in] nfile - f77int*: Internal Fortran I/O stream index associated with BUFR file + * @param[in] nfile -- f77int*: Internal Fortran I/O stream index associated with BUFR file * * Program history log: - * - 2012-09-15 J. Woollen -- Original author - * - 2014-11-07 J. Ator -- Allow dynamic allocation of pb array + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2012-09-15 | J. Woollen | Original author | + * | 2014-11-07 | J. Ator | Allow dynamic allocation of pb array | */ void closfb (nfile ) f77int *nfile; { fclose(pb[*nfile]); } @@ -109,19 +121,21 @@ void closfb (nfile ) f77int *nfile; { fclose(pb[*nfile]); } * @author J. Woollen * @date 2012-09-15 * - * @param[in] nfile - f77int*: Internal Fortran I/O stream index associated with BUFR file - * @param[out] bufr - char*: BUFR message - * @param[in] mxbyt - f77int*: Dimensioned size (in bytes) of bufr; used by the function to - * ensure that it doesn't overflow the BUFR array - * @returns crdbufr - f77int: return code - * - 0 = normal return - * - -1 = end-of-file encountered while reading - * - -2 = I/O error encountered while reading - * - -3 = overflow of bufr array + * @param[in] nfile -- f77int*: Internal Fortran I/O stream index associated with BUFR file + * @param[out] bufr -- char*: BUFR message + * @param[in] mxbyt -- f77int*: Dimensioned size (in bytes) of bufr; used by the function to + * ensure that it doesn't overflow the BUFR array + * @returns crdbufr -- f77int: return code + * - 0 = normal return + * - -1 = end-of-file encountered while reading + * - -2 = I/O error encountered while reading + * - -3 = overflow of bufr array * * Program history log: - * - 2012-09-15 J. Woollen -- Original author - * - 2014-11-07 J. Ator -- Allow dynamic allocation of pb and lstpos arrays + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2012-09-15 | J. Woollen | Original author | + * | 2014-11-07 | J. Ator | Allow dynamic allocation of pb and lstpos arrays | */ f77int crdbufr (nfile,bufr,mxbyt) f77int *nfile; f77int *mxbyt; char *bufr; @@ -146,13 +160,15 @@ f77int *nfile; f77int *mxbyt; char *bufr; * @author J. Woollen * @date 2012-09-15 * - * @param[in] nfile - f77int*: Internal Fortran I/O stream index associated with BUFR file - * @param[in] bufr - f77int*: BUFR message - * @param[in] nwrd - f77int*: Size (in f77ints) of bufr + * @param[in] nfile -- f77int*: Internal Fortran I/O stream index associated with BUFR file + * @param[in] bufr -- f77int*: BUFR message + * @param[in] nwrd -- f77int*: Size (in f77ints) of bufr * * Program history log: - * - 2012-09-15 J. Woollen -- Original author - * - 2014-11-07 J. Ator -- Allow dynamic allocation of pb array + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2012-09-15 | J. Woollen | Original author | + * | 2014-11-07 | J. Ator | Allow dynamic allocation of pb array | */ void cwrbufr (nfile,bufr,nwrd) f77int *nfile; f77int *nwrd; f77int *bufr; diff --git a/src/cwbmg.c b/src/cwbmg.c index 934f5f58..3510c98a 100644 --- a/src/cwbmg.c +++ b/src/cwbmg.c @@ -13,10 +13,10 @@ * @author J. Ator * @date 2005-11-29 * - * @param[in] bmg - char*: BUFR message to be written - * @param[in] nmb - f77int*: Size (in bytes) of BUFR message + * @param[in] bmg -- char*: BUFR message to be written + * @param[in] nmb -- f77int*: Size (in bytes) of BUFR message * in bmg - * @param[out] iret - f77int*: return code + * @param[out] iret -- f77int*: return code * - 0 = normal return * - -1 = I/O error encountered while writing * @@ -28,7 +28,9 @@ * with io = 'w'. * * Program history log: - * - 2005-11-29 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2005-11-29 | J. Ator | Original author | */ void cwbmg( char *bmg, f77int *nmb, f77int *iret ) { diff --git a/src/datebf.f b/src/datebf.f index 32cf21d0..773bd95a 100644 --- a/src/datebf.f +++ b/src/datebf.f @@ -10,19 +10,19 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR C> file -C> @param[out] MEAR - integer: Year stored within Section 1 of +C> @param[out] MEAR -- integer: Year stored within Section 1 of C> first data message, in format of either C> YY or YYYY, depending on the most C> recent call to subroutine datelen() -C> @param[out] MMON - integer: Month stored within Section 1 of +C> @param[out] MMON -- integer: Month stored within Section 1 of C> first data message -C> @param[out] MDAY - integer: Day stored within Section 1 of +C> @param[out] MDAY -- integer: Day stored within Section 1 of C> first data message -C> @param[out] MOUR - integer: Hour stored within Section 1 of +C> @param[out] MOUR -- integer: Hour stored within Section 1 of C> first data message -C> @param[out] IDATE - integer: Date-time stored within Section 1 of +C> @param[out] IDATE -- integer: Date-time stored within Section 1 of C> first data message, in format of either C> YYMMDDHH or YYYYMMDDHH, depending on the most C> recent call to subroutine datelen() @@ -31,31 +31,20 @@ C> on the local system, typically via a Fortran "OPEN" statement. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1998-08-31 J. Woollen -- Modified to correct an error which led to -C> MEAR being returned as 2-digit when it was -C> requested as 4-digit via a prior call to -C> datelen() -C> - 1998-10-27 J. Woollen -- Modified to correct problems caused by -C> in-lining code with fpp directives -C> - 2003-05-19 M. Shirey -- Replaced calls to Fortran insrinsic -C> function ICHAR with the NCEP W3LIB -C> function MOVA2I -C> - 2003-11-04 D. Keyser -- Modified date calculations to no longer -C> use floating point arithmetic -C> - 2004-08-18 J. Ator -- Modified 'BUFR' string test for portability -C> to EBCDIC machines -C> - 2004-12-20 D. Keyser -- Calls wrdlen() to initialize local machine -C> information, in case it has not yet been -C> called -C> - 2005-11-29 J. Ator -- Use igetdate(), iupbs01() and rdmsgw() -C> - 2009-03-23 J. Ator -- Use idxmsg() and errwrt() -C> - 2012-09-15 J. Woollen -- Modified for C/I/O/BUFR interface; -C> use new openbf type 'INX' to open and close -C> the C file without closing the Fortran file -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1998-08-31 | J. Woollen | Modified to correct an error which led to MEAR being returned as 2-digit when it was requested as 4-digit via a prior call to datelen() | +C> | 1998-10-27 | J. Woollen | Modified to correct problems caused by in-lining code with fpp directives | +C> | 2003-05-19 | M. Shirey | Replaced calls to Fortran insrinsic function ICHAR with the NCEP W3LIB function MOVA2I | +C> | 2003-11-04 | D. Keyser | Modified date calculations to no longer use floating point arithmetic | +C> | 2004-08-18 | J. Ator | Modified 'BUFR' string test for portability to EBCDIC machines | +C> | 2004-12-20 | D. Keyser | Calls wrdlen() to initialize local machine information, in case it has not yet been called | +C> | 2005-11-29 | J. Ator | Use igetdate(), iupbs01() and rdmsgw() | +C> | 2009-03-23 | J. Ator | Use idxmsg() and errwrt() | +C> | 2012-09-15 | J. Woollen | Modified for C/I/O/BUFR interface; use new openbf type 'INX' to open and close the C file without closing the Fortran file | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE DATEBF(LUNIT,MEAR,MMON,MDAY,MOUR,IDATE) diff --git a/src/datelen.f b/src/datelen.f index 1cb4165e..dde4efca 100644 --- a/src/datelen.f +++ b/src/datelen.f @@ -9,7 +9,7 @@ C> @author J. Woollen C> @date 1998-07-08 C> -C> @param[in] LEN - integer: Length of Section 1 date-time +C> @param[in] LEN -- integer: Length of Section 1 date-time C> values to be output by all future calls C> to message-reading subroutines C> - 8 = YYMMDDHH format with 2-digit year @@ -25,16 +25,12 @@ C> subroutine bfrini(). C> C> Program history log: -C> - 1998-07-08 J. Woollen -- Original author -C> - 2002-05-14 J. Woollen -- Changed from an entry point in readmg() -C> to stand-alone subroutine, to increase -C> portability to other platforms -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2004-12-20 D. Keyser -- Calls wrdlen() to initialize local machine -C> information (in case it has not yet been -C> called), this routine does not require it -C> but it may someday call other routines that -C> do require it +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1998-07-08 | J. Woollen | Original author | +C> | 2002-05-14 | J. Woollen | Changed from an entry point in readmg() to stand-alone subroutine, to increase portability to other platforms | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2004-12-20 | D. Keyser | Calls wrdlen() to initialize local machine information, in case it has not yet been called | C> SUBROUTINE DATELEN(LEN) diff --git a/src/digit.f b/src/digit.f index 0fea41be..0d6d39ed 100644 --- a/src/digit.f +++ b/src/digit.f @@ -7,14 +7,16 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] STR - character*(*): String -C> @returns digit - logical: .TRUE. if all characters in STR are -C> numeric; .FALSE. otherwise +C> @param[in] STR -- character*(*): String +C> @returns digit -- logical: .TRUE. if all characters in STR are +C> numeric; .FALSE. otherwise C> C> Program History Log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2007-01-19 J. Ator -- Simplified logic -C> - 2009-03-23 J. Ator -- Fixed minor bug caused by typo +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2007-01-19 | J. Ator | Simplified logic | +C> | 2009-03-23 | J. Ator | Fixed minor bug caused by typo | C> LOGICAL FUNCTION DIGIT(STR) diff --git a/src/dlloctbf.c b/src/dlloctbf.c index 3ea790fe..d9a9febe 100644 --- a/src/dlloctbf.c +++ b/src/dlloctbf.c @@ -13,7 +13,9 @@ * @date 2017-11-03 * * Program history log: - * - 2017-11-03 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2017-11-03 | J. Ator | Original author | */ void dlloctbf( void ) { diff --git a/src/drfini.f b/src/drfini.f index 7c094e8e..c16ece6e 100644 --- a/src/drfini.f +++ b/src/drfini.f @@ -10,19 +10,19 @@ C> @author J. Woollen C> @date 2002-05-14 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR C> file -C> @param[in] MDRF - integer(*): Array of delayed replication factors, +C> @param[in] MDRF -- integer(*): Array of delayed replication factors, C> in one-to-one correspondence with the number C> of occurrences of DRFTAG within the overall C> subset definition, and explicitly defining C> how much space (i.e. how many replications) C> to allocate within each successive occurrence -C> @param[in] NDRF - integer: Number of delayed replication factors +C> @param[in] NDRF -- integer: Number of delayed replication factors C> within MDRF -C> @param[in] DRFTAG - character*(*): Table D sequence mnemonic, -C> bracketed by appropriate delayed replication -C> notation (e.g. {}, () OR <>) +C> @param[in] DRFTAG -- character*(*): Table D sequence mnemonic, +C> bracketed by appropriate delayed replication +C> notation (e.g. {}, () OR <>) C> C>
Logical unit LUNIT should have already been opened for output C> operations (i.e. writing/encoding BUFR) via a previous call to @@ -49,16 +49,15 @@ C> ufbint() or ufbrep(). C> C> Program history log: -C> - 2002-05-14 J. Woollen -- Original author -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2005-03-04 J. Ator -- Updated documentation -C> - 2014-09-08 J. Ator -- Increase NDRF limit from 100 to 200 -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2018-06-07 J. Ator -- Increase NDRF limit from 200 to 2000 +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2002-05-14 | J. Woollen | Original author | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added history documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2005-03-04 | J. Ator | Updated documentation | +C> | 2014-09-08 | J. Ator | Increase NDRF limit from 100 to 200 | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2018-06-07 | J. Ator | Increase NDRF limit from 200 to 2000 | C> SUBROUTINE DRFINI(LUNIT,MDRF,NDRF,DRFTAG) diff --git a/src/dxdump.f b/src/dxdump.f index 7b83ef1f..613f4c51 100644 --- a/src/dxdump.f +++ b/src/dxdump.f @@ -17,9 +17,9 @@ C> @author J. Ator C> @date 2004-08-18 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] LDXOT - integer: Fortran logical unit number for +C> @param[in] LDXOT -- integer: Fortran logical unit number for C> print output C> C>
Logical unit LUNIT must be open for either input or output @@ -36,10 +36,11 @@ C> within that particular table. C> C> Program history log: -C> - 2004-08-18 J. Ator -- Original author -C> - 2007-01-19 J. Ator -- Corrected output for reference values -C> longer than 8 digits -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2004-08-18 | J. Ator | Original author | +C> | 2007-01-19 | J. Ator | Corrected output for reference values longer than 8 digits | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE DXDUMP(LUNIT,LDXOT) diff --git a/src/errwrt.f b/src/errwrt.f index c87c4ab2..24a8af36 100644 --- a/src/errwrt.f +++ b/src/errwrt.f @@ -22,7 +22,7 @@ C> @author J. Ator C> @date 2009-04-21 C> -C> @param[in] STR - character*(*): Error message or other diagnostic +C> @param[in] STR -- character*(*): Error message or other diagnostic C> to be printed to standard output (default) or C> to another location (if specified via an inline C> replacement version of this subroutine) @@ -33,8 +33,10 @@ C> openbf() with IO = 'QUIET'. C> C> Program history log: -C> - 2009-04-21 J. Ator -- Original author -C> - 2012-11-15 D. Keyser -- Use formatted print +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-04-21 | J. Ator | Original author | +C> | 2012-11-15 | D. Keyser | Use formatted print | C> SUBROUTINE ERRWRT(STR) diff --git a/src/exitbufr.f b/src/exitbufr.f index 27f5e0cd..55032d77 100644 --- a/src/exitbufr.f +++ b/src/exitbufr.f @@ -31,7 +31,9 @@ C> operating system once the application program terminates. C> C> Program history log: -C> - 2015-03-02 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2015-03-02 | J. Ator | Original author | C> SUBROUTINE EXITBUFR diff --git a/src/getbmiss.f b/src/getbmiss.f index bacf71ec..6c563471 100644 --- a/src/getbmiss.f +++ b/src/getbmiss.f @@ -8,8 +8,8 @@ C> @author J. Woollen C> @date 2012-09-15 C> -C> @returns getbmiss - real*8: current placeholder value for -C> "missing" data +C> @returns getbmiss -- real*8: current placeholder value for +C> "missing" data C> C>
This subroutine can be called at any time from within an C> application program, and the returned value can then be @@ -21,7 +21,9 @@ C> time via a separate call to subroutine setbmiss(). C> C> Program history log: -C> - 2012-09-15 J. Woollen -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2012-09-15 | J. Woollen | Original author | C> REAL*8 FUNCTION GETBMISS() diff --git a/src/getcfmng.f b/src/getcfmng.f index 21096150..dbeb2ae8 100644 --- a/src/getcfmng.f +++ b/src/getcfmng.f @@ -8,20 +8,20 @@ C> @author J. Ator C> @date 2018-01-11 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] NEMOI - character*(*): Mnemonic to search for -C> @param[in] IVALI - integer: Value (code figure or bit number) +C> @param[in] NEMOI -- character*(*): Mnemonic to search for +C> @param[in] IVALI -- integer: Value (code figure or bit number) C> associated with NEMOI -C> @param[in] NEMOD - character*(*): Optional second mnemonic upon +C> @param[in] NEMOD -- character*(*): Optional second mnemonic upon C> which the values NEMOI and IVALI depend; set to C> all blank characters if the meanings of NEMOI and C> IVALI do not depend on the value of any other C> mnemonic -C> @param[in] IVALD - integer: Value (code figure or bit number) +C> @param[in] IVALD -- integer: Value (code figure or bit number) C> associated with NEMOD; set to (-1) whenever C> NEMOD is set to all blank characters -C> @param[out] CMEANG - character*(*): If the initial search of the +C> @param[out] CMEANG -- character*(*): If the initial search of the C> master Code/Flag tables was successful, then this C> string contains the meaning corresponding to NEMOI C> and IVALI (and to NEMOD and IVALD, if specified). @@ -36,17 +36,17 @@ C> series of IRET successive 8-byte substrings. C> An example of this scenario is included below C> within the Remarks. -C> @param[out] LNMNG - integer: Length (in bytes) of string returned in +C> @param[out] LNMNG -- integer: Length (in bytes) of string returned in C> CMEANG -C> @param[out] IRET - integer: return code -C> - 0 = meaning found and stored in CMEANG string -C> - -1 = meaning not found -C> - >0 = meaning not found, and NEMOD and -C> IVALD were not specified on input, -C> and the meaning of NEMOI and IVALI -C> depends on the value of one of the -C> mnemonics stored in the first IRET 8-byte -C> substrings of CMEANG +C> @param[out] IRET -- integer: return code +C> - 0 = meaning found and stored in CMEANG string +C> - -1 = meaning not found +C> - >0 = meaning not found, and NEMOD and +C> IVALD were not specified on input, +C> and the meaning of NEMOI and IVALI +C> depends on the value of one of the +C> mnemonics stored in the first IRET 8-byte +C> substrings of CMEANG C> C>
As noted above, this subroutine first does an initial search of C> the master Code/Flag tables based on the mnemonics and values provided. @@ -101,9 +101,10 @@ C> achieve the desired result. C> C> Program history log: -C> - 2018-01-11 J. Ator -- Original author -C> - 2018-02-08 J. Ator -- Add special handling for data types and -C> subtypes in Section 1 +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2018-01-11 | J. Ator | Original author | +C> | 2018-02-08 | J. Ator | Add special handling for data types and subtypes in Section 1 | C> SUBROUTINE GETCFMNG ( LUNIT, NEMOI, IVALI, NEMOD, IVALD, . CMEANG, LNMNG, IRET ) diff --git a/src/getlens.f b/src/getlens.f index 3882f179..a2018cf1 100644 --- a/src/getlens.f +++ b/src/getlens.f @@ -11,8 +11,8 @@ C> @author J. Ator C> @date 2005-11-29 C> -C> @param[in] MBAY - integer(*): BUFR message -C> @param[in] LL - integer: Number of last section for +C> @param[in] MBAY -- integer(*): BUFR message +C> @param[in] LL -- integer: Number of last section for C> which the length is to be read. C> In other words, setting LL = N means to C> read and return the lengths of Sections 0 @@ -20,19 +20,21 @@ C> Any section lengths that are not specified C> to be read are returned with a default C> placeholder value of -1. -C> @param[out] LEN0 - integer: Length (in bytes) of Section 0 -C> @param[out] LEN1 - integer: Length (in bytes) of Section 1 -C> @param[out] LEN2 - integer: Length (in bytes) of Section 2 -C> @param[out] LEN3 - integer: Length (in bytes) of Section 3 -C> @param[out] LEN4 - integer: Length (in bytes) of Section 4 -C> @param[out] LEN5 - integer: Length (in bytes) of Section 5 +C> @param[out] LEN0 -- integer: Length (in bytes) of Section 0 +C> @param[out] LEN1 -- integer: Length (in bytes) of Section 1 +C> @param[out] LEN2 -- integer: Length (in bytes) of Section 2 +C> @param[out] LEN3 -- integer: Length (in bytes) of Section 3 +C> @param[out] LEN4 -- integer: Length (in bytes) of Section 4 +C> @param[out] LEN5 -- integer: Length (in bytes) of Section 5 C> C> @remarks C> - The start of the BUFR message (i.e. the string 'BUFR') must be C> aligned on the first 4 bytes of MBAY. C> C> Program history log: -C> - 2005-11-29 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-11-29 | J. Ator | Original author | C> SUBROUTINE GETLENS(MBAY,LL,LEN0,LEN1,LEN2,LEN3,LEN4,LEN5) diff --git a/src/getntbe.f b/src/getntbe.f index d9cf3acb..5e12203b 100644 --- a/src/getntbe.f +++ b/src/getntbe.f @@ -10,12 +10,12 @@ C> @author J. Ator C> @date 2007-01-19 C> -C> @param[in] LUNT - integer: Fortran logical unit number of +C> @param[in] LUNT -- integer: Fortran logical unit number of C> master table B, table D or Code/Flag table file -C> @param[out] IFXYN - integer: Bit-wise representation of FXY number +C> @param[out] IFXYN -- integer: Bit-wise representation of FXY number C> for next table entry -C> @param[out] LINE - character*(*): First line of next table entry -C> @param[out] IRET - integer: return code +C> @param[out] LINE -- character*(*): First line of next table entry +C> @param[out] IRET -- integer: return code C> - 0 = normal return C> - -1 = end-of-file encountered while reading C> from LUNT @@ -23,7 +23,9 @@ C> from LUNT C> C> Program history log: -C> - 2007-01-19 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2007-01-19 | J. Ator | Original author | C> SUBROUTINE GETNTBE ( LUNT, IFXYN, LINE, IRET ) diff --git a/src/gettagpr.f b/src/gettagpr.f index ca7d6046..0dbb3b92 100644 --- a/src/gettagpr.f +++ b/src/gettagpr.f @@ -9,19 +9,19 @@ C> @author J. Ator C> @date 2012-09-12 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for -C> BUFR file -C> @param[in] TAGCH - character*(*): Table B or Table D mnemonic -C> @param[in] NTAGCH - integer: Ordinal occurrence of TAGCH for -C> which the parent Table D mnemonic is to be -C> returned, counting from the beginning of the -C> overall subset definition -C> @param[out] TAGPR - character*(*): Table D mnemonic corresponding -C> to parent sequence of (NTAGCH)th occurrence -C> of TAGCH -C> @param[out] IRET - integer: return code -C> - 0 = normal return -C> - -1 = TAGPR could not be found, or some +C> @param[in] LUNIT -- integer: Fortran logical unit number for +C> BUFR file +C> @param[in] TAGCH -- character*(*): Table B or Table D mnemonic +C> @param[in] NTAGCH -- integer: Ordinal occurrence of TAGCH for +C> which the parent Table D mnemonic is to be +C> returned, counting from the beginning of the +C> overall subset definition +C> @param[out] TAGPR -- character*(*): Table D mnemonic corresponding +C> to parent sequence of (NTAGCH)th occurrence +C> of TAGCH +C> @param[out] IRET -- integer: return code +C> - 0 = normal return +C> - -1 = TAGPR could not be found, or some C> other error occurred C> C>
A data subset must already be in scope within the BUFRLIB @@ -32,9 +32,11 @@ C> (when writing BUFR data subsets). C> C> Program history log: -C> - 2012-09-12 J. Ator -- Original author -C> - 2014-10-02 J. Ator -- Modified to use fstag() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2012-09-12 | J. Ator | Original author | +C> | 2014-10-02 | J. Ator | Modified to use fstag() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE GETTAGPR ( LUNIT, TAGCH, NTAGCH, TAGPR, IRET ) diff --git a/src/gettagre.f b/src/gettagre.f index 30adeaa1..74385db9 100644 --- a/src/gettagre.f +++ b/src/gettagre.f @@ -10,22 +10,22 @@ C> @author J. Ator C> @date 2016-06-07 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for -C> BUFR file -C> @param[in] TAGI - character*(*): Table B mnemonic -C> @param[in] NTAGI - integer: Ordinal occurrence of TAGI for -C> which TAGRE is to be returned, counting from -C> the beginning of the overall subset definition -C> @param[out] TAGRE - character*(*): Table B mnemonic referenced by -C> TAGI via an internal bitmap -C> @param[out] NTAGRE - integer: Ordinal occurrence of TAGRE -C> referenced by (NTAGI)th occurrence of TAGI, -C> counting from the beginning of the overall -C> subset definition -C> @param[out] IRET - integer: return code -C> - 0 = normal return -C> - -1 = TAGRE could not be found, or some -C> other error occurred +C> @param[in] LUNIT -- integer: Fortran logical unit number for +C> BUFR file +C> @param[in] TAGI -- character*(*): Table B mnemonic +C> @param[in] NTAGI -- integer: Ordinal occurrence of TAGI for +C> which TAGRE is to be returned, counting from +C> the beginning of the overall subset definition +C> @param[out] TAGRE -- character*(*): Table B mnemonic referenced by +C> TAGI via an internal bitmap +C> @param[out] NTAGRE -- integer: Ordinal occurrence of TAGRE +C> referenced by (NTAGI)th occurrence of TAGI, +C> counting from the beginning of the overall +C> subset definition +C> @param[out] IRET -- integer: return code +C> - 0 = normal return +C> - -1 = TAGRE could not be found, or some +C> other error occurred C> C>
A data subset must already be in scope within the BUFRLIB C> internal arrays for LUNIT, either via a previous call to one @@ -35,7 +35,9 @@ C> (when writing BUFR data subsets). C> C> Program history log: -C> - 2016-06-07 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2016-06-07 | J. Ator | Original author | C> SUBROUTINE GETTAGRE ( LUNIT, TAGI, NTAGI, TAGRE, NTAGRE, IRET ) diff --git a/src/gettbh.f b/src/gettbh.f index 1da74f8e..5c877a99 100644 --- a/src/gettbh.f +++ b/src/gettbh.f @@ -9,31 +9,33 @@ C> @author J. Ator C> @date 2007-01-19 C> -C> @param[in] LUNS - integer: Fortran logical unit number for +C> @param[in] LUNS -- integer: Fortran logical unit number for C> ASCII file containing standard table C> information -C> @param[in] LUNL - integer: Fortran logical unit number for +C> @param[in] LUNL -- integer: Fortran logical unit number for C> ASCII file containing local table C> information -C> @param[out] TAB - character: Type of table +C> @param[out] TAB -- character: Type of table C> - 'B' = Table B C> - 'D' = Table D C> - 'F' = Code/Flag table -C> @param[out] IMT - integer: Master table +C> @param[out] IMT -- integer: Master table C> - This value is read from both ASCII C> files and must be identical between them. -C> @param[out] IMTV - integer: Version number of master table +C> @param[out] IMTV -- integer: Version number of master table C> - This value is read from the standard ASCII C> file. -C> @param[out] IOGCE - integer: Originating center +C> @param[out] IOGCE -- integer: Originating center C> - This value is read from the local ASCII C> file. -C> @param[out] ILTV - integer: Version number of local table +C> @param[out] ILTV -- integer: Version number of local table C> - This value is read from the local ASCII C> file. C> C> Program history log: -C> - 2007-01-19 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2007-01-19 | J. Ator | Original author | C> SUBROUTINE GETTBH ( LUNS, LUNL, TAB, IMT, IMTV, IOGCE, ILTV ) diff --git a/src/getvalnb.f b/src/getvalnb.f index 211e47f6..5ffd0684 100644 --- a/src/getvalnb.f +++ b/src/getvalnb.f @@ -15,30 +15,30 @@ C> @author J. Ator C> @date 2012-09-12 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] TAGPV - character*(*): Pivot mnemonic; the subroutine +C> @param[in] TAGPV -- character*(*): Pivot mnemonic; the subroutine C> will first search for the (NTAGPV)th occurrence C> of this mnemonic, counting from the beginning C> of the overall subset definition -C> @param[in] NTAGPV - integer: Ordinal occurrence of TAGPV to search for, +C> @param[in] NTAGPV -- integer: Ordinal occurrence of TAGPV to search for, C> counting from the beginning of the overall C> subset definition -C> @param[in] TAGNB - character*(*): Nearby mnemonic; assuming TAGPV is +C> @param[in] TAGNB -- character*(*): Nearby mnemonic; assuming TAGPV is C> successfully found, the subroutine will then search C> nearby for the (NTAGNB)th occurrence of TAGNB and C> return the corresponding value -C> @param[in] NTAGNB - integer: Ordinal occurrence of TAGNB to search for, +C> @param[in] NTAGNB -- integer: Ordinal occurrence of TAGNB to search for, C> counting from the location of TAGPV within the C> overall subset definition. If NTAGNB is positive, C> the subroutine will search in a forward direction C> from the location of TAGPV; otherwise, if NTAGNB is C> negative, it will instead search in a backwards C> direction from the location of TAGPV. -C> @returns getvalnb - real*8: Value corresponding to (NTAGNB)th occurrence -C> of TAGNB. If for any reason this value cannot be -C> located, then the current placeholder value for -C> "missing" data will be returned instead. +C> @returns getvalnb -- real*8: Value corresponding to (NTAGNB)th occurrence +C> of TAGNB. If for any reason this value cannot be +C> located, then the current placeholder value for +C> "missing" data will be returned instead. C> C>
The current placeholder value for "missing" data can be determined C> via a separate call to function getbmiss(). @@ -48,9 +48,11 @@ C> [subset-reading subroutines](@ref hierarchy). C> C> Program history log: -C> - 2012-09-12 J. Ator -- Original author -C> - 2014-10-02 J. Ator -- Modified to use fstag() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2012-09-12 | J. Ator | Original author | +C> | 2014-10-02 | J. Ator | Modified to use fstag() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> REAL*8 FUNCTION GETVALNB ( LUNIT, TAGPV, NTAGPV, TAGNB, NTAGNB ) diff --git a/src/hold4wlc.f b/src/hold4wlc.f index 69dba2b7..f612224c 100644 --- a/src/hold4wlc.f +++ b/src/hold4wlc.f @@ -26,9 +26,9 @@ C> @author J. Ator C> @date 2014-02-05 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file -C> @param[in] CHR - character*(*): Value corresponding to STR -C> @param[in] STR - character*(*): Table B mnemonic of long character +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file +C> @param[in] CHR -- character*(*): Value corresponding to STR +C> @param[in] STR -- character*(*): Table B mnemonic of long character C> string to be written, possibly supplemented C> with an ordinal occurrence notation C> @@ -55,7 +55,9 @@ C> for the data subset. C> C> Program history log: -C> - 2014-02-05 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2014-02-05 | J. Ator | Original author | C> SUBROUTINE HOLD4WLC(LUNIT,CHR,STR) diff --git a/src/i4dy.f b/src/i4dy.f index c198b1a0..672df541 100644 --- a/src/i4dy.f +++ b/src/i4dy.f @@ -15,22 +15,18 @@ C> @author J. Woollen C> @date 1998-07-08 C> -C> @param[in] IDATE - integer: Date-time in format of either YYMMDDHH -C> (2-digit year) or YYYYMMDDHH (4-digit year) -C> @returns i4dy - integer: Date-time in format of YYYYMMDDHH (4-digit -C> year) +C> @param[in] IDATE -- integer: Date-time in format of either YYMMDDHH +C> (2-digit year) or YYYYMMDDHH (4-digit year) +C> @returns i4dy -- integer: Date-time in format of YYYYMMDDHH (4-digit +C> year) C> C> Program History Log: -C> - 1998-07-08 J. Woollen -- Original author -C> - 1998-12-14 J. Woollen -- Modified to use 20 as the 2-digit year for -C> windowing to a 4-digit year (00-20 ==> add -C> 2000; 21-99 ==> ADD 1900) -C> - 2003-11-04 D. Keyser -- Modified date calculations to no longer use -C> floating point arithmetic since this can -C> lead to round off error and an improper -C> resulting date on some machines -C> - 2018-06-29 J. Ator -- Changed 2-digit->4-digit year window range -C> to (00-40 ==> add 2000; 41-99 ==> add 1900) +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1998-07-08 | J. Woollen | Original author | +C> | 1998-12-14 | J. Woollen | Modified to use 20 as the 2-digit year for windowing to a 4-digit year (00-20 ==> add 2000; 21-99 ==> add 1900) | +C> | 2003-11-04 | D. Keyser | Modified date calculations to stop using floating point arithmetic since this can lead to round off error and an improper result on some machines | +C> | 2018-06-29 | J. Ator | Changed 2-digit->4-digit year window range to (00-40 ==> add 2000; 41-99 ==> add 1900) | C> FUNCTION I4DY(IDATE) diff --git a/src/ibfms.f b/src/ibfms.f index b6a4b80f..af6821f7 100644 --- a/src/ibfms.f +++ b/src/ibfms.f @@ -9,9 +9,9 @@ C> @author J. Ator C> @date 2007-01-19 C> -C> @param[in] R8VAL - real*8: Data value to be tested +C> @param[in] R8VAL -- real*8: Data value to be tested C> -C> @returns ibfms - integer: +C> @returns ibfms -- integer: C> - 0 = R8VAL is not "missing" C> - 1 = R8VAL is "missing" C> @@ -29,12 +29,11 @@ C> written in C as well as in Fortran. C> C> Program history log: -C> - 2007-01-19 J. Ator -- Original author -C> - 2009-03-23 J. Ator -- Increased value of BDIFD for better -C> test accuracy -C> - 2012-10-05 J. Ator -- Modified to reflect the fact that the -C> "missing" value is now configurable by -C> users (may be something other than 10E10) +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2007-01-19 | J. Ator | Original author | +C> | 2009-03-23 | J. Ator | Increased value of BDIFD for better test accuracy | +C> | 2012-10-05 | J. Ator | Modified to reflect the fact that the "missing" value is now configurable by users (may be something other than 10E10) | C> INTEGER FUNCTION IBFMS ( R8VAL ) diff --git a/src/icbfms.f b/src/icbfms.f index 6411b7ec..88c2261f 100644 --- a/src/icbfms.f +++ b/src/icbfms.f @@ -9,13 +9,12 @@ C> @author J. Ator C> @date 2012-06-07 C> -C> @param[in] STR - character*(*): String -C> @param[in] LSTR - integer: Length of string, i.e. number of -C> characters within STR to be tested -C> -C> @returns icbfms - integer: -C> - 0 = STR is not "missing" -C> - 1 = STR is "missing" +C> @param[in] STR -- character*(*): String +C> @param[in] LSTR -- integer: Length of string, i.e. number of +C> characters within STR to be tested +C> @returns icbfms -- integer: +C> - 0 = STR is not "missing" +C> - 1 = STR is "missing" C> C> @remarks C> - The use of an integer return code allows this function @@ -23,10 +22,11 @@ C> written in C as well as in Fortran. C> C> Program history log: -C> - 2012-06-07 J. Ator -- Original author -C> - 2015-03-10 J. Woollen -- Improved logic for testing legacy cases -C> prior to BUFRLIB V10.2.0 -C> - 2016-02-12 J. Ator -- Modified for CRAYFTN compatibility +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2012-06-07 | J. Ator | Original author | +C> | 2015-03-10 | J. Woollen | Improved logic for testing legacy cases prior to BUFRLIB V10.2.0 | +C> | 2016-02-12 | J. Ator | Modified for CRAYFTN compatibility | C> INTEGER FUNCTION ICBFMS ( STR, LSTR ) diff --git a/src/icmpdx.f b/src/icmpdx.f index 74a5eb95..7d0d6cbc 100644 --- a/src/icmpdx.f +++ b/src/icmpdx.f @@ -13,11 +13,11 @@ C> @author J. Ator C> @date 2009-06-18 C> -C> @param[in] LUD - integer: Internal I/O stream index associated +C> @param[in] LUD -- integer: Internal I/O stream index associated C> with first BUFR file -C> @param[in] LUN - integer: Internal I/O stream index associated +C> @param[in] LUN -- integer: Internal I/O stream index associated C> with second BUFR file -C> @returns icmpdx - integer: Flag indicating whether the +C> @returns icmpdx -- integer: Flag indicating whether the C> BUFR file associated with LUD and the BUFR C> file associated with LUN have the same DX C> BUFR table information @@ -25,8 +25,10 @@ C> - 1 = Yes C> C> Program history log: -C> - 2009-06-18 J. Ator -- Original author -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-06-18 | J. Ator | Original author | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> INTEGER FUNCTION ICMPDX(LUD,LUN) diff --git a/src/icopysb.f b/src/icopysb.f index 90e13be1..cf65971e 100644 --- a/src/icopysb.f +++ b/src/icopysb.f @@ -7,11 +7,11 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Fortran logical unit number for +C> @param[in] LUNIN -- integer: Fortran logical unit number for C> source BUFR file -C> @param[in] LUNOT - integer: Fortran logical unit number for +C> @param[in] LUNOT -- integer: Fortran logical unit number for C> target BUFR file -C> @returns icopysb - integer: return code +C> @returns icopysb -- integer: return code C> - 0 = normal return C> - -1 = a BUFR data subset could not be C> read from the BUFR message in @@ -22,9 +22,10 @@ C> used as the target variable within an iterative program loop. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2002-05-14 J. Woollen -- Changed from an entry point to increase -C> portability to other platforms +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2002-05-14 | J. Woollen | Changed from an entry point to increase portability to other platforms | C> FUNCTION ICOPYSB(LUNIN,LUNOT) diff --git a/src/idn30.f b/src/idn30.f index 1d1b08ec..0e48e803 100644 --- a/src/idn30.f +++ b/src/idn30.f @@ -8,22 +8,21 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] ADN30 - character*(*): FXY value -C> @param[in] L30 - integer: Length of ADN30; can be either 5 or 6 -C> characters -C> @returns idn30 - integer: Bit-wise representation of FXY value +C> @param[in] ADN30 -- character*(*): FXY value +C> @param[in] L30 -- integer: Length of ADN30; can be either 5 or 6 +C> characters +C> @returns idn30 -- integer: Bit-wise representation of FXY value C> C> @remarks C> - This function is the logical inverse of function adn30(). C> C> Program History Log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to CRAY library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine bort() -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added -C> history documentation +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to CRAY library routine "ABORT" with call to new internal BUFRLIB routine bort() | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added history documentation | C> FUNCTION IDN30(ADN30,L30) diff --git a/src/idxmsg.f b/src/idxmsg.f index 7c427941..033d2d65 100644 --- a/src/idxmsg.f +++ b/src/idxmsg.f @@ -9,14 +9,16 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] MESG - integer(*): BUFR message -C> @returns idxmsg - integer: Flag indicating whether MESG +C> @param[in] MESG -- integer(*): BUFR message +C> @returns idxmsg -- integer: Flag indicating whether MESG C> contains DX BUFR tables information: C> - 0 = No C> - 1 = Yes C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | C> FUNCTION IDXMSG( MESG ) diff --git a/src/ifbget.f b/src/ifbget.f index fabfc752..94c49500 100644 --- a/src/ifbget.f +++ b/src/ifbget.f @@ -11,23 +11,21 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for -C> BUFR file -C> @returns ifbget - integer: -C> - 0 = there is at least one more data subset -C> to be read from the BUFR message -C> - -1 = there are no more data subsets -C> to be read from the BUFR message +C> @param[in] LUNIT -- integer: Fortran logical unit number for +C> BUFR file +C> @returns ifbget -- integer: +C> - 0 = there is at least one more data subset +C> to be read from the BUFR message +C> - -1 = there are no more data subsets +C> to be read from the BUFR message C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 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) | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> FUNCTION IFBGET(LUNIT) diff --git a/src/ifxy.f b/src/ifxy.f index 686da4a8..204bcbde 100644 --- a/src/ifxy.f +++ b/src/ifxy.f @@ -8,8 +8,8 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] ADSC - character*6: FXY value -C> @returns ifxy - integer: Bit-wise representation of FXY value +C> @param[in] ADSC -- character*6: FXY value +C> @returns ifxy -- integer: Bit-wise representation of FXY value C> C> @remarks C> Per the [official WMO BUFR regulations](@ref manual), an FXY value @@ -32,11 +32,12 @@ C> = 16150 C> C> Program History Log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added -C> history documentation +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added history documentation | C> FUNCTION IFXY(ADSC) diff --git a/src/igetdate.f b/src/igetdate.f index d5c3f881..2b4c1a67 100644 --- a/src/igetdate.f +++ b/src/igetdate.f @@ -10,14 +10,14 @@ C> @author J. Ator C> @date 2005-11-29 C> -C> @param[in] MBAY - integer(*): BUFR message -C> @param[out] IYR - integer: Year stored within Section 1 of MBAY, +C> @param[in] MBAY -- integer(*): BUFR message +C> @param[out] IYR -- integer: Year stored within Section 1 of MBAY, C> in format of either YY or YYYY, depending on C> the most recent call to subroutine datelen() -C> @param[out] IMO - integer: Month stored within Section 1 of MBAY -C> @param[out] IDY - integer: Day stored within Section 1 of MBAY -C> @param[out] IHR - integer: Hour stored within Section 1 of MBAY -C> @returns igetdate - integer: Date-time stored within Section 1 +C> @param[out] IMO -- integer: Month stored within Section 1 of MBAY +C> @param[out] IDY -- integer: Day stored within Section 1 of MBAY +C> @param[out] IHR -- integer: Hour stored within Section 1 of MBAY +C> @returns igetdate -- integer: Date-time stored within Section 1 C> of MBAY, in format of either YYMMDDHH or C> YYYYMMDDHH, depending on the most C> recent call to subroutine datelen() @@ -25,6 +25,11 @@ C> @remarks C> - The start of the BUFR message (i.e. the string 'BUFR') must be C> aligned on the first 4 bytes of MBAY. +C> +C> Program history log: +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-11-29 | J. Ator | Original author | C> FUNCTION IGETDATE(MBAY,IYR,IMO,IDY,IHR) diff --git a/src/igetmxby.f b/src/igetmxby.f index e7725a5f..334ee49f 100644 --- a/src/igetmxby.f +++ b/src/igetmxby.f @@ -8,7 +8,7 @@ C> @author J. Ator C> @date 2016-06-27 C> -C> @returns igetmxby - integer: Maximum length of a BUFR message +C> @returns igetmxby -- integer: Maximum length of a BUFR message C> that can be written to an output file by C> the BUFRLIB software C> @@ -16,7 +16,9 @@ C> separate call to subroutine maxout(). C> C> Program history log: -C> - 2016-06-27 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2016-06-27 | J. Ator | Original author | C> INTEGER FUNCTION IGETMXBY() diff --git a/src/igetntbi.f b/src/igetntbi.f index 6fcb84b8..371fbae8 100644 --- a/src/igetntbi.f +++ b/src/igetntbi.f @@ -8,19 +8,21 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] LUN - integer: Internal I/O stream index associated +C> @param[in] LUN -- integer: Internal I/O stream index associated C> with BUFR file -C> @param[in] CTB - character: Type of internal DX BUFR table for +C> @param[in] CTB -- character: Type of internal DX BUFR table for C> which to return the next available index C> - 'A' = Table A C> - 'B' = Table B C> - 'D' = Table D -C> @returns igetntbi - integer: Next available index for storing an +C> @returns igetntbi -- integer: Next available index for storing an C> entry within CTB C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> FUNCTION IGETNTBI ( LUN, CTB ) diff --git a/src/igetntbl.f b/src/igetntbl.f index 129339df..5dd29b6c 100644 --- a/src/igetntbl.f +++ b/src/igetntbl.f @@ -9,11 +9,11 @@ C> @author J. Ator C> @date 2007-01-19 C> -C> @param[in] LUNT - integer: Fortran logical unit number for +C> @param[in] LUNT -- integer: Fortran logical unit number for C> ASCII file containing table information -C> @param[out] LINE - character*(*): Next non-blank, non-comment line +C> @param[out] LINE -- character*(*): Next non-blank, non-comment line C> that was read from LUNT -C> @returns igetntbl - integer: return code +C> @returns igetntbl -- integer: return code C> - 0 = normal return C> - -1 = end-of-file encountered while reading C> from LUNT @@ -21,7 +21,9 @@ C> from LUNT C> C> Program history log: -C> - 2007-01-19 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2007-01-19 | J. Ator | Original author | C> FUNCTION IGETNTBL ( LUNT, LINE ) diff --git a/src/igetprm.f b/src/igetprm.f index b1ff382c..50e455e2 100644 --- a/src/igetprm.f +++ b/src/igetprm.f @@ -8,75 +8,77 @@ C> @author J. Ator C> @date 2014-12-04 C> -C> @param[in] CPRMNM - character*(*): Parameter -C> - 'MXMSGL' = Maximum length (in bytes) of a BUFR -C> message -C> - 'MAXSS' = Maximum number of data values in an -C> uncompressed BUFR subset -C> - 'MXCDV' = Maximum number of data values that -C> can be written into a compressed BUFR -C> subset -C> - 'MXLCC' = Maximum length (in bytes) of a -C> character string that can be written -C> into a compressed BUFR subset -C> - 'MXCSB' = Maximum number of subsets that can be -C> written into a compressed BUFR -C> message -C> - 'NFILES' = Maximum number of BUFR files that can -C> be accessed for reading or writing at -C> any one time -C> - 'MAXTBA' = Maximum number of entries in internal -C> BUFR Table A per BUFR file -C> - 'MAXTBB' = Maximum number of entries in internal -C> BUFR Table B per BUFR file -C> - 'MAXTBD' = Maximum number of entries in internal -C> BUFR Table D per BUFR file -C> - 'MAXMEM' = Maximum number of bytes that can be -C> used to store BUFR messages in -C> internal memory -C> - 'MAXMSG' = Maximum number of BUFR messages that -C> can be stored in internal memory -C> - 'MXDXTS' = Maximum number of dictionary tables -C> that can be stored for use with BUFR -C> messages in internal memory -C> - 'MXMTBB' = Maximum number of master Table B -C> entries -C> - 'MXMTBD' = Maximum number of master Table D -C> entries -C> - 'MXMTBF' = Maximum number of master Code/Flag -C> entries -C> - 'MAXCD' = Maximum number of child descriptors -C> in a Table D descriptor sequence -C> definition -C> - 'MAXJL' = Maximum number of entries in the -C> internal jump/link table -C> - 'MXS01V' = Maximum number of default Section 0 -C> or Section 1 values that can be -C> overwritten within an output BUFR -C> message -C> - 'MXBTM' = Maximum number of bitmaps that can be -C> stored internally for a BUFR subset -C> - 'MXBTMSE' = Maximum number of entries that can be -C> set within a bitmap -C> - 'MXTAMC' = Maximum number of Table A mnemonics -C> in the internal jump/link table which -C> contain at least one Table C operator -C> with XX >= 21 in their subset definition -C> - 'MXTCO' = Maximum number of Table C operators -C> with XX >= 21) in the subset definition -C> of a Table A mnemonic -C> - 'MXNRV' = Maximum number of 2-03 reference -C> values in the internal jump/link -C> table -C> - 'MXRST' = Maximum number of long character -C> strings that can be read from a -C> compressed subset +C> @param[in] CPRMNM -- character*(*): Parameter +C> - 'MXMSGL' = Maximum length (in bytes) of a BUFR +C> message +C> - 'MAXSS' = Maximum number of data values in an +C> uncompressed BUFR subset +C> - 'MXCDV' = Maximum number of data values that +C> can be written into a compressed BUFR +C> subset +C> - 'MXLCC' = Maximum length (in bytes) of a +C> character string that can be written +C> into a compressed BUFR subset +C> - 'MXCSB' = Maximum number of subsets that can be +C> written into a compressed BUFR +C> message +C> - 'NFILES' = Maximum number of BUFR files that can +C> be accessed for reading or writing at +C> any one time +C> - 'MAXTBA' = Maximum number of entries in internal +C> BUFR Table A per BUFR file +C> - 'MAXTBB' = Maximum number of entries in internal +C> BUFR Table B per BUFR file +C> - 'MAXTBD' = Maximum number of entries in internal +C> BUFR Table D per BUFR file +C> - 'MAXMEM' = Maximum number of bytes that can be +C> used to store BUFR messages in +C> internal memory +C> - 'MAXMSG' = Maximum number of BUFR messages that +C> can be stored in internal memory +C> - 'MXDXTS' = Maximum number of dictionary tables +C> that can be stored for use with BUFR +C> messages in internal memory +C> - 'MXMTBB' = Maximum number of master Table B +C> entries +C> - 'MXMTBD' = Maximum number of master Table D +C> entries +C> - 'MXMTBF' = Maximum number of master Code/Flag +C> entries +C> - 'MAXCD' = Maximum number of child descriptors +C> in a Table D descriptor sequence +C> definition +C> - 'MAXJL' = Maximum number of entries in the +C> internal jump/link table +C> - 'MXS01V' = Maximum number of default Section 0 +C> or Section 1 values that can be +C> overwritten within an output BUFR +C> message +C> - 'MXBTM' = Maximum number of bitmaps that can be +C> stored internally for a BUFR subset +C> - 'MXBTMSE' = Maximum number of entries that can be +C> set within a bitmap +C> - 'MXTAMC' = Maximum number of Table A mnemonics +C> in the internal jump/link table which +C> contain at least one Table C operator +C> with XX >= 21 in their subset definition +C> - 'MXTCO' = Maximum number of Table C operators +C> with XX >= 21) in the subset definition +C> of a Table A mnemonic +C> - 'MXNRV' = Maximum number of 2-03 reference +C> values in the internal jump/link +C> table +C> - 'MXRST' = Maximum number of long character +C> strings that can be read from a +C> compressed subset C> -C> @returns igetprm - integer: Value of CPRMNM +C> @returns igetprm -- integer: Value of CPRMNM C> - -1 = Unknown CPRMNM C> C> Program history log: -C> - 2014-12-04 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2014-12-04 | J. Ator | Original author | C> INTEGER FUNCTION IGETPRM ( CPRMNM ) diff --git a/src/igetsc.f b/src/igetsc.f index 2085a1ef..d63ef7a5 100644 --- a/src/igetsc.f +++ b/src/igetsc.f @@ -10,10 +10,10 @@ C> @author J. Ator C> @date 2010-05-11 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @returns igetsc - integer: -C> - 0 = no problems were encountered +C> @returns igetsc -- integer: +C> - 0 = no problems were encountered C> C> @remarks C> - Once subroutine openbf() has been called for LUNIT, this function @@ -23,8 +23,10 @@ C> program. C> C> Program history log: -C> - 2010-05-11 J. Ator -- Original author -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2010-05-11 | J. Ator | Original author | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> FUNCTION IGETSC(LUNIT) diff --git a/src/imrkopr.f b/src/imrkopr.f index afb6fe2b..b56c37ac 100644 --- a/src/imrkopr.f +++ b/src/imrkopr.f @@ -7,14 +7,16 @@ C> @author J. Ator C> @date 2016-05-04 C> -C> @param[in] NEMO - character*(*): Mnemonic -C> @returns iokoper - integer: Flag indicating whether NEMO is a +C> @param[in] NEMO -- character*(*): Mnemonic +C> @returns iokoper -- integer: Flag indicating whether NEMO is a C> Table C marker operator C> - 0 = No C> - 1 = Yes C> C> Program history log: -C> - 2016-05-04 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2016-05-04 | J. Ator | Original author | C> INTEGER FUNCTION IMRKOPR(NEMO) diff --git a/src/inittbf.c b/src/inittbf.c index dfe30d3a..610da9c3 100644 --- a/src/inittbf.c +++ b/src/inittbf.c @@ -15,7 +15,9 @@ * @date 2017-11-03 * * Program history log: - * - 2017-11-03 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2017-11-03 | J. Ator | Original author | */ void inittbf( void ) { diff --git a/src/iok2cpy.f b/src/iok2cpy.f index 045f4505..c946f6d4 100644 --- a/src/iok2cpy.f +++ b/src/iok2cpy.f @@ -17,11 +17,11 @@ C> @author J. Ator C> @date 2009-06-26 C> -C> @param[in] LUI - integer: Internal I/O stream index associated +C> @param[in] LUI -- integer: Internal I/O stream index associated C> with source BUFR file -C> @param[in] LUO - integer: Internal I/O stream index associated +C> @param[in] LUO -- integer: Internal I/O stream index associated C> with target BUFR file -C> @returns iok2cpy - integer: Flag indicating whether a BUFR +C> @returns iok2cpy -- integer: Flag indicating whether a BUFR C> message or data subset can be copied from the C> BUFR file associated with LUI to the BUFR file C> associated with LUO @@ -29,8 +29,10 @@ C> - 1 = Yes C> C> Program history log: -C> - 2009-06-26 J. Ator -- Original author -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-06-26 | J. Ator | Original author | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> INTEGER FUNCTION IOK2CPY(LUI,LUO) diff --git a/src/iokoper.f b/src/iokoper.f index 0cd4c416..0bda2757 100644 --- a/src/iokoper.f +++ b/src/iokoper.f @@ -7,17 +7,18 @@ C> @author J. Ator C> @date 2015-03-06 C> -C> @param[in] NEMO - character*(*): Mnemonic -C> @returns iokoper - integer: Flag indicating whether NEMO is a +C> @param[in] NEMO -- character*(*): Mnemonic +C> @returns iokoper -- integer: Flag indicating whether NEMO is a C> Table C operator supported by the BUFRLIB C> software C> - 0 = No C> - 1 = Yes C> C> Program history log: -C> - 2015-03-06 J. Ator -- Original author -C> - 2016-05-04 J. Ator -- Use imrkopr() and allow additional -C> operators +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2015-03-06 | J. Ator | Original author | +C> | 2016-05-04 | J. Ator | Use imrkopr() and allow additional operators | C> INTEGER FUNCTION IOKOPER(NEMO) diff --git a/src/ipkm.f b/src/ipkm.f index 926a2d45..11d9ae57 100644 --- a/src/ipkm.f +++ b/src/ipkm.f @@ -8,23 +8,21 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] N - integer: Value to be encoded -C> @param[in] NBYT - integer: Number of bytes of CBAY (up to a +C> @param[in] N -- integer: Value to be encoded +C> @param[in] NBYT -- integer: Number of bytes of CBAY (up to a C> maximum of 8) within which to encode N -C> @param[out] CBAY - character*(*): String of length NBYT bytes +C> @param[out] CBAY -- character*(*): String of length NBYT bytes C> containing encoded integer N C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 2003-11-04 J. Woollen -- Modified to be endian-independent -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 2003-11-04 | J. Woollen | Modified to be endian-independent | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | C> SUBROUTINE IPKM(CBAY,NBYT,N) diff --git a/src/ireadmg.f b/src/ireadmg.f index a9f0d334..066a67a9 100644 --- a/src/ireadmg.f +++ b/src/ireadmg.f @@ -8,16 +8,16 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file -C> @param[out] SUBSET - character*8: Table A mnemonic for type of BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of BUFR C> message that was read C> (see [DX BUFR Tables](@ref dfbftab) C> for further information about Table A mnemonics) -C> @param[out] IDATE - integer: date-time stored within Section 1 of +C> @param[out] IDATE -- integer: date-time stored within Section 1 of C> BUFR message that was read, in format of either C> YYMMDDHH or YYYYMMDDHH, depending on the most C> recent call to subroutine datelen() -C> @returns ireadmg - integer: +C> @returns ireadmg -- integer: C> - 0 = new BUFR message was successfully C> read into internal arrays C> - -1 = there are no more BUFR messages in the @@ -28,17 +28,13 @@ C> used as the target variable within an iterative program loop. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1999-11-18 J. Woollen -- Added new function entry points ireadmm and -C> ireadibm -C> - 2002-05-14 J. Woollen -- Removed entry points icopysb, ireadft, -C> ireadibm, ireadmm, ireadns and ireadsb -C> (they became separate routines in the -C> BUFRLIB to increase portability to other -C> platforms) -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1999-11-18 | J. Woollen | Added new function entry points ireadmm and ireadibm | +C> | 2002-05-14 | J. Woollen | Removed entry points icopysb, ireadft, ireadibm, ireadmm, ireadns and ireadsb (they became separate routines in the BUFRLIB) | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added history documentation | C> FUNCTION IREADMG(LUNIT,SUBSET,IDATE) diff --git a/src/ireadmm.f b/src/ireadmm.f index 99c4e09d..f021e8cd 100644 --- a/src/ireadmm.f +++ b/src/ireadmm.f @@ -7,23 +7,23 @@ C> @author J. Woollen C> @date 1999-11-18 C> -C> @param[in,out] IMSG - integer: Message pointer within internal arrays -C> - On input, IMSG is the number of the BUFR -C> message to be read into scope for further -C> processing, counting from the beginning of -C> the internal arrays in memory -C> - On output, IMSG is incremented by one from -C> its input value -C> @param[out] SUBSET - character*8: Table A mnemonic for type of BUFR +C> @param[in,out] IMSG -- integer: Message pointer within internal arrays +C> - On input, IMSG is the number of the BUFR +C> message to be read into scope for further +C> processing, counting from the beginning of +C> the internal arrays in memory +C> - On output, IMSG is incremented by one from +C> its input value +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of BUFR C> message that was read into scope C> (see [DX BUFR Tables](@ref dfbftab) for C> further information about Table A mnemonics) -C> @param[out] IDATE - integer: Date-time stored within Section 1 of +C> @param[out] IDATE -- integer: Date-time stored within Section 1 of C> BUFR message that was read into scope, C> in format of either YYMMDDHH or YYYYMMDDHH, C> depending on the most C> recent call to subroutine datelen() -C> @returns ireadmm - integer: +C> @returns ireadmm -- integer: C> - 0 = new BUFR message was successfully C> read into scope C> - -1 = requested message number could not @@ -34,9 +34,10 @@ C> used as the target variable within an iterative program loop. C> C> Program history log: -C> - 1999-11-18 J. Woollen -- Original author -C> - 2002-05-14 J. Woollen -- Changed from an entry point to increase -C> portability to other platforms +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1999-11-18 | J. Woollen | Original author | +C> | 2002-05-14 | J. Woollen | Changed from an entry point to increase portability to other platforms | C> FUNCTION IREADMM(IMSG,SUBSET,IDATE) diff --git a/src/ireadmt.f b/src/ireadmt.f index c154c9e1..21c631bc 100644 --- a/src/ireadmt.f +++ b/src/ireadmt.f @@ -16,9 +16,9 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] LUN - integer: Internal I/O stream index associated +C> @param[in] LUN -- integer: Internal I/O stream index associated C> with BUFR file -C> @returns ireadmt - integer: Flag indicating whether new master +C> @returns ireadmt -- integer: Flag indicating whether new master C> BUFR tables needed to be read into internal C> memory: C> - 0 = No @@ -32,16 +32,12 @@ C> for opening and reading master BUFR table files. C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author -C> - 2014-11-25 J. Ator -- Add call to cpmstabs() for access to -C> master table information within C when -C> using dynamically-allocated arrays -C> - 2017-10-13 J. Ator -- Add functionality to check whether new -C> master tables need to be read (this -C> functionality was previously part of -C> subroutine reads3()) -C> - 2018-04-09 J. Ator -- Only read master B and D tables when -C> Section 3 is being used for decoding +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | +C> | 2014-11-25 | J. Ator | Add call to cpmstabs() for access to master table information within C when using dynamically-allocated arrays | +C> | 2017-10-13 | J. Ator | Add functionality to check whether new master tables need to be read (this functionality was previously part of subroutine reads3()) | +C> | 2018-04-09 | J. Ator | Only read master B and D tables when Section 3 is being used for decoding | C> INTEGER FUNCTION IREADMT ( LUN ) diff --git a/src/ireadns.f b/src/ireadns.f index 2c3a8cad..5a2e4f95 100644 --- a/src/ireadns.f +++ b/src/ireadns.f @@ -8,31 +8,32 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[out] SUBSET - character*8: Table A mnemonic for type of +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of C> data subset that was read C> (see [DX BUFR Tables](@ref dfbftab) C> for further information about Table A mnemonics) -C> @param[out] IDATE - integer: Date-time stored within Section 1 of +C> @param[out] IDATE -- integer: Date-time stored within Section 1 of C> BUFR message containing data subset that C> was read, in format of either C> YYMMDDHH or YYYYMMDDHH, depending on the most C> recent call to subroutine datelen() -C> @returns ireadns - integer: -C> - 0 = new BUFR data subset was successfully -C> read into internal arrays -C> - -1 = there are no more BUFR data subsets in -C> the file connected to logical unit LUNIT +C> @returns ireadns -- integer: +C> - 0 = new BUFR data subset was successfully +C> read into internal arrays +C> - -1 = there are no more BUFR data subsets in +C> the file connected to logical unit LUNIT C> C> @remarks C> - The use of this function allows the return code from readns() to be C> used as the target variable within an iterative program loop. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2002-05-14 J. Woollen -- Changed from an entry point to increase -C> portability to other platforms +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2002-05-14 | J. Woollen | Changed from an entry point to increase portability to other platforms | C> FUNCTION IREADNS(LUNIT,SUBSET,IDATE) diff --git a/src/ireadsb.f b/src/ireadsb.f index 6ad4244a..d78aba08 100644 --- a/src/ireadsb.f +++ b/src/ireadsb.f @@ -7,25 +7,25 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @returns ireadsb - integer: -C> - 0 = new BUFR data subset was successfully -C> read into internal arrays -C> - -1 = there are no more BUFR data subsets in -C> the BUFR message +C> @returns ireadsb -- integer: +C> - 0 = new BUFR data subset was successfully +C> read into internal arrays +C> - -1 = there are no more BUFR data subsets in +C> the BUFR message C> C> @remarks C> - The use of this function allows the return code from readsb() to be C> used as the target variable within an iterative program loop. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2002-05-14 J. Woollen -- Changed from an entry point to increase -C> portability to other platforms -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2002-05-14 | J. Woollen | Changed from an entry point to increase portability to other platforms | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation | C> FUNCTION IREADSB(LUNIT) diff --git a/src/isetprm.f b/src/isetprm.f index cbd6e141..7ea82165 100644 --- a/src/isetprm.f +++ b/src/isetprm.f @@ -18,82 +18,83 @@ C> @author J. Ator C> @date 2014-12-04 C> -C> @param[in] CPRMNM - character*(*): Parameter to be changed from its -C> internal default value -C> - 'MXMSGL' = Maximum length (in bytes) of a BUFR -C> message -C> - 'MAXSS' = Maximum number of data values in an -C> uncompressed BUFR subset -C> - 'MXCDV' = Maximum number of data values that -C> can be written into a compressed BUFR -C> subset -C> - 'MXLCC' = Maximum length (in bytes) of a -C> character string that can be written -C> into a compressed BUFR subset -C> - 'MXCSB' = Maximum number of subsets that can be -C> written into a compressed BUFR -C> message -C> - 'NFILES' = Maximum number of BUFR files that can -C> be accessed for reading or writing at -C> any one time -C> - 'MAXTBA' = Maximum number of entries in internal -C> BUFR Table A per BUFR file -C> - 'MAXTBB' = Maximum number of entries in internal -C> BUFR Table B per BUFR file -C> - 'MAXTBD' = Maximum number of entries in internal -C> BUFR Table D per BUFR file -C> - 'MAXMEM' = Maximum number of bytes that can be -C> used to store BUFR messages in -C> internal memory -C> - 'MAXMSG' = Maximum number of BUFR messages that -C> can be stored in internal memory -C> - 'MXDXTS' = Maximum number of dictionary tables -C> that can be stored for use with BUFR -C> messages in internal memory -C> - 'MXMTBB' = Maximum number of master Table B +C> @param[in] CPRMNM -- character*(*): Parameter to be changed from its +C> internal default value +C> - 'MXMSGL' = Maximum length (in bytes) of a BUFR +C> message +C> - 'MAXSS' = Maximum number of data values in an +C> uncompressed BUFR subset +C> - 'MXCDV' = Maximum number of data values that +C> can be written into a compressed BUFR +C> subset +C> - 'MXLCC' = Maximum length (in bytes) of a +C> character string that can be written +C> into a compressed BUFR subset +C> - 'MXCSB' = Maximum number of subsets that can be +C> written into a compressed BUFR +C> message +C> - 'NFILES' = Maximum number of BUFR files that can +C> be accessed for reading or writing at +C> any one time +C> - 'MAXTBA' = Maximum number of entries in internal +C> BUFR Table A per BUFR file +C> - 'MAXTBB' = Maximum number of entries in internal +C> BUFR Table B per BUFR file +C> - 'MAXTBD' = Maximum number of entries in internal +C> BUFR Table D per BUFR file +C> - 'MAXMEM' = Maximum number of bytes that can be +C> used to store BUFR messages in +C> internal memory +C> - 'MAXMSG' = Maximum number of BUFR messages that +C> can be stored in internal memory +C> - 'MXDXTS' = Maximum number of dictionary tables +C> that can be stored for use with BUFR +C> messages in internal memory +C> - 'MXMTBB' = Maximum number of master Table B +C> entries +C> - 'MXMTBD' = Maximum number of master Table D +C> entries +C> - 'MXMTBF' = Maximum number of master Code/Flag C> entries -C> - 'MXMTBD' = Maximum number of master Table D -C> entries -C> - 'MXMTBF' = Maximum number of master Code/Flag -C> entries -C> - 'MAXCD' = Maximum number of child descriptors -C> in a Table D descriptor sequence -C> definition -C> - 'MAXJL' = Maximum number of entries in the -C> internal jump/link table -C> - 'MXS01V' = Maximum number of default Section 0 -C> or Section 1 values that can be -C> overwritten within an output BUFR -C> message -C> - 'MXBTM' = Maximum number of bitmaps that can be -C> stored internally for a BUFR subset -C> - 'MXBTMSE' = Maximum number of entries that can -C> be set within a bitmap -C> - 'MXTAMC' = Maximum number of Table A mnemonics -C> in the internal jump/link table which -C> contain at least one Table C operator -C> with XX >= 21 in their subset definition -C> - 'MXTCO' = Maximum number of Table C operators -C> with XX >= 21 in the subset definition -C> of a Table A mnemonic -C> - 'MXNRV' = Maximum number of 2-03 reference -C> values in the internal jump/link -C> table -C> - 'MXRST' = Maximum number of long character -C> strings that can be read from a -C> compressed subset -C> @param[in] IPVAL - integer: Value to be set for CPRMNM -C> -C> @returns isetprm - integer: return code +C> - 'MAXCD' = Maximum number of child descriptors +C> in a Table D descriptor sequence +C> definition +C> - 'MAXJL' = Maximum number of entries in the +C> internal jump/link table +C> - 'MXS01V' = Maximum number of default Section 0 +C> or Section 1 values that can be +C> overwritten within an output BUFR +C> message +C> - 'MXBTM' = Maximum number of bitmaps that can be +C> stored internally for a BUFR subset +C> - 'MXBTMSE' = Maximum number of entries that can +C> be set within a bitmap +C> - 'MXTAMC' = Maximum number of Table A mnemonics +C> in the internal jump/link table which +C> contain at least one Table C operator +C> with XX >= 21 in their subset definition +C> - 'MXTCO' = Maximum number of Table C operators +C> with XX >= 21 in the subset definition +C> of a Table A mnemonic +C> - 'MXNRV' = Maximum number of 2-03 reference +C> values in the internal jump/link +C> table +C> - 'MXRST' = Maximum number of long character +C> strings that can be read from a +C> compressed subset +C> @param[in] IPVAL -- integer: Value to be set for CPRMNM +C> @returns isetprm -- integer: return code C> - 0 = normal return C> - -1 = Unknown CPRMNM C> C> Program history log: -C> - 2014-12-04 J. Ator -- Original author -C> - 2016-05-24 J. Ator -- Add MXNRV, MXBTM, MXBTMSE, MXTCO -C> - 2017-04-03 J. Ator -- Add MXTAMC -C> - 2017-05-22 J. Ator -- Add MXRST -C> - 2017-10-17 J. Ator -- Add MXMTBF +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2014-12-04 | J. Ator | Original author | +C> | 2016-05-24 | J. Ator | Add MXNRV, MXBTM, MXBTMSE, MXTCO | +C> | 2017-04-03 | J. Ator | Add MXTAMC | +C> | 2017-05-22 | J. Ator | Add MXRST | +C> | 2017-10-17 | J. Ator | Add MXMTBF | C> INTEGER FUNCTION ISETPRM ( CPRMNM, IPVAL ) diff --git a/src/ishrdx.f b/src/ishrdx.f index f15ec3b6..3a5a8da8 100644 --- a/src/ishrdx.f +++ b/src/ishrdx.f @@ -9,11 +9,11 @@ C> @author J. Ator C> @date 2009-06-18 C> -C> @param[in] LUD - integer: Internal I/O stream index associated +C> @param[in] LUD -- integer: Internal I/O stream index associated C> with first BUFR file -C> @param[in] LUN - integer: Internal I/O stream index associated +C> @param[in] LUN -- integer: Internal I/O stream index associated C> with second BUFR file -C> @returns ishrdx - integer: Flag indicating whether the same +C> @returns ishrdx -- integer: Flag indicating whether the same C> DX BUFR table is being shared between the C> BUFR file associated with LUD and the BUFR C> file associated with LUN @@ -21,8 +21,10 @@ C> - 1 = Yes C> C> Program history log: -C> - 2009-06-18 J. Ator -- Original author -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-06-18 | J. Ator | Original author | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> INTEGER FUNCTION ISHRDX(LUD,LUN) diff --git a/src/istdesc.f b/src/istdesc.f index 627dd774..6989db43 100644 --- a/src/istdesc.f +++ b/src/istdesc.f @@ -10,15 +10,17 @@ C> @author J. Ator C> @date 2004-08-18 C> -C> @param[in] IDN - integer: Bit-wise representation of FXY value for -C> descriptor -C> @returns istdesc - integer: Flag indicating whether IDN is a -C> WMO-standard descriptor: +C> @param[in] IDN -- integer: Bit-wise representation of FXY value for +C> descriptor +C> @returns istdesc -- integer: Flag indicating whether IDN is a +C> WMO-standard descriptor: C> - 0 = No C> - 1 = Yes C> C> Program history log: -C> - 2004-08-18 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2004-08-18 | J. Ator | Original author | C> FUNCTION ISTDESC( IDN ) diff --git a/src/iupbs01.f b/src/iupbs01.f index c9765241..82158782 100644 --- a/src/iupbs01.f +++ b/src/iupbs01.f @@ -16,8 +16,8 @@ C> @author J. Ator C> @date 2005-11-29 C> -C> @param[in] MBAY - integer(*): BUFR message -C> @param[in] S01MNEM - character*(*): Value to be read from +C> @param[in] MBAY -- integer(*): BUFR message +C> @param[in] S01MNEM -- character*(*): Value to be read from C> Section 0 or Section 1 of MBAY C> - 'LENM' = Length (in bytes) of BUFR message C> - 'LEN0' = Length (in bytes) of Section 0 @@ -45,7 +45,7 @@ C> - 'HOUR' = Hour C> - 'MINU' = Minute C> - 'SECO' = Second -C> @returns iupbs01 - integer: Value corresponding to S01MNEM +C> @returns iupbs01 -- integer: Value corresponding to S01MNEM C> - -1 = S01MNEM was invalid for the edition of BUFR C> message in MBAY, or some other error C> occurred @@ -65,9 +65,10 @@ C> be read from BUFR messages encoded using BUFR edition 4. C> C> Program history log: -C> - 2005-11-29 J. Ator -- Original author -C> - 2006-04-14 J. Ator -- Added options for 'YCEN' and 'CENT'; -C> restructured logic +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-11-29 | J. Ator | Original author | +C> | 2006-04-14 | J. Ator | Added options for 'YCEN' and 'CENT'; restructured logic | C> FUNCTION IUPBS01(MBAY,S01MNEM) diff --git a/src/iupbs3.f b/src/iupbs3.f index 48daa482..73c4131f 100644 --- a/src/iupbs3.f +++ b/src/iupbs3.f @@ -7,8 +7,8 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] MBAY - integer(*): BUFR message -C> @param[in] S3MNEM - character*(*): Value to be read from +C> @param[in] MBAY -- integer(*): BUFR message +C> @param[in] S3MNEM -- character*(*): Value to be read from C> Section 3 of MBAY C> - 'NSUB' = Number of data subsets C> - 'IOBS' = Flag indicating whether the @@ -19,7 +19,7 @@ C> message contains compressed data: C> - 0 = No C> - 1 = Yes -C> @returns iupbs3 - integer: Value corresponding to S3MNEM +C> @returns iupbs3 -- integer: Value corresponding to S3MNEM C> - -1 = S3MNEM was invalid C> C> @remarks @@ -27,7 +27,9 @@ C> aligned on the first 4 bytes of MBAY. C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | C> FUNCTION IUPBS3(MBAY,S3MNEM) diff --git a/src/iupvs01.f b/src/iupvs01.f index fcc4ac6e..bcfe65c5 100644 --- a/src/iupvs01.f +++ b/src/iupvs01.f @@ -16,9 +16,9 @@ C> @author J. Ator C> @date 2005-11-29 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] S01MNEM - character*(*): Value to be read from +C> @param[in] S01MNEM -- character*(*): Value to be read from C> Section 0 or Section 1 of BUFR message in C> internal arrays for LUNIT C> - 'LENM' = Length (in bytes) of BUFR message @@ -47,7 +47,7 @@ C> - 'HOUR' = Hour C> - 'MINU' = Minute C> - 'SECO' = Second -C> @returns iupvs01 - integer: Value corresponding to S01MNEM +C> @returns iupvs01 -- integer: Value corresponding to S01MNEM C> - -1 = S01MNEM was invalid for the edition of BUFR C> message in internal arrays for LUNIT, or some C> other error occurred @@ -65,8 +65,10 @@ C> be read from BUFR messages encoded using BUFR edition 4. C> C> Program history log: -C> - 2005-11-29 J. Ator -- Original author -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-11-29 | J. Ator | Original author | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> FUNCTION IUPVS01(LUNIT,S01MNEM) diff --git a/src/jstnum.f b/src/jstnum.f index c4b95838..4f8d8e50 100644 --- a/src/jstnum.f +++ b/src/jstnum.f @@ -11,25 +11,24 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in,out] STR - character*(*): String -C> @param[out] SIGN - character*1: Sign of encoded integer value -C> - '+' = positive value -C> - '-' = negative value -C> @param[out] IRET - integer: return code -C> - 0 = normal return -C> - -1 = input string contained non-blank -C> characters which were also non-numeric +C> @param[in,out] STR -- character*(*): String +C> @param[out] SIGN -- character*1: Sign of encoded integer value +C> - '+' = positive value +C> - '-' = negative value +C> @param[out] IRET -- integer: return code +C> - 0 = normal return +C> - -1 = input string contained non-blank +C> characters which were also non-numeric C> C> Program History Log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> ABORT with call to new internal routine -C> bort() -C> - 2002-05-14 J. Woollen -- Changed from an entry point to increase -C> portability to other platforms -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2021-09-30 J. Ator -- Use Fortran intrinsic adjustl +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 2002-05-14 | J. Woollen | Changed from an entry point to increase portability to other platforms | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2021-09-30 | J. Ator | Use Fortran intrinsic adjustl | C> SUBROUTINE JSTNUM(STR,SIGN,IRET) diff --git a/src/lcmgdf.f b/src/lcmgdf.f index 7e5377b1..0b2c243c 100644 --- a/src/lcmgdf.f +++ b/src/lcmgdf.f @@ -9,15 +9,15 @@ C> @author J. Ator C> @date 2009-07-09 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] SUBSET - character*8: Table A mnemonic of message -C> type to be checked -C> @returns lcmgdf - integer: -C> - 0 = SUBSET does not contain any long -C> character strings -C> - 1 = SUBSET contains at least one long -C> character string +C> @param[in] SUBSET -- character*8: Table A mnemonic of message +C> type to be checked +C> @returns lcmgdf -- integer: +C> - 0 = SUBSET does not contain any long +C> character strings +C> - 1 = SUBSET contains at least one long +C> character string C> C> @remarks C> - LUNIT may be open for either input or output operations via a @@ -36,8 +36,10 @@ C> subsets) or subroutine writlc() (when writing BUFR data subsets). C> C> Program history log: -C> - 2009-07-09 J. Ator -- Original author -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-07-09 | J. Ator | Original author | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> INTEGER FUNCTION LCMGDF(LUNIT,SUBSET) diff --git a/src/maxout.f b/src/maxout.f index 6bf1c263..4b46396d 100644 --- a/src/maxout.f +++ b/src/maxout.f @@ -19,23 +19,21 @@ C> @authors J. Ator C> @date 2002-05-14 C> -C> @param[in] MAXO - integer: New maximum length (in bytes) for +C> @param[in] MAXO -- integer: New maximum length (in bytes) for C> all BUFR messages written to all output files C> - 0 = Set MAXO to the maximum value allowed C> by the BUFRLIB software C> C> Program history log: -C> - 2002-05-14 J. Woollen -- Original author -C> - 2004-08-09 J. Ator -- Maximum message length increased from -C> 20,000 to 50,000 bytes -C> - 2006-04-14 J. Ator -- Added MAXO=0 option and overflow check -C> - 2009-03-23 D. Keyser -- No longer prints the record length change -C> diagnostic if the requested record length -C> passed in as MAXO is actually the same as -C> the previous value -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2015-09-24 D. Stokes -- Correct typos in docblock +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2002-05-14 | J. Woollen | Original author | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2006-04-14 | J. Ator | Added MAXO=0 option and overflow check | +C> | 2009-03-23 | D. Keyser | No longer print record length change diagnostic if requested record length is the same as the previous value | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2015-09-24 | D. Stokes | Correct typos in docblock | C> SUBROUTINE MAXOUT(MAXO) diff --git a/src/minimg.f b/src/minimg.f index 29e5fe80..587b9ca3 100644 --- a/src/minimg.f +++ b/src/minimg.f @@ -9,27 +9,22 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] MINI - integer: Minutes value +C> @param[in] MINI -- integer: Minutes value C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Maximum message length increased from -C> 10,000 to 20,000 bytes -C> - 2002-05-14 J. Woollen -- Changed from an entry point to increase -C> portability to other platforms -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2004-08-09 J. Ator -- Maximum message length increased from -C> 20,000 to 50,000 bytes -C> - 2005-11-29 J. Ator -- Use pkbs1() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2002-05-14 | J. Woollen | Changed from an entry point to increase portability to other platforms | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-11-29 | J. Ator | Use pkbs1() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE MINIMG(LUNIT,MINI) diff --git a/src/msgfull.f b/src/msgfull.f index 8a002f37..762b0a51 100644 --- a/src/msgfull.f +++ b/src/msgfull.f @@ -10,15 +10,17 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] MSIZ - integer: Size (in bytes) of current BUFR message -C> @param[in] ITOADD - integer: Size (in bytes) of current data subset -C> @param[in] MXSIZ - integer: Maximum size of a BUFR message -C> @returns MSGFULL - logical: Flag indicating whether the current -C> data subset will fit within the current BUFR -C> message +C> @param[in] MSIZ -- integer: Size (in bytes) of current BUFR message +C> @param[in] ITOADD -- integer: Size (in bytes) of current data subset +C> @param[in] MXSIZ -- integer: Maximum size of a BUFR message +C> @returns MSGFULL -- logical: Flag indicating whether the current +C> data subset will fit within the current BUFR +C> message C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | C> LOGICAL FUNCTION MSGFULL(MSIZ,ITOADD,MXSIZ) diff --git a/src/msgwrt.f b/src/msgwrt.f index 719b1430..20416832 100644 --- a/src/msgwrt.f +++ b/src/msgwrt.f @@ -29,42 +29,27 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR C> file -C> @param[in] MESG - integer(*): BUFR message -C> @param[in] MGBYT - integer: Size (in bytes) of BUFR message +C> @param[in] MESG -- integer(*): BUFR message +C> @param[in] MGBYT -- integer: Size (in bytes) of BUFR message C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1997-07-29 J. Woollen -- Modified to update the current BUFR version -C> written in Section 0 from 2 to 3 -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1998-11-24 J. Woollen -- Modified to zero out the padding bytes -C> written at the end of Section 4 -C> - 2000-09-19 J. Woollen -- Maximum message length increased -C> from 10,000 to 20,000 bytes -C> - 2003-11-04 J. Ator -- Don't write to LUNIT if opened by -C> openbf() using IO = 'NUL' -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes -C> - 2005-11-29 J. Ator -- Use getlens(), iupbs01(), padmsg(), pkbs1() -C> and nmwrd(); added logic to call pkbs1() -C> and/or cnved4() when necessary -C> - 2009-03-23 J. Ator -- Use idxmsg() and errwrt(); add call to -C> atrcpt(); allow standardizing via -C> COMMON /MSGSTD/ even if data is compressed; -C> work on local copy of input message -C> - 2012-09-15 J. Woollen -- Modified for C/I/O/BUFR interface; -C> call new routine blocks() for file blocking -C> and new C routine cwrbufr() to write BUFR -C> message to disk file -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2019-05-09 J. Ator -- Added dimensions for MSGLEN and MSGTXT +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1997-07-29 | J. Woollen | Modified to update the current BUFR version written in Section 0 from 2 to 3 | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1998-11-24 | J. Woollen | Modified to zero out the padding bytes written at the end of Section 4 | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2003-11-04 | J. Ator | Don't write to LUNIT if opened by openbf() using IO = 'NUL' | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2005-11-29 | J. Ator | Use getlens(), iupbs01(), padmsg(), pkbs1() and nmwrd(); added logic to call pkbs1() and/or cnved4() when necessary | +C> | 2009-03-23 | J. Ator | Use idxmsg() and errwrt(); add call to atrcpt(); allow standardizing even if data is compressed; work on local copy of input message | +C> | 2012-09-15 | J. Woollen | Modified for C/I/O/BUFR interface; call new routine blocks() for file blocking and new C routine cwrbufr() to write BUFR message to disk file | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2019-05-09 | J. Ator | Added dimensions for MSGLEN and MSGTXT | C> SUBROUTINE MSGWRT(LUNIT,MESG,MGBYT) diff --git a/src/mtinfo.f b/src/mtinfo.f index 8d27816d..9d8a3ed2 100644 --- a/src/mtinfo.f +++ b/src/mtinfo.f @@ -8,13 +8,13 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] CMTDIR - character*(*): Directory location of master +C> @param[in] CMTDIR -- character*(*): Directory location of master C> BUFR tables on local file system C> (up to 100 characters) -C> @param[in] LUNMT1 - integer: First Fortran logical unit number +C> @param[in] LUNMT1 -- integer: First Fortran logical unit number C> to use when reading master BUFR tables on C> local file system -C> @param[in] LUNMT2 - integer: Second Fortran logical unit number +C> @param[in] LUNMT2 -- integer: Second Fortran logical unit number C> to use when reading master BUFR tables on C> local file system C> @@ -39,7 +39,9 @@ C> local system. C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | C> SUBROUTINE MTINFO ( CMTDIR, LUNMT1, LUNMT2 ) diff --git a/src/nemdefs.f b/src/nemdefs.f index f5482a51..933dc311 100644 --- a/src/nemdefs.f +++ b/src/nemdefs.f @@ -12,24 +12,26 @@ C> @author J. Ator C> @date 2014-10-02 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for -C> BUFR file -C> @param[in] NEMO - character*(*): Table B mnemonic -C> @param[out] CELEM - character*55: Element name associated -C> with NEMO -C> @param[out] CUNIT - character*24: Units associated with NEMO -C> @param[out] IRET - integer: return code -C> - 0 = normal return -C> - -1 = NEMO could not be found, or some -C> other error occurred +C> @param[in] LUNIT -- integer: Fortran logical unit number for +C> BUFR file +C> @param[in] NEMO -- character*(*): Table B mnemonic +C> @param[out] CELEM -- character*55: Element name associated +C> with NEMO +C> @param[out] CUNIT -- character*24: Units associated with NEMO +C> @param[out] IRET -- integer: return code +C> - 0 = normal return +C> - -1 = NEMO could not be found, or some +C> other error occurred C> C>
Logical unit LUNIT should have already been opened for C> input or output operations via a previous call to subroutine C> openbf(). C> C> Program history log: -C> - 2014-10-02 J. Ator -- Original version -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2014-10-02 | J. Ator | Original version | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE NEMDEFS ( LUNIT, NEMO, CELEM, CUNIT, IRET ) diff --git a/src/nemspecs.f b/src/nemspecs.f index 4da702e5..1edc9242 100644 --- a/src/nemspecs.f +++ b/src/nemspecs.f @@ -16,22 +16,22 @@ C> @author J. Ator C> @date 2014-10-02 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for -C> BUFR file -C> @param[in] NEMO - character*(*): Table B mnemonic -C> @param[in] NNEMO - integer: Ordinal occurrence of NEMO for -C> which information is to be returned, -C> counting from the beginning of the overall -C> subset definition -C> @param[out] NSCL - integer: Scale factor in effect for -C> (NNEMO)th occurrence of NEMO -C> @param[out] NREF - integer: Reference value in effect for -C> (NNEMO)th occurrence of NEMO -C> @param[out] NBTS - integer: Bit width in effect for -C> (NNEMO)th occurrence of NEMO -C> @param[out] IRET - integer: return code -C> - 0 = normal return -C> - -1 = NEMO could not be found, or some +C> @param[in] LUNIT -- integer: Fortran logical unit number for +C> BUFR file +C> @param[in] NEMO -- character*(*): Table B mnemonic +C> @param[in] NNEMO -- integer: Ordinal occurrence of NEMO for +C> which information is to be returned, +C> counting from the beginning of the overall +C> subset definition +C> @param[out] NSCL -- integer: Scale factor in effect for +C> (NNEMO)th occurrence of NEMO +C> @param[out] NREF -- integer: Reference value in effect for +C> (NNEMO)th occurrence of NEMO +C> @param[out] NBTS -- integer: Bit width in effect for +C> (NNEMO)th occurrence of NEMO +C> @param[out] IRET -- integer: return code +C> - 0 = normal return +C> - -1 = NEMO could not be found, or some C> other error occurred C> C>
A data subset must already be in scope within the BUFRLIB @@ -42,8 +42,10 @@ C> (when writing BUFR data subsets). C> C> Program history log: -C> - 2014-10-02 J. Ator -- Original version -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2014-10-02 | J. Ator | Original version | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE NEMSPECS ( LUNIT, NEMO, NNEMO, . NSCL, NREF, NBTS, IRET ) diff --git a/src/nemtab.f b/src/nemtab.f index 00a01ebc..ee1c06d4 100644 --- a/src/nemtab.f +++ b/src/nemtab.f @@ -8,16 +8,16 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUN - integer: Internal I/O stream index associated -C> with DX BUFR tables -C> @param[in] NEMO - character*(*): Mnemonic -C> @param[out] IDN - integer: Bit-wise representation of FXY value -C> for descriptor associated with NEMO -C> @param[out] TAB - character: Type associated with IDN +C> @param[in] LUN -- integer: Internal I/O stream index associated +C> with DX BUFR tables +C> @param[in] NEMO -- character*(*): Mnemonic +C> @param[out] IDN -- integer: Bit-wise representation of FXY value +C> for descriptor associated with NEMO +C> @param[out] TAB -- character: Type associated with IDN C> - 'B' = Table B descriptor C> - 'D' = Table D descriptor C> - 'C' = Table C operator -C> @param[out] IRET - integer: +C> @param[out] IRET -- integer: C> - Positional index of IDN within internal C> Table B, if TAB = 'B' C> - Positional index of IDN within internal @@ -27,25 +27,19 @@ C> - 0, otherwise C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1995-06-28 J. Woollen -- Increased the size of internal BUFR table -C> arrays in order to handle bigger files -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Added capability to encode and decode data -C> using the operator descriptors (BUFR table -C> C) for changing width and changing scale -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation -C> - 2005-11-29 J. Ator -- Added support for 207 and 208 operators -C> - 2010-03-19 J. Ator -- Added support for 204 and 205 operators -C> - 2012-03-02 J. Ator -- Added support for 203 operator -C> - 2015-02-25 J. Ator -- Allow processing of 2-2x, 2-3x and 2-4X -C> non-marker operators in DX tables +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1995-06-28 | J. Woollen | Increased the size of internal BUFR table arrays in order to handle bigger files | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2000-09-19 | J. Woollen | Added capability to encode and decode data using the operator descriptors (BUFR table C) for changing width and changing scale | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation | +C> | 2005-11-29 | J. Ator | Added support for 207 and 208 operators | +C> | 2010-03-19 | J. Ator | Added support for 204 and 205 operators | +C> | 2012-03-02 | J. Ator | Added support for 203 operator | +C> | 2015-02-25 | J. Ator | Allow processing of 2-2x, 2-3x and 2-4X non-marker operators in DX tables | C> SUBROUTINE NEMTAB(LUN,NEMO,IDN,TAB,IRET) diff --git a/src/nemtba.f b/src/nemtba.f index 0380871a..343fe928 100644 --- a/src/nemtba.f +++ b/src/nemtba.f @@ -1,51 +1,36 @@ C> @file -C> @author WOOLLEN @date 1994-01-06 - -C> THIS SUBROUTINE SEARCHES FOR MNEMONIC NEMO WITHIN THE -C> INTERNAL TABLE A ARRAYS HOLDING THE DICTIONARY TABLE (ARRAYS IN -C> MODULE TABABD) AND, IF FOUND, RETURNS INFORMATION ABOUT THAT -C> MNEMONIC FROM WITHIN THESE ARRAYS. IT IS IDENTICAL TO BUFR ARCHIVE -C> LIBRARY SUBROUTINE NEMTBAX EXCEPT THAT, IF NEMO IS NOT FOUND, THIS -C> SUBROUTINE MAKES AN APPROPRIATE CALL TO BUFR ARCHIVE LIBRARY -C> SUBROUTINE BORT. +C> @brief Search for a Table A descriptor within the internal DX +C> BUFR tables + +C> This subroutine searches for a descriptor within Table A of the +C> internal DX BUFR tables. C> -C> PROGRAM HISTORY LOG: -C> 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR -C> 1995-06-28 J. WOOLLEN -- INCREASED THE SIZE OF INTERNAL BUFR TABLE -C> ARRAYS IN ORDER TO HANDLE BIGGER FILES -C> 1998-07-08 J. WOOLLEN -- REPLACED CALL TO CRAY LIBRARY ROUTINE -C> "ABORT" WITH CALL TO NEW INTERNAL BUFRLIB -C> ROUTINE "BORT" -C> 1999-11-18 J. WOOLLEN -- THE NUMBER OF BUFR FILES WHICH CAN BE -C> OPENED AT ONE TIME INCREASED FROM 10 TO 32 -C> (NECESSARY IN ORDER TO PROCESS MULTIPLE -C> BUFR FILES UNDER THE MPI) -C> 2003-11-04 J. ATOR -- ADDED DOCUMENTATION -C> 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE -C> INTERDEPENDENCIES -C> 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED HISTORY -C> DOCUMENTATION; OUTPUTS MORE COMPLETE -C> DIAGNOSTIC INFO WHEN ROUTINE TERMINATES -C> ABNORMALLY -C> 2009-05-07 J. ATOR -- USE NEMTBAX +C>
It is similar to subroutine nemtbax(), except that it calls +C> subroutine bort() if the descriptor is not found in Table A, +C> whereas nemtbax() will return an INOD value of 0 in such cases. C> -C> USAGE: CALL NEMTBA (LUN, NEMO, MTYP, MSBT, INOD) -C> INPUT ARGUMENT LIST: -C> LUN - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS -C> NEMO - CHARACTER*(*): TABLE A MNEMONIC TO SEARCH FOR +C> @author J. Woollen +C> @date 1994-01-06 C> -C> OUTPUT ARGUMENT LIST: -C> MTYP - INTEGER: MESSAGE TYPE CORRESPONDING TO NEMO -C> MSBT - INTEGER: MESSAGE SUBTYPE CORRESPONDING TO NEMO -C> INOD - INTEGER: POSITIONAL INDEX OF NEMO WITHIN INTERNAL -C> JUMP/LINK TABLE +C> @param[in] LUN -- integer: Internal I/O stream index associated +C> with DX BUFR tables +C> @param[in] NEMO -- character*(*): Mnemonic for Table A descriptor +C> @param[out] MTYP -- integer: Message type corresponding to NEMO +C> @param[out] MSBT -- integer: Message subtype corresponding to NEMO +C> @param[out] INOD -- integer: Positional index of NEMO within +C> internal Table A C> -C> REMARKS: -C> THIS ROUTINE CALLS: BORT NEMTBAX -C> THIS ROUTINE IS CALLED BY: CMSGINI COPYMG CPYMEM LCMGDF -C> MSGINI OPENMB OPENMG -C> Normally not called by any application -C> programs. +C> Program history log: +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1995-06-28 | J. Woollen | Increased the size of internal BUFR table arrays in order to handle bigger files | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of bufr files which can be opened at one time increased from 10 to 32 | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks/bufrlib routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2009-05-07 | J. Ator | Use nemtbax |() C> SUBROUTINE NEMTBA(LUN,NEMO,MTYP,MSBT,INOD) diff --git a/src/nemtbax.f b/src/nemtbax.f index 9f616d1e..73e51624 100644 --- a/src/nemtbax.f +++ b/src/nemtbax.f @@ -1,41 +1,34 @@ C> @file -C> @author WOOLLEN @date 1999-11-18 - -C> THIS SUBROUTINE SEARCHES FOR MNEMONIC NEMO WITHIN THE -C> INTERNAL TABLE A ARRAYS HOLDING THE DICTIONARY TABLE (ARRAYS IN -C> MODULE TABABD) AND, IF FOUND, RETURNS INFORMATION ABOUT -C> THAT MNEMONIC FROM WITHIN THESE ARRAYS. IT IS IDENTICAL TO BUFR -C> ARCHIVE LIBRARY SUBROUTINE NEMTBA EXCEPT THAT, IF NEMO IS NOT -C> FOUND, THIS SUBROUTINE RETURNS WITH INOD EQUAL TO ZERO, WHEREAS -C> NEMTBA CALLS BUFR ARCHIVE LIBRARY SUBROUTINE BORT IN SUCH CASES. +C> @brief Search for a Table A descriptor within the internal DX +C> BUFR tables + +C> This subroutine searches for a descriptor within Table A of the +C> internal DX BUFR tables. C> -C> PROGRAM HISTORY LOG: -C> 1999-11-18 J. WOOLLEN -- ORIGINAL AUTHOR -C> 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE -C> INTERDEPENDENCIES -C> 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED -C> DOCUMENTATION (INCLUDING HISTORY); OUTPUTS -C> MORE COMPLETE DIAGNOSTIC INFO WHEN ROUTINE -C> TERMINATES ABNORMALLY -C> 2014-12-10 J. ATOR -- USE MODULES INSTEAD OF COMMON BLOCKS +C>
It is similar to subroutine nemtba(), except it returns an INOD +C> value of 0 if the descriptor is not found in Table A, whereas +C> nemtba() will call subroutine bort() in such cases. C> -C> USAGE: CALL NEMTBAX (LUN, NEMO, MTYP, MSBT, INOD) -C> INPUT ARGUMENT LIST: -C> LUN - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS -C> NEMO - CHARACTER*(*): TABLE A MNEMONIC TO SEARCH FOR +C> @author J. Woollen +C> @date 1999-11-18 C> -C> OUTPUT ARGUMENT LIST: -C> MTYP - INTEGER: MESSAGE TYPE CORRESPONDING TO NEMO -C> MSBT - INTEGER: MESSAGE SUBTYPE CORRESPONDING TO NEMO -C> INOD - INTEGER: POSITIONAL INDEX OF NEMO WITHIN INTERNAL -C> JUMP/LINK TABLE IF NEMO FOUND -C> 0 = NEMO not found +C> @param[in] LUN -- integer: Internal I/O stream index associated +C> with DX BUFR tables +C> @param[in] NEMO -- character*(*): Mnemonic for Table A descriptor +C> @param[out] MTYP -- integer: Message type corresponding to NEMO +C> @param[out] MSBT -- integer: Message subtype corresponding to NEMO +C> @param[out] INOD -- integer: +C> - Positional index of NEMO within internal +C> Table A, if found +C> - 0, otherwise C> -C> REMARKS: -C> THIS ROUTINE CALLS: BORT -C> THIS ROUTINE IS CALLED BY: CKTABA IOK2CPY NEMTBA STNDRD -C> Normally not called by any application -C> programs. +C> Program history log: +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1999-11-18 | J. Woollen | Original author | +C> | 2003-11-04 | S. Bender | Added remarks/bufrlib routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE NEMTBAX(LUN,NEMO,MTYP,MSBT,INOD) diff --git a/src/nemtbb.f b/src/nemtbb.f index 3491df87..8f8d4fc9 100644 --- a/src/nemtbb.f +++ b/src/nemtbb.f @@ -1,50 +1,32 @@ C> @file -C> @author WOOLLEN @date 1994-01-06 - -C> THIS SUBROUTINE CHECKS ALL OF THE PROPERTIES (E.G. FXY -C> VALUE, UNITS, SCALE FACTOR, REFERENCE VALUE, ETC.) OF A SPECIFIED -C> MNEMONIC WITHIN THE INTERNAL BUFR TABLE B ARRAYS (IN MODULE -C> TABABD) IN ORDER TO VERIFY THAT THE VALUES OF THOSE PROPERTIES -C> ARE ALL LEGAL AND WELL-DEFINED. IF ANY ERRORS ARE FOUND, THEN AN -C> APPROPRIATE CALL IS MADE TO BUFR ARCHIVE LIBRARY SUBROUTINE BORT. -C> -C> PROGRAM HISTORY LOG: -C> 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR -C> 1995-06-28 J. WOOLLEN -- INCREASED THE SIZE OF INTERNAL BUFR TABLE -C> ARRAYS IN ORDER TO HANDLE BIGGER FILES -C> 1998-07-08 J. WOOLLEN -- REPLACED CALL TO CRAY LIBRARY ROUTINE -C> "ABORT" WITH CALL TO NEW INTERNAL BUFRLIB -C> ROUTINE "BORT"; CORRECTED SOME MINOR ERRORS -C> 1999-11-18 J. WOOLLEN -- CHANGED CALL TO FUNCTION "VAL$" TO "VALX" -C> (IT HAS BEEN RENAMED TO REMOVE THE -C> POSSIBILITY OF THE "$" SYMBOL CAUSING -C> PROBLEMS ON OTHER PLATFORMS) -C> 2003-11-04 J. ATOR -- ADDED DOCUMENTATION -C> 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE -C> INTERDEPENDENCIES -C> 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED HISTORY -C> DOCUMENTATION; OUTPUTS MORE COMPLETE -C> DIAGNOSTIC INFO WHEN ROUTINE TERMINATES -C> ABNORMALLY -C> 2014-12-10 J. ATOR -- USE MODULES INSTEAD OF COMMON BLOCKS +C> @brief Get information about a Table B descriptor + +C> This subroutine returns information about a Table B descriptor +C> from the internal DX BUFR tables. C> -C> USAGE: CALL NEMTBB (LUN, ITAB, UNIT, ISCL, IREF, IBIT) -C> INPUT ARGUMENT LIST: -C> LUN - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS -C> ITAB - INTEGER: POSITIONAL INDEX INTO INTERNAL BUFR TABLE B -C> ARRAYS FOR MNEMONIC TO BE CHECKED +C> @author J. Woollen +C> @date 1994-01-06 C> -C> OUTPUT ARGUMENT LIST: -C> UNIT - CHARACTER*24: UNITS OF MNEMONIC -C> ISCL - INTEGER: SCALE FACTOR OF MNEMONIC -C> IREF - INTEGER: REFERENCE VALUE OF MNEMONIC -C> IBIT - INTEGER: BIT WIDTH OF MNEMONIC +C> @param[in] LUN -- integer: Internal I/O stream index associated +C> with DX BUFR tables +C> @param[in] ITAB -- integer: Positional index of descriptor within +C> internal Table B +C> @param[out] UNIT -- character*24: Units of descriptor +C> @param[out] ISCL -- integer: Scale factor of descriptor +C> @param[out] IREF -- integer: Reference value of descriptor +C> @param[out] IBIT -- integer: Bit width of descriptor C> -C> REMARKS: -C> THIS ROUTINE CALLS: BORT IFXY VALX -C> THIS ROUTINE IS CALLED BY: CHEKSTAB RESTD TABENT -C> Normally not called by any application -C> programs. +C> Program history log: +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1995-06-28 | J. Woollen | Increased the size of internal BUFR table arrays in order to handle bigger files | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | Changed call to function "val$" to valx() | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks/bufrlib routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE NEMTBB(LUN,ITAB,UNIT,ISCL,IREF,IBIT) diff --git a/src/nemtbd.f b/src/nemtbd.f index 8a3fa54e..f2a33655 100644 --- a/src/nemtbd.f +++ b/src/nemtbd.f @@ -1,87 +1,55 @@ C> @file -C> @author WOOLLEN @date 1994-01-06 - -C> THIS SUBROUTINE RETURNS A LIST OF THE MNEMONICS (I.E., -C> "CHILD" MNEMONICS) CONTAINED WITHIN A TABLE D SEQUENCE MNEMONIC -C> (I.E., A "PARENT MNEMONIC"). THIS INFORMATION SHOULD HAVE BEEN -C> PACKED INTO THE INTERNAL BUFR TABLE D ENTRY FOR THE PARENT -C> MNEMONIC (IN MODULE TABABD) VIA PREVIOUS CALLS TO BUFR ARCHIVE -C> LIBRARY SUBROUTINE PKTDD. NOTE THAT NEMTBD DOES NOT RECURSIVELY -C> RESOLVE CHILD MNEMONICS WHICH ARE THEMSELVES TABLE D SEQUENCE -C> MNEMONICS; RATHER, SUCH RESOLUTION MUST BE DONE VIA SEPARATE -C> SUBSEQUENT CALLS TO THIS SUBROUTINE. -C> -C> PROGRAM HISTORY LOG: -C> 1994-01-06 J. WOOLLEN -- ORIGINAL AUTHOR -C> 1995-06-28 J. WOOLLEN -- INCREASED THE SIZE OF INTERNAL BUFR TABLE -C> ARRAYS IN ORDER TO HANDLE BIGGER FILES -C> 1998-07-08 J. WOOLLEN -- REPLACED CALL TO CRAY LIBRARY ROUTINE -C> "ABORT" WITH CALL TO NEW INTERNAL BUFRLIB -C> ROUTINE "BORT" -C> 1999-11-18 J. WOOLLEN -- THE NUMBER OF BUFR FILES WHICH CAN BE -C> OPENED AT ONE TIME INCREASED FROM 10 TO 32 -C> (NECESSARY IN ORDER TO PROCESS MULTIPLE -C> BUFR FILES UNDER THE MPI) -C> 2000-09-19 J. WOOLLEN -- MUST NOW CHECK FOR TABLE C (OPERATOR -C> DESCRIPTOR) MNEMONICS SINCE THE CAPABILITY -C> HAS NOW BEEN ADDED TO ENCODE AND DECODE -C> THESE -C> 2003-11-04 J. ATOR -- ADDED DOCUMENTATION -C> 2003-11-04 S. BENDER -- ADDED REMARKS/BUFRLIB ROUTINE -C> INTERDEPENDENCIES -C> 2003-11-04 D. KEYSER -- UNIFIED/PORTABLE FOR WRF; ADDED HISTORY -C> DOCUMENTATION; OUTPUTS MORE COMPLETE -C> DIAGNOSTIC INFO WHEN ROUTINE TERMINATES -C> ABNORMALLY -C> 2014-12-10 J. ATOR -- USE MODULES INSTEAD OF COMMON BLOCKS -C> -C> USAGE: CALL NEMTBD (LUN, ITAB, NSEQ, NEMS, IRPS, KNTS) -C> INPUT ARGUMENT LIST: -C> LUN - INTEGER: I/O STREAM INDEX INTO INTERNAL MEMORY ARRAYS -C> ITAB - INTEGER: POSITIONAL INDEX OF PARENT MNEMONIC WITHIN -C> INTERNAL BUFR TABLE D ARRAY TABD(*,*) -C> -C> OUTPUT ARGUMENT LIST: -C> NSEQ - INTEGER: TOTAL NUMBER OF CHILD MNEMONICS FOR THE -C> PARENT MNEMONIC GIVEN BY TABD(ITAB,LUN) -C> NEMS - CHARACTER*8: (NSEQ)-WORD ARRAY OF CHILD MNEMONICS -C> IRPS - INTEGER: (NSEQ)-WORD RETURN VALUE ARRAY (SEE REMARKS) -C> KNTS - INTEGER: (NSEQ)-WORD RETURN VALUE ARRAY (SEE REMARKS) -C> -C> REMARKS: -C> VALUE FOR OUTPUT ARGUMENT IRPS: -C> The interpretation of the return value IRPS(I) depends upon the -C> type of descriptor corresponding to NEMS(I), as follows: -C> -C> IF ( NEMS(I) corresponds to an F=1 regular (i.e. non-delayed) -C> replication descriptor ) THEN -C> IRPS(I) = 1 -C> ELSE IF ( NEMS(I) corresponds to a delayed replicator or -C> replication factor descriptor ) THEN -C> IRPS(I) = positional index of corresponding descriptor -C> within internal replication array IDNR(*,*) -C> ELSE -C> IRPS(I) = 0 -C> END IF -C> +C> @brief Get information about a Table D descriptor + +C> This subroutine returns information about a Table D descriptor +C> from the internal DX BUFR tables. C> -C> VALUE FOR OUTPUT ARGUMENT KNTS: -C> The interpretation of the return value KNTS(I) depends upon the -C> type of descriptor corresponding to NEMS(I), as follows: +C> @author J. Woollen +C> @date 1994-01-06 C> -C> IF ( NEMS(I) corresponds to an F=1 regular (i.e. non-delayed) -C> replication descriptor ) THEN -C> KNTS(I) = number of replications -C> ELSE -C> KNTS(I) = 0 -C> END IF +C> @param[in] LUN -- integer: Internal I/O stream index associated +C> with DX BUFR tables +C> @param[in] ITAB -- integer: Positional index of descriptor within +C> internal Table D +C> @param[out] NSEQ -- integer: Number of child mnemonics for descriptor +C> @param[out] NEMS -- character*8(*): Child mnemonics +C> @param[out] IRPS -- integer(*): Array of values corresponding to NEMS +C> - 5, if corresponding NEMS value is a Table D +C> mnemonic using 1-bit delayed replication +C> - 4, if corresponding NEMS value is a Table D +C> mnemonic using 8-bit delayed (stack) replication +C> - 3, if corresponding NEMS value is a Table D +C> mnemonic using 8-bit delayed replication +C> - 2, if corresponding NEMS value is a Table D +C> mnemonic using 16-bit delayed replication +C> - 1, if corresponding NEMS value is a Table D +C> mnemonic using regular (non-delayed) replication +C> - 0, otherwise +C> @param[out] KNTS -- integer(*): Array of values corresponding to NEMS +C> - Number of replications, if corresponding NEMS +C> value is a Table D mnemonic using regular +C> (non-delayed) replication +C> - 0, otherwise C> +C> @remarks +C> - This subroutine does not recursively resolve any child mnemonics +C> which may themselves be Table D mnemonics. Instead, this subroutine +C> only returns the list of mnemonics which are direct children of the +C> descriptor referenced by ITAB. This information should have already +C> been stored into internal arrays via previous calls to subroutine +C> pktdd(). C> -C> THIS ROUTINE CALLS: ADN30 BORT IFXY NUMTAB -C> RSVFVM UPTDD -C> THIS ROUTINE IS CALLED BY: CHEKSTAB DXDUMP GETABDB TABSUB -C> Normally not called by any application -C> programs. +C> Program history log: +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1995-06-28 | J. Woollen | Increased the size of internal BUFR table arrays in order to handle bigger files | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2000-09-19 | J. Woollen | Handle child mnemonics which are Table C operators | +C> | 2003-11-04 | S. Bender | Added remarks/bufrlib routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE NEMTBD(LUN,ITAB,NSEQ,NEMS,IRPS,KNTS) diff --git a/src/nmsub.f b/src/nmsub.f index 8ad33349..f0cc794a 100644 --- a/src/nmsub.f +++ b/src/nmsub.f @@ -14,19 +14,17 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @returns nmsub - integer: Number of data subsets +C> @returns nmsub -- integer: Number of data subsets C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> FUNCTION NMSUB(LUNIT) diff --git a/src/numtab.f b/src/numtab.f index bd30ff45..247b1adb 100644 --- a/src/numtab.f +++ b/src/numtab.f @@ -8,18 +8,18 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUN - integer: Internal I/O stream index associated -C> with DX BUFR tables -C> @param[in] IDN - integer: Bit-wise representation of FXY value -C> for descriptor -C> @param[out] NEMO - character*(*): Mnemonic associated with IDN -C> @param[out] TAB - character: Type associated with IDN +C> @param[in] LUN -- integer: Internal I/O stream index associated +C> with DX BUFR tables +C> @param[in] IDN -- integer: Bit-wise representation of FXY value +C> for descriptor +C> @param[out] NEMO -- character*(*): Mnemonic associated with IDN +C> @param[out] TAB -- character: Type associated with IDN C> - 'B' = Table B descriptor C> - 'D' = Table D descriptor C> - 'C' = Table C operator C> - 'R' = Replication descriptor C> - 'F' = Replication factor -C> @param[out] IRET - integer: +C> @param[out] IRET -- integer: C> - Positional index of IDN within internal C> Table B, if TAB = 'B' C> - Positional index of IDN within internal @@ -40,26 +40,20 @@ C> - 0, otherwise C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1995-06-28 J. Woollen -- Increased the size of internal BUFR table -C> arrays in order to handle bigger files -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Added capability to encode and decode data -C> using the operator descriptors (BUFR table -C> C) for changing width and changing scale -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; corrected typo -C> - 2005-11-29 J. Ator -- Added support for 207 and 208 operators -C> - 2009-04-21 J. Ator -- Use numtbd() -C> - 2010-03-19 J. Ator -- Added support for 204 and 205 operators -C> - 2012-03-02 J. Ator -- Added support for 203 operator -C> - 2015-02-25 J. Ator -- Allow processing of 2-2x, 2-3x and 2-4X -C> non-marker operators in DX tables +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1995-06-28 | J. Woollen | Increased the size of internal BUFR table arrays in order to handle bigger files | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2000-09-19 | J. Woollen | Added capability to encode and decode data using the operator descriptors (BUFR table C) for changing width and changing scale | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added history documentation; corrected typo | +C> | 2005-11-29 | J. Ator | Added support for 207 and 208 operators | +C> | 2009-04-21 | J. Ator | Use numtbd() | +C> | 2010-03-19 | J. Ator | Added support for 204 and 205 operators | +C> | 2012-03-02 | J. Ator | Added support for 203 operator | +C> | 2015-02-25 | J. Ator | Allow processing of 2-2x, 2-3x and 2-4X non-marker operators in DX tables | C> SUBROUTINE NUMTAB(LUN,IDN,NEMO,TAB,IRET) diff --git a/src/numtbd.f b/src/numtbd.f index 5b07a720..acc024cd 100644 --- a/src/numtbd.f +++ b/src/numtbd.f @@ -1,5 +1,6 @@ C> @file -C> @brief Search for a descriptor within the internal DX BUFR tables +C> @brief Search for a Table B or Table D descriptor within the +C> internal DX BUFR tables C> This subroutine searches for a descriptor within Table B and C> Table D of the internal DX BUFR tables. @@ -7,15 +8,15 @@ C> @author J. Woollen C> @date 2002-05-14 C> -C> @param[in] LUN - integer: Internal I/O stream index associated -C> with DX BUFR tables -C> @param[in] IDN - integer: Bit-wise representation of FXY value -C> for descriptor -C> @param[out] NEMO - character*(*): Mnemonic associated with IDN -C> @param[out] TAB - character: Type associated with IDN +C> @param[in] LUN -- integer: Internal I/O stream index associated +C> with DX BUFR tables +C> @param[in] IDN -- integer: Bit-wise representation of FXY value +C> for Table B or Table D descriptor +C> @param[out] NEMO -- character*(*): Mnemonic associated with IDN +C> @param[out] TAB -- character: Type associated with IDN C> - 'B' = Table B descriptor C> - 'D' = Table D descriptor -C> @param[out] IRET - integer: +C> @param[out] IRET -- integer: C> - Positional index of IDN within internal C> Table B, if TAB = 'B' C> - Positional index of IDN within internal @@ -23,12 +24,13 @@ C> - 0, otherwise C> C> Program history log: -C> - 2002-05-14 J. Woollen -- Original author -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation -C> - 2009-04-21 J. Ator -- Use ifxy() for more efficient searching -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2002-05-14 | J. Woollen | Original author | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added history documentation | +C> | 2009-04-21 | J. Ator | Use ifxy() for more efficient searching | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE NUMTBD(LUN,IDN,NEMO,TAB,IRET) diff --git a/src/openbf.f b/src/openbf.f index 1fd37e3f..13cc00a7 100644 --- a/src/openbf.f +++ b/src/openbf.f @@ -10,10 +10,10 @@ C> @authors D. Keyser C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR C> file (unless IO is set to 'FIRST' or 'QUIET', in C> which case this is a dummy argument) -C> @param[in] IO - character*(*): flag indicating how LUNIT is to be +C> @param[in] IO -- character*(*): flag indicating how LUNIT is to be C> used by the software: C> - 'IN' = input operations with table processing C> - 'INX' = input operations w/o table processing @@ -46,7 +46,7 @@ C> indicator to initialize the BUFRLIB C> software, in case this subroutine was C> never previously called -C> @param[in] LUNDX - integer: +C> @param[in] LUNDX -- integer: C> - If IO is not set to 'FIRST' or 'QUIET' = C> Fortran logical unit number C> containing DX BUFR table information to be used in @@ -118,41 +118,22 @@ C> messages to be decoded. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2003-11-04 J. Ator -- Added IO='NUL' option in order to prevent -C> later writing to BUFR file in LUNIT (was in -C> decoder version); added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes -C> - 2004-08-18 J. Ator -- Added SAVE for IFIRST flag and IO="NODX" -C> option -C> - 2005-11-29 J. Ator -- Added COMMON /MSGFMT/ and ichkstr() call -C> - 2009-03-23 J. Ator -- Added IO='SEC3' option; removed call to -C> posapn; clarified comments; use errwrt() -C> - 2010-05-11 J. Ator -- Added COMMON /STCODE/ -C> - 2012-06-18 J. Ator -- Added IO='INUL' option -C> - 2012-09-15 J. Woollen -- Modified for C/I/O/BUFR interface; -C> use INQUIRE to obtain the filename; -C> call C routines openrb(), openwb() and -C> openab() to connect BUFR files to C; -C> added IO type 'INX' to enable open and -C> close for C file without closing FORTRAN -C> file; add IO type 'FIRST' to support calls -C> to bfrini() and wrdlen() prior to user reset -C> of BUFRLIB parameters found in new routines -C> setbmiss() and setblock() -C> - 2014-11-07 J. Ator -- Allow dynamic allocation of certain arrays -C> - 2015-03-03 J. Ator -- Use MODA_IFOPBF instead of IFIRST +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2003-11-04 | J. Ator | Added IO='NUL' option to prevent later writing to BUFR file in LUNIT; added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-18 | J. Ator | Added SAVE for IFIRST flag and IO="NODX" option | +C> | 2005-11-29 | J. Ator | Added COMMON /MSGFMT/ and ichkstr() call | +C> | 2009-03-23 | J. Ator | Added IO='SEC3' option; removed call to posapn; clarified comments; use errwrt() | +C> | 2010-05-11 | J. Ator | Added COMMON /STCODE/ | +C> | 2012-06-18 | J. Ator | Added IO='INUL' option | +C> | 2012-09-15 | J. Woollen | Modified for C/I/O/BUFR interface; use INQUIRE to obtain filename; use openrb(), openwb() and openab(); add IO types 'INX' and 'FIRST' | +C> | 2014-11-07 | J. Ator | Allow dynamic allocation of certain arrays | +C> | 2015-03-03 | J. Ator | Use MODA_IFOPBF instead of IFIRST | C> SUBROUTINE OPENBF(LUNIT,IO,LUNDX) diff --git a/src/openbt.f b/src/openbt.f index 2b855964..00e7d7a4 100644 --- a/src/openbt.f +++ b/src/openbt.f @@ -20,21 +20,23 @@ C> @author J. Woollen C> @date 1998-07-08 C> -C> @param[in] MTYP - integer: Data category of BUFR message for which -C> subroutine cktaba() was unable to locate a -C> DX BUFR table file -C> @param[out] LUNDX - integer: Fortran logical unit number for file -C> containing DX BUFR table information to be -C> used in decoding message -C> - 0 = No such file is available +C> @param[in] MTYP -- integer: Data category of BUFR message for which +C> subroutine cktaba() was unable to locate a +C> DX BUFR table file +C> @param[out] LUNDX -- integer: Fortran logical unit number for file +C> containing DX BUFR table information to be +C> used in decoding message +C> - 0 = No such file is available C> C> @remarks C> - See [DX BUFR Tables](@ref dfbftab) for more information about C> the format and contents of DX BUFR table files. C> C> Program history log: -C> - 1998-07-08 J. Woollen -- Original author -C> - 2009-04-21 J. Ator -- Use errwrt() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1998-07-08 | J. Woollen | Original author | +C> | 2009-04-21 | J. Ator | Use errwrt() | C> SUBROUTINE OPENBT(LUNDX,MTYP) diff --git a/src/openmb.f b/src/openmb.f index 17a9d2ca..4b26385b 100644 --- a/src/openmb.f +++ b/src/openmb.f @@ -8,15 +8,15 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR C> file -C> @param[in] SUBSET - character*(*): Table A mnemonic for type of +C> @param[in] SUBSET -- character*(*): Table A mnemonic for type of C> BUFR message to be opened C> (see [DX BUFR Tables](@ref dfbftab) for C> further information about Table A mnemonics) -C> @param[in] JDATE - integer: Date-time to be stored within Section 1 -C> of BUFR message being opened, in format of either -C> YYMMDDHH or YYYYMMDDHH +C> @param[in] JDATE -- integer: Date-time to be stored within Section 1 +C> of BUFR message being opened, in format of either +C> YYMMDDHH or YYYYMMDDHH C> C>
Logical unit LUNIT should have already been opened for output C> operations via a previous call to subroutine openbf(). @@ -39,22 +39,15 @@ C> becomes exactly like that of subroutine openmg(). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT"; modified to make Y2K -C> compliant -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE OPENMB(LUNIT,SUBSET,JDATE) diff --git a/src/openmg.f b/src/openmg.f index 201732e8..3fc2b2bb 100644 --- a/src/openmg.f +++ b/src/openmg.f @@ -8,15 +8,15 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR C> file -C> @param[in] SUBSET - character*(*): Table A mnemonic for type of +C> @param[in] SUBSET -- character*(*): Table A mnemonic for type of C> BUFR message to be opened -C> (see [DX BUFR Tables](@ref dfbftab) for +C> (see [DX BUFR Tables](@ref dfbftab) for C> further information about Table A mnemonics) -C> @param[in] JDATE - integer: Date-time to be stored within Section 1 -C> of BUFR message being opened, in format of either -C> YYMMDDHH or YYYYMMDDHH +C> @param[in] JDATE -- integer: Date-time to be stored within Section 1 +C> of BUFR message being opened, in format of either +C> YYMMDDHH or YYYYMMDDHH C> C>
Logical unit LUNIT should have already been opened for output C> operations via a previous call to subroutine openbf(). @@ -28,22 +28,15 @@ C> via an internal call to subroutine closmg(). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT"; modified to make Y2K -C> compliant -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE OPENMG(LUNIT,SUBSET,JDATE) diff --git a/src/pkb.f b/src/pkb.f index f8139497..4e730e59 100644 --- a/src/pkb.f +++ b/src/pkb.f @@ -8,15 +8,15 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] NVAL - integer: Value to be encoded -C> @param[in] NBITS - integer: Number of bits of IBAY within +C> @param[in] NVAL -- integer: Value to be encoded +C> @param[in] NBITS -- integer: Number of bits of IBAY within C> which to encode NVAL -C> @param[out] IBAY - integer(*): Array containing encoded NVAL -C> @param[in,out] IBIT - integer: Bit pointer within IBAY -C> - On input, IBIT points to the bit within -C> IBAY after which to begin encoding NVAL. -C> - On output, IBIT points to the last bit -C> of IBAY which contains the encoded NVAL. +C> @param[out] IBAY -- integer(*): Array containing encoded NVAL +C> @param[in,out] IBIT -- integer: Bit pointer within IBAY +C> - On input, IBIT points to the bit within +C> IBAY after which to begin encoding NVAL. +C> - On output, IBIT points to the last bit +C> of IBAY which contains the encoded NVAL. C> C> @remarks C> - This subroutine is the logical inverse of subroutine upb(). @@ -27,15 +27,13 @@ C> software which has a larger integer size. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes -C> - 2014-12-03 J. Ator -- Call bort() if NBITS > NBITW +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2014-12-03 | J. Ator | Call bort() if NBITS > NBITW | C> SUBROUTINE PKB(NVAL,NBITS,IBAY,IBIT) diff --git a/src/pkbs1.f b/src/pkbs1.f index 755439a2..fd33d189 100644 --- a/src/pkbs1.f +++ b/src/pkbs1.f @@ -15,9 +15,9 @@ C> @authors D. Keyser C> @date 2005-11-29 C> -C> @param[in] IVAL - integer: Value to be stored -C> @param[in,out] MBAY - integer(*): BUFR message -C> @param[in] S1MNEM - character*(*): Location in Section 1 of +C> @param[in] IVAL -- integer: Value to be stored +C> @param[in,out] MBAY -- integer(*): BUFR message +C> @param[in] S1MNEM -- character*(*): Location in Section 1 of C> MBAY within which to store IVAL C> - 'BMT' = BUFR master table C> - 'OGCE' = Originating center @@ -49,9 +49,10 @@ C> be stored within BUFR messages encoded using BUFR edition 4. C> C> Program history log: -C> - 2005-11-29 J. Ator -- Original author -C> - 2006-04-14 D. Keyser -- Added options for 'MTYP', 'MSBT', 'YEAR', -C> 'MNTH', 'DAYS', 'HOUR', 'YCEN' and 'CENT' +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-11-29 | J. Ator | Original author | +C> | 2006-04-14 | D. Keyser | Added options for 'MTYP', 'MSBT', 'YEAR', 'MNTH', 'DAYS', 'HOUR', 'YCEN' and 'CENT' | C> SUBROUTINE PKBS1(IVAL,MBAY,S1MNEM) diff --git a/src/pkc.f b/src/pkc.f index 962e4c87..3cb8dd1d 100644 --- a/src/pkc.f +++ b/src/pkc.f @@ -8,16 +8,16 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] CHR - character*(*): String to be encoded -C> @param[in] NCHR - integer: Number of bytes of IBAY within +C> @param[in] CHR -- character*(*): String to be encoded +C> @param[in] NCHR -- integer: Number of bytes of IBAY within C> which to encode CHR (i.e. the number of C> characters in CHR) -C> @param[out] IBAY - integer(*): Array containing encoded CHR -C> @param[in,out] IBIT - integer: Bit pointer within IBAY -C> - On input, IBIT points to the bit within -C> IBAY after which to begin encoding CHR. -C> - On output, IBIT points to the last bit -C> of IBAY which contains the encoded CHR. +C> @param[out] IBAY -- integer(*): Array containing encoded CHR +C> @param[in,out] IBIT -- integer: Bit pointer within IBAY +C> - On input, IBIT points to the bit within +C> IBAY after which to begin encoding CHR. +C> - On output, IBIT points to the last bit +C> of IBAY which contains the encoded CHR. C> C> @remarks C> - This subroutine is the logical inverse of subroutine upc(). @@ -27,17 +27,15 @@ C> boundaries when encoded within IBAY. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 2003-11-04 J. Woollen -- Modified to be endian-independent -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally; use bort2() instead of bort() -C> - 2004-08-18 J. Ator -- Modified to be compatible with writlc() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 2003-11-04 | J. Woollen | Modified to be endian-independent | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally; use bort2() instead of bort() | +C> | 2004-08-18 | J. Ator | Modified to be compatible with writlc() | C> SUBROUTINE PKC(CHR,NCHR,IBAY,IBIT) diff --git a/src/pkftbv.f b/src/pkftbv.f index e62023ff..45e5beff 100644 --- a/src/pkftbv.f +++ b/src/pkftbv.f @@ -11,10 +11,10 @@ C> @author J. Ator C> @date 2005-11-29 C> -C> @param[in] NBITS - integer: Total number of bits in flag table -C> @param[in] IBIT - integer: Number of bit to be set +C> @param[in] NBITS -- integer: Total number of bits in flag table +C> @param[in] IBIT -- integer: Number of bit to be set C> -C> @returns pkftbv - real*8: Value equivalent to the setting of +C> @returns pkftbv -- real*8: Value equivalent to the setting of C> bit #IBIT within a flag table of NBITS bits C> C> @remarks @@ -24,7 +24,9 @@ C> (i.e. most significant) bit in any bit field. C> C> Program history log: -C> - 2005-11-29 J. Ator -- Original version +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-11-29 | J. Ator | Original version | C> REAL*8 FUNCTION PKFTBV(NBITS,IBIT) diff --git a/src/pkvs01.f b/src/pkvs01.f index 2806b4d9..bf7f59dd 100644 --- a/src/pkvs01.f +++ b/src/pkvs01.f @@ -25,8 +25,8 @@ C> @authors J. Ator C> @date 2005-11-29 C> -C> @param[in] IVAL - integer: Value to be stored -C> @param[in] S01MNEM - character*(*): Location where IVAL is to +C> @param[in] IVAL -- integer: Value to be stored +C> @param[in] S01MNEM -- character*(*): Location where IVAL is to C> be stored within Section 0 or Section 1 of C> all future output BUFR messages C> - 'BEN' = BUFR edition number @@ -63,9 +63,11 @@ C> be stored within BUFR messages encoded using BUFR edition 4. C> C> Program history log: -C> - 2005-11-29 J. Ator -- Original author -C> - 2006-04-14 D. Keyser -- Updated docblock -C> - 2015-03-03 J. Ator -- Use module MODA_S01CM +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-11-29 | J. Ator | Original author | +C> | 2006-04-14 | D. Keyser | Updated docblock | +C> | 2015-03-03 | J. Ator | Use module MODA_S01CM | C> SUBROUTINE PKVS01(S01MNEM,IVAL) diff --git a/src/rbytes.c b/src/rbytes.c index 6329dfb2..b1aef490 100644 --- a/src/rbytes.c +++ b/src/rbytes.c @@ -14,18 +14,18 @@ * @author J. Ator * @date 2005-11-29 * - * @param[in] mxmb - f77int*: Dimensioned size (in bytes) of + * @param[in] mxmb -- f77int*: Dimensioned size (in bytes) of * bmg; used by the function to ensure that * it doesn't overflow the bmg array - * @param[in] isloc - f77int: Starting byte within bmg into + * @param[in] isloc -- f77int: Starting byte within bmg into * which to read the next newbytes bytes - * @param[in] newbytes - f77int: Number of bytes to read from - * system file most recently opened for - * input/reading via subroutine cobfl() - * @param[out] bmg - char*: Array containing the newbytes bytes + * @param[in] newbytes -- f77int: Number of bytes to read from + * system file most recently opened for + * input/reading via subroutine cobfl() + * @param[out] bmg -- char*: Array containing the newbytes bytes * that were read, beginning at byte number * isloc - * @returns rbytes - f77int: return code + * @returns rbytes -- f77int: return code * - 0 = normal return * - 1 = overflow of bmg array * - -1 = end-of-file encountered while @@ -33,7 +33,9 @@ * - -2 = I/O error encountered while reading * * Program history log: - * - 2005-11-29 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2005-11-29 | J. Ator | Original author | */ f77int rbytes( char *bmg, f77int *mxmb, f77int isloc, f77int newbytes ) { diff --git a/src/rdmemm.f b/src/rdmemm.f index c7761536..95d2fa0e 100644 --- a/src/rdmemm.f +++ b/src/rdmemm.f @@ -12,52 +12,39 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] IMSG - integer: Number of BUFR message to be +C> @param[in] IMSG -- integer: Number of BUFR message to be C> read into scope for further processing, C> counting from the beginning of the C> internal arrays in memory -C> @param[out] SUBSET - character*8: Table A mnemonic for type of BUFR -C> message that was read into scope -C> (see [DX BUFR Tables](@ref dfbftab) for -C> further information about Table A mnemonics) -C> @param[out] JDATE - integer: Date-time stored within Section 1 of +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of BUFR +C> message that was read into scope +C> (see [DX BUFR Tables](@ref dfbftab) for +C> further information about Table A mnemonics) +C> @param[out] JDATE -- integer: Date-time stored within Section 1 of C> BUFR message that was read into scope, C> in format of either YYMMDDHH or YYYYMMDDHH, C> depending on the most C> recent call to subroutine datelen() -C> @param[out] IRET - integer: return code +C> @param[out] IRET -- integer: return code C> - 0 = requested message was C> successfully read into scope C> - -1 = requested message number could not C> be found in internal arrays C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT"; modified to make Y2K -C> compliant -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI); increased MAXMEM -C> from 4 Mb to 8 Mb -C> - 2000-09-19 J. Woollen -- Removed message decoding logic that had -C> been replicated in this and other read -C> routines and consolidated it into a new -C> routine cktaba(); maximum message -C> length increased from 10,000 to 20,000 -C> bytes -C> - 2001-08-15 D. Keyser -- Increased MAXMEM from 8 Mb to 16 Mb -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation -C> - 2004-08-09 J. Ator -- Maximum message length increased -C> from 20,000 to 50,000 bytes -C> - 2004-11-15 D. Keyser -- Increased MAXMEM from 16 Mb to 50 Mb -C> - 2009-03-23 J. Ator -- Modified to handle embedded BUFR table -C> (dictionary) messages; use errwrt() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32; increased MAXMEM from 4 Mb to 8 Mb | +C> | 2000-09-19 | J. Woollen | Removed logic that had been replicated in this and other read routines and consolidated it into a new routine cktaba(); maximum message length increased from 10,000 to 20,000 bytes | +C> | 2001-08-15 | D. Keyser | Increased MAXMEM from 8 Mb to 16 Mb | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2004-11-15 | D. Keyser | Increased MAXMEM from 16 Mb to 50 Mb | +C> | 2009-03-23 | J. Ator | Modified to handle embedded BUFR table (dictionary) messages; use errwrt() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE RDMEMM(IMSG,SUBSET,JDATE,IRET) diff --git a/src/rdmems.f b/src/rdmems.f index 3ceec479..22ec7474 100644 --- a/src/rdmems.f +++ b/src/rdmems.f @@ -8,10 +8,10 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] ISUB - integer: Number of data subset to be +C> @param[in] ISUB -- integer: Number of data subset to be C> read from BUFR message, counting from the C> beginning of the message -C> @param[out] IRET - integer: return code +C> @param[out] IRET -- integer: return code C> - 0 = requested data subset was C> successfully read C> - -1 = requested subset number could not @@ -26,24 +26,18 @@ C> call to subroutine ufbmem(). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT" -C> - 1998-10-27 J. Woollen -- Modified to correct problems caused by -C> in-lining code with fpp directives -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Maximum message length increased -C> from 10,000 to 20,000 bytes -C> - 2001-08-15 D. Keyser -- Increased MAXMEM from 8 Mb to 16 Mb -C> - 2004-08-09 J. Ator -- Maximum message length increased -C> from 20,000 to 50,000 bytes -C> - 2004-11-15 D. Keyser -- Increased MAXMEM from 16 Mb to 50 Mb -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 1998-10-27 | J. Woollen | Modified to correct problems caused by in-lining code with fpp directives | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2001-08-15 | D. Keyser | Increased MAXMEM from 8 Mb to 16 Mb | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2004-11-15 | D. Keyser | Increased MAXMEM from 16 Mb to 50 Mb | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE RDMEMS(ISUB,IRET) diff --git a/src/rdmtbb.f b/src/rdmtbb.f index 79cf3fbf..0c543199 100644 --- a/src/rdmtbb.f +++ b/src/rdmtbb.f @@ -11,51 +11,52 @@ C> @author J. Ator C> @date 2007-01-19 C> -C> @param[in] LUNSTB - integer: Fortran logical unit number for +C> @param[in] LUNSTB -- integer: Fortran logical unit number for C> ASCII file containing standard Table B C> information -C> @param[in] LUNLTB - integer: Fortran logical unit number for +C> @param[in] LUNLTB -- integer: Fortran logical unit number for C> ASCII file containing local Table B C> information -C> @param[in] MXMTBB - integer: Dimensioned size (in integers) of +C> @param[in] MXMTBB -- integer: Dimensioned size (in integers) of C> merged output arrays; used by the subroutine C> to ensure that it doesn't overflow these C> arrays -C> @param[out] IMT - integer: Master table +C> @param[out] IMT -- integer: Master table C> - This value is read from both ASCII C> files and must be identical between them. -C> @param[out] IMTV - integer: Version number of master table +C> @param[out] IMTV -- integer: Version number of master table C> - This value is read from the standard ASCII C> file. -C> @param[out] IOGCE - integer: Originating center +C> @param[out] IOGCE -- integer: Originating center C> - This value is read from the local ASCII C> file. -C> @param[out] ILTV - integer: Version number of local table +C> @param[out] ILTV -- integer: Version number of local table C> - This value is read from the local ASCII C> file. -C> @param[out] NMTBB - integer: Number of entries in merged output +C> @param[out] NMTBB -- integer: Number of entries in merged output C> arrays -C> @param[out] IMFXYN - integer(*): Merged array containing bit-wise -C> representations of FXY numbers -C> @param[out] CMSCL - character*4(*): Merged array containing +C> @param[out] IMFXYN -- integer(*): Merged array containing bit-wise +C> representations of FXY numbers +C> @param[out] CMSCL -- character*4(*): Merged array containing C> scale factors -C> @param[out] CMSREF - character*12(*): Merged array containing -C> reference values -C> @param[out] CMBW - character*4(*): Merged array containing +C> @param[out] CMSREF -- character*12(*): Merged array containing +C> reference values +C> @param[out] CMBW -- character*4(*): Merged array containing C> bit widths -C> @param[out] CMUNIT - character*24(*): Merged array containing units -C> @param[out] CMMNEM - character*8(*): Merged array containing +C> @param[out] CMUNIT -- character*24(*): Merged array containing units +C> @param[out] CMMNEM -- character*8(*): Merged array containing C> mnemonics -C> @param[out] CMDSC - character*4(*): Merged array containing +C> @param[out] CMDSC -- character*4(*): Merged array containing C> descriptor codes -C> @param[out] CMELEM - character*120(*): Merged array containing -C> element names +C> @param[out] CMELEM -- character*120(*): Merged array containing +C> element names C> C> Program history log: -C> - 2007-01-19 J. Ator -- Original author -C> - 2021-01-08 J. Ator -- Modified mstabs array declarations -C> for GNUv10 portability -C> - 2021-05-17 J. Ator -- Allow up to 24 characters in cmunit +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2007-01-19 | J. Ator | Original author | +C> | 2021-01-08 | J. Ator | Modified mstabs array declarations for GNUv10 portability | +C> | 2021-05-17 | J. Ator | Allow up to 24 characters in cmunit | C> SUBROUTINE RDMTBB ( LUNSTB, LUNLTB, MXMTBB, . IMT, IMTV, IOGCE, ILTV, diff --git a/src/rdmtbd.f b/src/rdmtbd.f index b730ccc7..4ec6861a 100644 --- a/src/rdmtbd.f +++ b/src/rdmtbd.f @@ -11,53 +11,54 @@ C> @author J. Ator C> @date 2007-01-19 C> -C> @param[in] LUNSTD - integer: Fortran logical unit number for +C> @param[in] LUNSTD -- integer: Fortran logical unit number for C> ASCII file containing standard Table D C> information -C> @param[in] LUNLTD - integer: Fortran logical unit number for +C> @param[in] LUNLTD -- integer: Fortran logical unit number for C> ASCII file containing local Table D C> information -C> @param[in] MXMTBD - integer: Dimensioned size (in integers) of +C> @param[in] MXMTBD -- integer: Dimensioned size (in integers) of C> merged output arrays; used by the subroutine C> to ensure that it doesn't overflow these C> arrays -C> @param[in] MXELEM - integer: Maximum number of elements to be +C> @param[in] MXELEM -- integer: Maximum number of elements to be C> stored per Table D sequence within merged C> output arrays; used by the subroutine to C> ensure that it doesn't overflow these arrays -C> @param[out] IMT - integer: Master table +C> @param[out] IMT -- integer: Master table C> - This value is read from both ASCII C> files and must be identical between them. -C> @param[out] IMTV - integer: Version number of master table +C> @param[out] IMTV -- integer: Version number of master table C> - This value is read from the standard ASCII C> file. -C> @param[out] IOGCE - integer: Originating center +C> @param[out] IOGCE -- integer: Originating center C> - This value is read from the local ASCII C> file. -C> @param[out] ILTV - integer: Version number of local table +C> @param[out] ILTV -- integer: Version number of local table C> - This value is read from the local ASCII C> file. -C> @param[out] NMTBD - integer: Number of entries in merged output +C> @param[out] NMTBD -- integer: Number of entries in merged output C> arrays -C> @param[out] IMFXYN - integer(*): Merged array containing bit-wise -C> representations of FXY numbers -C> @param[out] CMMNEM - character*8(*): Merged array containing -C> mnemonics -C> @param[out] CMDSC - character*4(*): Merged array containing +C> @param[out] IMFXYN -- integer(*): Merged array containing bit-wise +C> representations of FXY numbers +C> @param[out] CMMNEM -- character*8(*): Merged array containing +C> mnemonics +C> @param[out] CMDSC -- character*4(*): Merged array containing C> descriptor codes -C> @param[out] CMSEQ - character*120(*): Merged array containing +C> @param[out] CMSEQ -- character*120(*): Merged array containing C> sequence names -C> @param[out] NMELEM - integer(*): Merged array containing number of -C> elements stored for each sequence -C> @param[out] IEFXYN - integer(*,*): Merged array containing bit-wise -C> representations of element FXY numbers -C> @param[out] CEELEM - character*120(*,*): Merged array containing -C> element names +C> @param[out] NMELEM -- integer(*): Merged array containing number of +C> elements stored for each sequence +C> @param[out] IEFXYN -- integer(*,*): Merged array containing bit-wise +C> representations of element FXY numbers +C> @param[out] CEELEM -- character*120(*,*): Merged array containing +C> element names C> C> Program history log: -C> - 2007-01-19 J. Ator -- Original author -C> - 2021-01-08 J. Ator -- Modified mstabs array declarations -C> for GNUv10 portability +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2007-01-19 | J. Ator | Original author | +C> | 2021-01-08 | J. Ator | Modified mstabs array declarations for GNUv10 portability | C> SUBROUTINE RDMTBD ( LUNSTD, LUNLTD, MXMTBD, MXELEM, . IMT, IMTV, IOGCE, ILTV, diff --git a/src/rdmtbf.f b/src/rdmtbf.f index 404b7fda..f5cd8487 100644 --- a/src/rdmtbf.f +++ b/src/rdmtbf.f @@ -11,15 +11,17 @@ C> @author J. Ator C> @date 2017-10-17 C> -C> @param[in] LUNSTF - integer: Fortran logical unit number for +C> @param[in] LUNSTF -- integer: Fortran logical unit number for C> ASCII file containing standard Code/Flag table C> information -C> @param[in] LUNLTF - integer: Fortran logical unit number for +C> @param[in] LUNLTF -- integer: Fortran logical unit number for C> ASCII file containing local Code/Flag table C> information C> C> Program history log: -C> - 2017-10-17 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2017-10-17 | J. Ator | Original author | C> SUBROUTINE RDMTBF ( LUNSTF, LUNLTF ) diff --git a/src/readerme.f b/src/readerme.f index f7285f66..f451a364 100644 --- a/src/readerme.f +++ b/src/readerme.f @@ -9,18 +9,18 @@ C> @authors J. Ator C> @date 1995-06-28 C> -C> @param[in] MESG - integer(*): BUFR message -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] MESG -- integer(*): BUFR message +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[out] SUBSET - character*8: Table A mnemonic for type of BUFR +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of BUFR C> message that was read C> (see [DX BUFR Tables](@ref dfbftab) C> for further information about Table A mnemonics) -C> @param[out] JDATE - integer: Date-time stored within Section 1 of +C> @param[out] JDATE -- integer: Date-time stored within Section 1 of C> BUFR message that was read, in format of either C> YYMMDDHH or YYYYMMDDHH, depending on the most C> recent call to subroutine datelen() -C> @param[out] IRET - integer: return code +C> @param[out] IRET -- integer: return code C> - 0 = MESG was successfully read C> - 11 = MESG contained a DX BUFR table message C> - -1 = MESG contained an unrecognized @@ -55,40 +55,21 @@ C> DX BUFR table message. C> C> Program history log: -C> - 1995-06-28 J. Woollen -- Original author -C> - 1997-07-29 J. Woollen -- Modified to process GOES soundings -C> from NESDIS -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT"; modified to make Y2K -C> compliant; improved machine portability -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI); increased the -C> maximum number of possible descriptors in -C> a subset from 1000 to 3000 -C> - 2000-09-19 J. Woollen -- Removed message decoding logic that had -C> been replicated in this and other read -C> routines and consolidated it into a new -C> routine cktaba(); maximum message -C> length increased from 10,000 to 20,000 -C> bytes -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2004-08-18 J. Ator -- Modified 'BUFR' string test for portability -C> to EBCDIC machines; maximum message length -C> increased from 20,000 to 50,000 bytes -C> - 2005-11-29 J. Ator -- Use ichkstr() -C> - 2009-03-23 D. Keyser -- Call bort() in case of MBAY overflow -C> - 2009-03-23 J. Ator -- Add logic to allow Section 3 decoding; -C> add logic to process dictionary messages -C> - 2012-06-07 J. Ator -- Don't respond to DX table messages if -C> Section 3 decoding is being used -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1995-06-28 | J. Woollen | Original author | +C> | 1997-07-29 | J. Woollen | Modified to process GOES soundings from NESDIS | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant; improved machine portability | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32; increased the maximum number of possible descriptors in a subset from 1000 to 3000 | +C> | 2000-09-19 | J. Woollen | Removed logic that had been replicated in this and other read routines and consolidated it into a new routine cktaba(); maximum message length increased from 10,000 to 20,000 bytes | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-18 | J. Ator | Modified 'BUFR' string test for portability to EBCDIC machines; maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-11-29 | J. Ator | Use ichkstr() | +C> | 2009-03-23 | D. Keyser | Call bort() in case of MBAY overflow | +C> | 2009-03-23 | J. Ator | Add logic to allow Section 3 decoding; add logic to process dictionary messages | +C> | 2012-06-07 | J. Ator | Don't respond to DX table messages if Section 3 decoding is being used | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE READERME(MESG,LUNIT,SUBSET,JDATE,IRET) diff --git a/src/readlc.f b/src/readlc.f index 864bed31..65827316 100644 --- a/src/readlc.f +++ b/src/readlc.f @@ -13,9 +13,9 @@ C> @authors J. Ator C> @date 2003-11-04 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file -C> @param[out] CHR - character*(*): Value corresponding to STR -C> @param[in] STR - character*(*): Table B mnemonic of long character +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file +C> @param[out] CHR -- character*(*): Value corresponding to STR +C> @param[in] STR -- character*(*): Table B mnemonic of long character C> string to be retrieved, possibly supplemented C> with an ordinal occurrence notation C> @@ -44,20 +44,16 @@ C> function icbfms(). C> C> Program history log: -C> - 2003-11-04 J. Woollen -- Original author -C> - 2004-08-09 J. Ator -- Maximum message length increased from -C> 20,000 to 50,000 bytes -C> - 2007-01-19 J. Ator -- Replaced call to parseq with call to -C> parstr() -C> - 2009-03-23 J. Ator -- Added capability for compressed messages; -C> added check for overflow of chr; added '#' -C> option for more than one occurrence of STR -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2012-12-07 J. Ator -- Allow str mnemonic length of up to 14 chars -C> when used with '#' occurrence code -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2020-09-09 J. Ator -- Set CHR to "missing" instead of all blanks -C> if STR isn't found in subset +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2003-11-04 | J. Woollen | Original author | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2007-01-19 | J. Ator | Replaced call to parseq with call to parstr() | +C> | 2009-03-23 | J. Ator | Added capability for compressed messages; added check for overflow of chr; added '#' option for more than one occurrence of STR | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2012-12-07 | J. Ator | Allow str mnemonic length of up to 14 chars when used with '#' occurrence code | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2020-09-09 | J. Ator | Set CHR to "missing" instead of all blanks if STR isn't found in subset | C> SUBROUTINE READLC(LUNIT,CHR,STR) diff --git a/src/readmg.f b/src/readmg.f index 1e6b8aa1..1a20404a 100644 --- a/src/readmg.f +++ b/src/readmg.f @@ -12,17 +12,17 @@ C> @authors J. Ator C> @date 1994-01-06 C> -C> @param[in] LUNXX - integer: Absolute value is Fortran logical unit +C> @param[in] LUNXX -- integer: Absolute value is Fortran logical unit C> number for BUFR file -C> @param[out] SUBSET - character*8: Table A mnemonic for type of BUFR +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of BUFR C> message that was read C> (see [DX BUFR Tables](@ref dfbftab) C> for further information about Table A mnemonics) -C> @param[out] JDATE - integer: Date-time stored within Section 1 of +C> @param[out] JDATE -- integer: Date-time stored within Section 1 of C> BUFR message that was read, in format of either C> YYMMDDHH or YYYYMMDDHH, depending on the most C> recent call to subroutine datelen() -C> @param[out] IRET - integer: return code +C> @param[out] IRET -- integer: return code C> - 0 = new BUFR message was successfully C> read into internal arrays C> - -1 = there are no more BUFR messages in @@ -52,49 +52,23 @@ C> certain legacy application programs. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1996-11-25 J. Woollen -- Modified to exit gracefully when the BUFR -C> file is positioned after an "end-of-file" -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT"; modified to make Y2K -C> compliant -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI); modified with -C> semantic adjustments to ameliorate compiler -C> complaints from Linux boxes (increases -C> portability) -C> - 2000-09-19 J. Woollen -- Removed message decoding logic that had -C> been replicated in this and other read -C> routines and consolidated it into a new -C> routine cktaba(); maximum message -C> length increased from 10,000 to 20,000 -C> bytes -C> - 2002-05-14 J. Woollen -- Removed entry point datelen() (it became a -C> separate routine in the BUFRLIB to increase -C> portability to other platforms) -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2004-08-09 J. Ator -- Maximum message length increased from -C> 20,000 to 50,000 bytes -C> - 2005-11-29 J. Ator -- Added rdmsgw() and rdmsgb calls to simulate -C> readibm; added LUNXX < 0 option to simulate -C> readft -C> - 2009-03-23 J. Ator -- Add logic to allow Section 3 decoding; -C> add logic to process internal dictionary -C> messages -C> - 2012-06-07 J. Ator -- Don't respond to internal dictionary -C> messages if Section 3 decoding is being used -C> - 2012-09-15 J. Woollen -- Convert to C language I/O interface; -C> remove code to reread message as bytes; -C> replace Fortran BACKSPACE with C backbufr() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1996-11-25 | J. Woollen | Modified to exit gracefully when the BUFR file is positioned after an "end-of-file" | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32; modified with semantic adjustments to ameliorate compiler complaints from Linux boxes | +C> | 2000-09-19 | J. Woollen | Removed logic that had been replicated in this and other read routines and consolidated it into a new routine cktaba(); maximum message length increased from 10,000 to 20,000 bytes | +C> | 2002-05-14 | J. Woollen | Removed entry point datelen() (it became a separate routine in the BUFRLIB) | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-11-29 | J. Ator | Added rdmsgw() and rdmsgb calls to simulate readibm; added LUNXX < 0 option to simulate readft | +C> | 2009-03-23 | J. Ator | Add logic to allow Section 3 decoding; add logic to process internal dictionary messages | +C> | 2012-06-07 | J. Ator | Don't respond to internal dictionary messages if Section 3 decoding is being used | +C> | 2012-09-15 | J. Woollen | Convert to C language I/O interface; remove code to reread message as bytes; replace Fortran BACKSPACE with C backbufr() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE READMG(LUNXX,SUBSET,JDATE,IRET) diff --git a/src/readmm.f b/src/readmm.f index 012d3932..ccd88861 100644 --- a/src/readmm.f +++ b/src/readmm.f @@ -17,43 +17,39 @@ C> @author J. Woollen C> @date 1999-11-18 C> -C> @param[in,out] IMSG - integer: Message pointer within internal arrays -C> - On input, IMSG is the number of the BUFR -C> message to be read into scope for further -C> processing, counting from the beginning of -C> the internal arrays in memory -C> - On output, IMSG is incremented by one from -C> its input value -C> @param[out] SUBSET - character*8: Table A mnemonic for type of BUFR +C> @param[in,out] IMSG -- integer: Message pointer within internal arrays +C> - On input, IMSG is the number of the BUFR +C> message to be read into scope for further +C> processing, counting from the beginning of +C> the internal arrays in memory +C> - On output, IMSG is incremented by one from +C> its input value +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of BUFR C> message that was read into scope C> (see [DX BUFR Tables](@ref dfbftab) for C> further information about Table A mnemonics) -C> @param[out] JDATE - integer: Date-time stored within Section 1 of +C> @param[out] JDATE -- integer: Date-time stored within Section 1 of C> BUFR message that was read into scope, C> in format of either YYMMDDHH or YYYYMMDDHH, C> depending on the most C> recent call to subroutine datelen() -C> @param[out] IRET - integer: return code +C> @param[out] IRET -- integer: return code C> - 0 = requested message was C> successfully read into scope C> - -1 = requested message number could not C> be found in internal arrays C> C> Program history log: -C> - 1999-11-18 J. Woollen -- Original author -C> - 2000-09-19 J. Woollen -- Maximum message length increased -C> from 10,000 to 20,000 bytes -C> - 2001-08-15 D. Keyser -- Increased MAXMEM from 8 Mb to 16 Mb -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally; increased MAXMSG from 50000 -C> to 200000 -C> - 2004-08-09 J. Ator -- Maximum message length increased -C> from 20,000 to 50,000 bytes -C> - 2004-11-15 D. Keyser -- Increased MAXMEM from 16 Mb to 50 Mb -C> - 2009-03-23 J. Ator -- Rewrote to call rdmemm() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1999-11-18 | J. Woollen | Original author | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2001-08-15 | D. Keyser | Increased MAXMEM from 8 Mb to 16 Mb | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2004-11-15 | D. Keyser | Increased MAXMEM from 16 Mb to 50 Mb | +C> | 2009-03-23 | J. Ator | Rewrote to call rdmemm() | C> SUBROUTINE READMM(IMSG,SUBSET,JDATE,IRET) diff --git a/src/readns.f b/src/readns.f index edd6595b..096f7981 100644 --- a/src/readns.f +++ b/src/readns.f @@ -9,18 +9,18 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[out] SUBSET - character*8: Table A mnemonic for type of +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of C> data subset that was read C> (see [DX BUFR Tables](@ref dfbftab) C> for further information about Table A mnemonics) -C> @param[out] JDATE - integer: Date-time stored within Section 1 of +C> @param[out] JDATE -- integer: Date-time stored within Section 1 of C> BUFR message containing data subset that C> was read, in format of either C> YYMMDDHH or YYYYMMDDHH, depending on the most C> recent call to subroutine datelen() -C> @param[out] IRET - integer: return code +C> @param[out] IRET -- integer: return code C> - 0 = new BUFR data subset was successfully C> read into internal arrays C> - -1 = there are no more BUFR data subsets @@ -37,19 +37,13 @@ C> [values-reading subroutines](@ref hierarchy). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT"; modified to make Y2K -C> compliant -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2003-11-04 D. Keyser -- MAXJL (maximum number of jump/link entries) -C> increased from 15000 to 16000 (was in -C> verification version) -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2003-11-04 | D. Keyser | MAXJL (maximum number of jump/link entries) increased from 15000 to 16000 | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE READNS(LUNIT,SUBSET,JDATE,IRET) diff --git a/src/readsb.f b/src/readsb.f index ca754380..a63b0d65 100644 --- a/src/readsb.f +++ b/src/readsb.f @@ -7,8 +7,8 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file -C> @param[out] IRET - integer: return code +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file +C> @param[out] IRET -- integer: return code C> - 0 = new BUFR data subset was successfully C> read into internal arrays C> - -1 = there are no more BUFR data subsets in @@ -32,29 +32,17 @@ C> to read in the next message from logical unit LUNIT. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT" -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Added call to new routine rdcmps() allowing -C> subsets to also be decoded from compressed -C> BUFR messages; maximum length increased -C> from 10,000 to 20,000 bytes -C> - 2002-05-14 J. Woollen -- Corrected error relating to certain -C> foreign file types; removed old Cray -C> compiler directives -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2004-08-09 J. Ator -- Maximum message length increased from -C> 20,000 to 50,000 bytes -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2000-09-19 | J. Woollen | Added call to new routine rdcmps() allowing subsets to also be decoded from compressed BUFR messages; maximum length increased from 10,000 to 20,000 bytes | +C> | 2002-05-14 | J. Woollen | Corrected error relating to certain foreign file types; removed old Cray compiler directives | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE READSB(LUNIT,IRET) diff --git a/src/restd.c b/src/restd.c index b42517b8..b2e200a1 100644 --- a/src/restd.c +++ b/src/restd.c @@ -23,20 +23,21 @@ * @author J. Ator * @date 2004-08-18 * - * @param[in] lun - f77int*: Internal Fortran I/O stream index - * associated with BUFR file - * @param[in] tddesc - f77int*: Bit-wise representation of FXY value - * for local Table D descriptor - * @param[out] nctddesc - f77int*: Number of WMO-standard child - * descriptors returned in ctddesc - * @param[out] ctddesc - f77int*: Array of WMO-standard child - * descriptors equivalent to tddesc + * @param[in] lun -- f77int*: Internal Fortran I/O stream index + * associated with BUFR file + * @param[in] tddesc -- f77int*: Bit-wise representation of FXY value + * for local Table D descriptor + * @param[out] nctddesc -- f77int*: Number of WMO-standard child + * descriptors returned in ctddesc + * @param[out] ctddesc -- f77int*: Array of WMO-standard child + * descriptors equivalent to tddesc * * Program history log: - * - 2004-08-18 J. Ator -- Original author - * - 2012-04-30 J. Ator -- Use long cast for ibit in sprintf stmt - * - 2021-08-18 J. Ator -- Use cwork to silence superfluous GNU - * compiler warnings + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2004-08-18 | J. Ator | Original author | + * | 2012-04-30 | J. Ator | Use long cast for ibit in sprintf stmt | + * | 2021-08-18 | J. Ator | Use cwork to silence superfluous GNU compiler warnings | */ void restd( f77int *lun, f77int *tddesc, f77int *nctddesc, f77int ctddesc[] ) diff --git a/src/rtrcpt.f b/src/rtrcpt.f index b7fb0a8e..f71660be 100644 --- a/src/rtrcpt.f +++ b/src/rtrcpt.f @@ -12,23 +12,25 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[out] IYR - integer: Tank receipt year -C> @param[out] IMO - integer: Tank receipt month -C> @param[out] IDY - integer: Tank receipt day -C> @param[out] IHR - integer: Tank receipt hour -C> @param[out] IMI - integer: Tank receipt minute -C> @param[out] IRET - integer: return code +C> @param[out] IYR -- integer: Tank receipt year +C> @param[out] IMO -- integer: Tank receipt month +C> @param[out] IDY -- integer: Tank receipt day +C> @param[out] IHR -- integer: Tank receipt hour +C> @param[out] IMI -- integer: Tank receipt minute +C> @param[out] IRET -- integer: return code C> - 0 = normal return C> - -1 = no tank receipt time exists within the C> BUFR message currently open for input C> within internal arrays C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author -C> - 2013-10-07 J. Ator -- Modified to call rtrcptb() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | +C> | 2013-10-07 | J. Ator | Modified to call rtrcptb() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE RTRCPT(LUNIT,IYR,IMO,IDY,IHR,IMI,IRET) diff --git a/src/rtrcptb.f b/src/rtrcptb.f index cde300ae..b1f4f216 100644 --- a/src/rtrcptb.f +++ b/src/rtrcptb.f @@ -12,19 +12,21 @@ C> @author J. Ator C> @date 2013-10-07 C> -C> @param[in] MBAY - integer(*): BUFR message -C> @param[out] IYR - integer: Tank receipt year -C> @param[out] IMO - integer: Tank receipt month -C> @param[out] IDY - integer: Tank receipt day -C> @param[out] IHR - integer: Tank receipt hour -C> @param[out] IMI - integer: Tank receipt minute -C> @param[out] IRET - integer: return code +C> @param[in] MBAY -- integer(*): BUFR message +C> @param[out] IYR -- integer: Tank receipt year +C> @param[out] IMO -- integer: Tank receipt month +C> @param[out] IDY -- integer: Tank receipt day +C> @param[out] IHR -- integer: Tank receipt hour +C> @param[out] IMI -- integer: Tank receipt minute +C> @param[out] IRET -- integer: return code C> - 0 = normal return C> - -1 = no tank receipt time exists within C> MBAY C> C> Program history log: -C> - 2013-10-07 J. Ator -- Original author; adapted from rtrcpt() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2013-10-07 | J. Ator | Original author; adapted from rtrcpt() | C> SUBROUTINE RTRCPTB(MBAY,IYR,IMO,IDY,IHR,IMI,IRET) diff --git a/src/setblock.f b/src/setblock.f index e99d398e..f056a282 100644 --- a/src/setblock.f +++ b/src/setblock.f @@ -27,12 +27,12 @@ C> @author J. Woollen C> @date 2012-09-15 C> -C> @param[in] IBLK - integer: Flag indicating whether future BUFR -C> output messages should be encapsulated with -C> control words -C> - -1 = Yes, using little-endian control words -C> - 0 = No (the default) -C> - 1 = Yes, using big-endian control words +C> @param[in] IBLK -- integer: Flag indicating whether future BUFR +C> output messages should be encapsulated with +C> control words +C> - -1 = Yes, using little-endian control words +C> - 0 = No (the default) +C> - 1 = Yes, using big-endian control words C> C> @remarks C> - This subroutine can be used to generate BUFR files consistent @@ -48,7 +48,9 @@ C> BUFR messages to output files. C> C> Program history log: -C> - 2012-09-15 J. Woollen -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2012-09-15 | J. Woollen | Original author | C> SUBROUTINE SETBLOCK(IBLK) diff --git a/src/setbmiss.f b/src/setbmiss.f index 070debb8..524fb8f4 100644 --- a/src/setbmiss.f +++ b/src/setbmiss.f @@ -7,8 +7,8 @@ C> @author J. Woollen C> @date 2012-09-15 C> -C> @param[in] XMISS - real*8: New placeholder value to represent -C> "missing" data +C> @param[in] XMISS -- real*8: New placeholder value to represent +C> "missing" data C> C>
This subroutine can be called at any time from within an C> application program, and the value XMISS will then be treated as @@ -32,7 +32,9 @@ C> regulations. C> C> Program history log: -C> - 2012-09-15 J. Woollen -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2012-09-15 | J. Woollen | Original author | C> SUBROUTINE SETBMISS(XMISS) diff --git a/src/setvalnb.f b/src/setvalnb.f index ec9d51c0..3c8ad1a2 100644 --- a/src/setvalnb.f +++ b/src/setvalnb.f @@ -15,29 +15,29 @@ C> @author J. Ator C> @date 2016-07-29 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] TAGPV - character*(*): Pivot mnemonic; the subroutine +C> @param[in] TAGPV -- character*(*): Pivot mnemonic; the subroutine C> will first search for the (NTAGPV)th occurrence C> of this mnemonic, counting from the beginning C> of the overall subset definition -C> @param[in] NTAGPV - integer: Ordinal occurrence of TAGPV to search for, +C> @param[in] NTAGPV -- integer: Ordinal occurrence of TAGPV to search for, C> counting from the beginning of the overall C> subset definition -C> @param[in] TAGNB - character*(*): Nearby mnemonic; assuming TAGPV is +C> @param[in] TAGNB -- character*(*): Nearby mnemonic; assuming TAGPV is C> successfully found, the subroutine will then search C> nearby for the (NTAGNB)th occurrence of TAGNB and C> store R8VAL as the corresponding value -C> @param[in] NTAGNB - integer: Ordinal occurrence of TAGNB to search for, +C> @param[in] NTAGNB -- integer: Ordinal occurrence of TAGNB to search for, C> counting from the location of TAGPV within the C> overall subset definition. If NTAGNB is positive, C> the subroutine will search in a forward direction C> from the location of TAGPV; otherwise, if NTAGNB is C> negative, it will instead search in a backwards C> direction from the location of TAGPV. -C> @param[in] R8VAL - real*8: Value to be stored corresponding to +C> @param[in] R8VAL -- real*8: Value to be stored corresponding to C> (NTAGNB)th occurrence of TAGNB within the subset -C> @param[out] IRET - integer: return code +C> @param[out] IRET -- integer: return code C> - 0 = R8VAL was successfully stored C> - -1 = the (NTAGNB)th occurence of mnemonic TAGNB C> could not be found, or some other error @@ -48,7 +48,9 @@ C> BUFRLIB [message-writing subroutines](@ref hierarchy). C> C> Program history log: -C> - 2016-07-29 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2016-07-29 | J. Ator | Original author | C> SUBROUTINE SETVALNB ( LUNIT, TAGPV, NTAGPV, TAGNB, NTAGNB, . R8VAL, IRET ) diff --git a/src/sntbbe.f b/src/sntbbe.f index 387a37c4..3e2f565b 100644 --- a/src/sntbbe.f +++ b/src/sntbbe.f @@ -7,38 +7,37 @@ C> @author J. Ator C> @date 2007-01-19 C> -C> @param[in] IFXYN - integer: Bit-wise representation of FXY number -C> @param[in] LINE - character*(*): Table B entry -C> @param[in] MXMTBB - integer: Dimensioned size (in integers) of +C> @param[in] IFXYN -- integer: Bit-wise representation of FXY number +C> @param[in] LINE -- character*(*): Table B entry +C> @param[in] MXMTBB -- integer: Dimensioned size (in integers) of C> merged output arrays; used by the subroutine C> to ensure that it doesn't overflow these C> arrays -C> @param[out] NMTBB - integer: Number of entries in merged output +C> @param[out] NMTBB -- integer: Number of entries in merged output C> arrays -C> @param[out] IMFXYN - integer(*): Merged array containing bit-wise +C> @param[out] IMFXYN-- integer(*): Merged array containing bit-wise C> representations of FXY numbers -C> @param[out] CMSCL - character*4(*): Merged array containing +C> @param[out] CMSCL -- character*4(*): Merged array containing C> scale factors -C> @param[out] CMSREF - character*12(*): Merged array containing -C> reference values -C> @param[out] CMBW - character*4(*): Merged array containing +C> @param[out] CMSREF -- character*12(*): Merged array containing +C> reference values +C> @param[out] CMBW -- character*4(*): Merged array containing C> bit widths -C> @param[out] CMUNIT - character*24(*): Merged array containing units -C> @param[out] CMMNEM - character*8(*): Merged array containing -C> mnemonics -C> @param[out] CMDSC - character*4(*): Merged array containing +C> @param[out] CMUNIT -- character*24(*): Merged array containing units +C> @param[out] CMMNEM -- character*8(*): Merged array containing +C> mnemonics +C> @param[out] CMDSC -- character*4(*): Merged array containing C> descriptor codes -C> @param[out] CMELEM - character*120(*): Merged array containing -C> element names +C> @param[out] CMELEM -- character*120(*): Merged array containing +C> element names C> C> Program history log: -C> - 2007-01-19 J. Ator -- Original author -C> - 2021-01-08 J. Ator -- Modified mstabs array declarations -C> for GNUv10 portability -C> - 2021-05-17 J. Ator -- Allow up to 24 characters in cmunit -C> - 2021-09-30 J. Ator -- Replace jstchr with Fortran intrinsic -C> adjustl; replace rjust with Fortran -C> intrinsic adjustr +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2007-01-19 | J. Ator | Original author | +C> | 2021-01-08 | J. Ator | Modified mstabs array declarations for GNUv10 portability | +C> | 2021-05-17 | J. Ator | Allow up to 24 characters in cmunit | +C> | 2021-09-30 | J. Ator | Replace jstchr with Fortran intrinsic adjustl; replace rjust with Fortran intrinsic adjustr | C> SUBROUTINE SNTBBE ( IFXYN, LINE, MXMTBB, . NMTBB, IMFXYN, CMSCL, CMSREF, CMBW, diff --git a/src/sntbde.f b/src/sntbde.f index 0e4363af..098c8a8b 100644 --- a/src/sntbde.f +++ b/src/sntbde.f @@ -9,41 +9,41 @@ C> @author J. Ator C> @date 2007-01-19 C> -C> @param[in] LUNT - integer: Fortran logical unit number for +C> @param[in] LUNT -- integer: Fortran logical unit number for C> ASCII file containing Table D information -C> @param[in] IFXYN - integer: Bit-wise representation of FXY number -C> @param[in] LINE - character*(*): First line of Table D entry -C> @param[in] MXMTBD - integer: Dimensioned size (in integers) of +C> @param[in] IFXYN -- integer: Bit-wise representation of FXY number +C> @param[in] LINE -- character*(*): First line of Table D entry +C> @param[in] MXMTBD -- integer: Dimensioned size (in integers) of C> merged output arrays; used by the subroutine C> to ensure that it doesn't overflow these C> arrays -C> @param[in] MXELEM - integer: Maximum number of elements to be +C> @param[in] MXELEM -- integer: Maximum number of elements to be C> stored per Table D sequence within merged C> output arrays; used by the subroutine to C> ensure that it doesn't overflow these arrays -C> @param[out] NMTBD - integer: Number of entries in merged output +C> @param[out] NMTBD -- integer: Number of entries in merged output C> arrays -C> @param[out] IMFXYN - integer(*): Merged array containing bit-wise -C> representations of FXY numbers -C> @param[out] CMMNEM - character*8(*): Merged array containing -C> mnemonics -C> @param[out] CMDSC - character*4(*): Merged array containing +C> @param[out] IMFXYN -- integer(*): Merged array containing bit-wise +C> representations of FXY numbers +C> @param[out] CMMNEM -- character*8(*): Merged array containing +C> mnemonics +C> @param[out] CMDSC -- character*4(*): Merged array containing C> descriptor codes -C> @param[out] CMSEQ - character*120(*): Merged array containing +C> @param[out] CMSEQ -- character*120(*): Merged array containing C> sequence names -C> @param[out] NMELEM - integer(*): Merged array containing number of -C> elements stored for each sequence -C> @param[out] IEFXYN - integer(*,*): Merged array containing bit-wise -C> representations of element FXY numbers -C> @param[out] CEELEM - character*120(*,*): Merged array containing -C> element names +C> @param[out] NMELEM -- integer(*): Merged array containing number of +C> elements stored for each sequence +C> @param[out] IEFXYN -- integer(*,*): Merged array containing bit-wise +C> representations of element FXY numbers +C> @param[out] CEELEM -- character*120(*,*): Merged array containing +C> element names C> C> Program history log: -C> - 2007-01-19 J. Ator -- Original author -C> - 2021-01-08 J. Ator -- Modified mstabs array declarations -C> for GNUv10 portability -C> - 2021-09-30 J. Ator -- Replace jstchr with Fortran intrinsic -C> adjustl +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2007-01-19 | J. Ator | Original author | +C> | 2021-01-08 | J. Ator | Modified mstabs array declarations for GNUv10 portability | +C> | 2021-09-30 | J. Ator | Replace jstchr with Fortran intrinsic adjustl | C> SUBROUTINE SNTBDE ( LUNT, IFXYN, LINE, MXMTBD, MXELEM, . NMTBD, IMFXYN, CMMNEM, CMDSC, CMSEQ, diff --git a/src/sntbfe.f b/src/sntbfe.f index 509b1584..ddc398ce 100644 --- a/src/sntbfe.f +++ b/src/sntbfe.f @@ -9,17 +9,18 @@ C> @author J. Ator C> @date 2017-11-02 C> -C> @param[in] LUNT - integer: Fortran logical unit number for +C> @param[in] LUNT -- integer: Fortran logical unit number for C> ASCII file containing Code/Flag table C> information -C> @param[in] IFXYN - integer: Bit-wise representation of FXY number -C> @param[in] LINE - character*(*): First line of Code/Flag table +C> @param[in] IFXYN -- integer: Bit-wise representation of FXY number +C> @param[in] LINE -- character*(*): First line of Code/Flag table C> entry C> C> Program history log: -C> - 2017-11-02 J. ATOR -- Original author -C> - 2021-09-30 J. Ator -- Replace jstchr with Fortran intrinsic -C> adjustl +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2017-11-02 | J. Ator | Original author | +C> | 2021-09-30 | J. Ator | Replace jstchr with Fortran intrinsic adjustl | C> SUBROUTINE SNTBFE ( LUNT, IFXYN, LINE ) diff --git a/src/sorttbf.c b/src/sorttbf.c index 92b01eef..57df8b79 100644 --- a/src/sorttbf.c +++ b/src/sorttbf.c @@ -13,7 +13,9 @@ * @date 2017-11-16 * * Program history log: - * - 2017-11-16 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2017-11-16 | J. Ator | Original author | */ void sorttbf( void ) { diff --git a/src/srchtbf.c b/src/srchtbf.c index f0db4d40..6452a81c 100644 --- a/src/srchtbf.c +++ b/src/srchtbf.c @@ -20,54 +20,56 @@ * @author J. Ator * @date 2018-01-11 * - * @param[in] ifxyi - f77int*: Bit-wise representation of FXY number - * to search for - * @param[in] ivali - f77int*: Value (code figure or bit number) - * associated with ifxyi - * @param[in,out] ifxyd - f77int*: - * - On input, ifxyd[0] is set to - * the bit-wise representation of the FXY - * number upon which ifxyi and ivali depend, - * or else set to (-1) if ifxyi and ivali do - * not depend on the value associated with - * any other FXY number - * - On output, if the initial search of the - * master Code/Flag table was unsuccessful, - * and if ifxyd[0] and ivald were both - * set to (-1) on input, and if a - * second search of the table determines that - * the meaning of ifxyi and ivali indeed - * depends on one or more other FXY numbers, - * then the bit-wise representations of those - * FXY numbers are returned within the first - * iret elements of ifxyd - * @param[in] ivald - f77int*: Value (code figure or bit number) - * associated with the FXY number in ifxyd[0]; set - * to (-1) whenever ifxyd[0] is also set to (-1) - * @param[in] mxfxyd - f77int*: Dimensioned size (in f77ints) of - * ifxyd; used by the subroutine to ensure that - * it doesn't overflow the ifxyd array - * @param[in] mxmng - f77int*: Dimensioned size (in bytes) of meaning - * string; used by the subroutine to ensure that - * it doesn't overflow the meaning string - * @param[out] meaning - char*: Meaning corresponding to ifxyi and - * ivali (and to ifxyd[0] and ivald, if - * specified on input) - * @param[out] lnmng - f77int*: Length (in bytes) of string returned - * in CMEANG - * @param[out] iret - f77int*: return code - * - 0 = meaning found and stored in meaning string - * - -1 = meaning not found - * - >0 = meaning not found, and ifxyd[0] and - * ivald were both set to (-1) on input, - * and the meaning of ifxyi and ivali - * depends on the the value associated with - * one of the FXY numbers whose bit-wise - * representation is stored in the first iret - * elements of ifxyd + * @param[in] ifxyi -- f77int*: Bit-wise representation of FXY number + * to search for + * @param[in] ivali -- f77int*: Value (code figure or bit number) + * associated with ifxyi + * @param[in,out] ifxyd -- f77int*: + * - On input, ifxyd[0] is set to + * the bit-wise representation of the FXY + * number upon which ifxyi and ivali depend, + * or else set to (-1) if ifxyi and ivali do + * not depend on the value associated with + * any other FXY number + * - On output, if the initial search of the + * master Code/Flag table was unsuccessful, + * and if ifxyd[0] and ivald were both + * set to (-1) on input, and if a + * second search of the table determines that + * the meaning of ifxyi and ivali indeed + * depends on one or more other FXY numbers, + * then the bit-wise representations of those + * FXY numbers are returned within the first + * iret elements of ifxyd + * @param[in] ivald -- f77int*: Value (code figure or bit number) + * associated with the FXY number in ifxyd[0]; set + * to (-1) whenever ifxyd[0] is also set to (-1) + * @param[in] mxfxyd -- f77int*: Dimensioned size (in f77ints) of + * ifxyd; used by the subroutine to ensure that + * it doesn't overflow the ifxyd array + * @param[in] mxmng -- f77int*: Dimensioned size (in bytes) of meaning + * string; used by the subroutine to ensure that + * it doesn't overflow the meaning string + * @param[out] meaning -- char*: Meaning corresponding to ifxyi and + * ivali (and to ifxyd[0] and ivald, if + * specified on input) + * @param[out] lnmng -- f77int*: Length (in bytes) of string returned + * in CMEANG + * @param[out] iret -- f77int*: return code + * - 0 = meaning found and stored in meaning string + * - -1 = meaning not found + * - >0 = meaning not found, and ifxyd[0] and + * ivald were both set to (-1) on input, + * and the meaning of ifxyi and ivali + * depends on the the value associated with + * one of the FXY numbers whose bit-wise + * representation is stored in the first iret + * elements of ifxyd * * Program history log: - * - 2018-01-11 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2018-01-11 | J. Ator | Original author | */ void srchtbf( f77int *ifxyi, f77int *ivali, f77int *ifxyd, f77int *mxfxyd, f77int *ivald, char *meaning, f77int *mxmng, f77int *lnmng, f77int *iret ) diff --git a/src/status.f b/src/status.f index c113e951..a0b7e1a1 100644 --- a/src/status.f +++ b/src/status.f @@ -14,15 +14,15 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[out] LUN - integer: Internal I/O stream index associated +C> @param[out] LUN -- integer: Internal I/O stream index associated C> with LUNIT C> - 0 = LUNIT is not already connected to the C> software, and there is no C> remaining internal space available C> that could be used to connect it -C> @param[out] IL - integer: File status +C> @param[out] IL -- integer: File status C> - 0 = LUNIT is not already connected to the C> software, but LUN contains a new C> internal I/O stream index that could @@ -34,29 +34,23 @@ C> - -1 = LUNIT is already connected to the C> software for input operations C> (i.e. reading/decoding BUFR) -C> @param[out] IM - integer: Message status, indicating whether +C> @param[out] IM -- integer: Message status, indicating whether C> there is already a message open within C> internal arrays for LUNIT C> - 0 = No C> - 1 = Yes C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1996-12-11 J. Woollen -- Fixed a long standing bug which occurs in -C> unusual situations, very low impact -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1996-12-11 | J. Woollen | Fixed a long standing bug which occurs in unusual situations, very low impact | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE STATUS(LUNIT,LUN,IL,IM) diff --git a/src/stdmsg.f b/src/stdmsg.f index 141d1c34..67e802ff 100644 --- a/src/stdmsg.f +++ b/src/stdmsg.f @@ -30,13 +30,15 @@ C> @author J. Ator C> @date 2004-08-18 C> -C> @param[in] CF - character*1: Flag indicating whether future BUFR +C> @param[in] CF -- character*1: Flag indicating whether future BUFR C> output messages are to be standardized C> - 'N' = No (the default) C> - 'Y' = Yes C> C> Program history log: -C> - 2004-08-18 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2004-08-18 | J. Ator | Original author | C> SUBROUTINE STDMSG(CF) diff --git a/src/stndrd.f b/src/stndrd.f index a896c0b9..aa9f4319 100644 --- a/src/stndrd.f +++ b/src/stndrd.f @@ -10,13 +10,13 @@ C> @author J. Ator C> @date 2004-08-18 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] MSGIN - integer(*): BUFR message -C> @param[in] LMSGOT - integer: Dimensioned size (in integers) of +C> @param[in] MSGIN -- integer(*): BUFR message +C> @param[in] LMSGOT -- integer: Dimensioned size (in integers) of C> MSGOT; used by the subroutine to ensure that C> it doesn't overflow the MSGOT array -C> @param[out] MSGOT - integer(*): Standardized copy of MSGIN +C> @param[out] MSGOT -- integer(*): Standardized copy of MSGIN C> C> @remarks C> - MSGIN and MSGOT must be separate arrays. @@ -25,16 +25,13 @@ C> for extra space when allocating MSGOT within the application program. C> C> Program history log: -C> - 2004-08-18 J. Ator -- Original author -C> - 2005-11-29 J. Ator -- Use getlens() and iupbs01(); ensure that -C> byte 4 of Section 4 is zeroed out in MSGOT; -C> check edition number of BUFR message before -C> padding to an even byte count -C> - 2009-03-23 J. Ator -- Use iupbs3() and nemtbax(); don't assume -C> that compressed messages are already fully -C> standardized within Section 3 -C> - 2014-02-04 J. Ator -- Account for subsets with byte count > 65530 -C> - 2020-07-16 J. Ator -- Fix bug in ISLEN computation when NSUB = 1 +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2004-08-18 | J. Ator | Original author | +C> | 2005-11-29 | J. Ator | Use getlens() and iupbs01(); ensure that byte 4 of Section 4 is zeroed out in MSGOT; check edition number of BUFR message before padding to an even byte count | +C> | 2009-03-23 | J. Ator | Use iupbs3() and nemtbax(); don't assume that compressed messages are already fully standardized within Section 3 | +C> | 2014-02-04 | J. Ator | Account for subsets with byte count > 65530 | +C> | 2020-07-16 | J. Ator | Fix bug in ISLEN computation when NSUB = 1 | C> SUBROUTINE STNDRD(LUNIT,MSGIN,LMSGOT,MSGOT) diff --git a/src/strcpt.f b/src/strcpt.f index 3b10c96e..79dc24bc 100644 --- a/src/strcpt.f +++ b/src/strcpt.f @@ -10,16 +10,16 @@ C> @author J. Ator C> @date 2009-03-23 C> -C> @param[in] CF - character*1: Flag indicating whether future BUFR +C> @param[in] CF -- character*1: Flag indicating whether future BUFR C> output messages should include the tank receipt C> time defined by IYR, IMO, IDY, IHR, and IMI: C> - 'N' = No (the default) C> - 'Y' = Yes -C> @param[in] IYR - integer: Tank receipt year -C> @param[in] IMO - integer: Tank receipt month -C> @param[in] IDY - integer: Tank receipt day -C> @param[in] IHR - integer: Tank receipt hour -C> @param[in] IMI - integer: Tank receipt minute +C> @param[in] IYR -- integer: Tank receipt year +C> @param[in] IMO -- integer: Tank receipt month +C> @param[in] IDY -- integer: Tank receipt day +C> @param[in] IHR -- integer: Tank receipt hour +C> @param[in] IMI -- integer: Tank receipt minute C> C>
This subroutine can be called at any time after the first call C> to subroutine openbf(), and the specified value for CF will remain @@ -42,7 +42,9 @@ C> compliant with the regulations. C> C> Program history log: -C> - 2009-03-23 J. Ator -- Original author +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-03-23 | J. Ator | Original author | C> SUBROUTINE STRCPT(CF,IYR,IMO,IDY,IHR,IMI) diff --git a/src/strnum.f b/src/strnum.f index b86a17a8..7d44024c 100644 --- a/src/strnum.f +++ b/src/strnum.f @@ -9,14 +9,16 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] STR - character*(*): String -C> @param[out] NUM - integer: Value decoded from STR -C> - -1 = decode was unsuccessful +C> @param[in] STR -- character*(*): String +C> @param[out] NUM -- integer: Value decoded from STR +C> - -1 = decode was unsuccessful C> C> Program History Log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2009-04-21 J. Ator -- Use errwrt() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2009-04-21 | J. Ator | Use errwrt() | C> SUBROUTINE STRNUM(STR,NUM) diff --git a/src/strsuc.f b/src/strsuc.f index 4e0184e8..267289e0 100644 --- a/src/strsuc.f +++ b/src/strsuc.f @@ -7,16 +7,18 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] STR1 - character*(*): String -C> @param[out] STR2 - character*(*): Copy of STR1 with leading and -C> trailing blanks removed -C> @param[out] LENS - integer: Length of STR2 +C> @param[in] STR1 -- character*(*): String +C> @param[out] STR2 -- character*(*): Copy of STR1 with leading and +C> trailing blanks removed +C> @param[out] LENS -- integer: Length of STR2 C> - -1 = STR1 contained embedded blanks C> C> Program History Log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2009-04-21 J. Ator -- Use errwrt() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author +C> | 2003-11-04 | J. Ator | Added documentation +C> | 2009-04-21 | J. Ator | Use errwrt() C> SUBROUTINE STRSUC(STR1,STR2,LENS) diff --git a/src/strtbfe.c b/src/strtbfe.c index 5af82fee..39af0792 100644 --- a/src/strtbfe.c +++ b/src/strtbfe.c @@ -11,22 +11,24 @@ * @author J. Ator * @date 2017-11-13 * - * @param[in] ifxyn - f77int*: Bit-wise representation of FXY number - * for which ival is a defined code or flag - * table entry - * @param[in] ival - f77int*: Code figure or bit number - * @param[in] meaning - char*: Meaning associated with ifxyn and ival - * @param[in] lmeaning - f77int*: Length (in bytes) of meaning - * @param[in] idfxy - f77int*: Bit-wise representation of FXY number - * upon which ifxyn and ival depend (if any), or - * else set to a value of (-1) - * @param[in] idval - f77int*: Code figure or bit number associated - * with idfxy and upon which ifxyn and ival depend - * (if any), or else set to (-1) whenever idfxy is - * also set to (-1) + * @param[in] ifxyn -- f77int*: Bit-wise representation of FXY number + * for which ival is a defined code or flag + * table entry + * @param[in] ival -- f77int*: Code figure or bit number + * @param[in] meaning -- char*: Meaning associated with ifxyn and ival + * @param[in] lmeaning -- f77int*: Length (in bytes) of meaning + * @param[in] idfxy -- f77int*: Bit-wise representation of FXY number + * upon which ifxyn and ival depend (if any), or + * else set to a value of (-1) + * @param[in] idval -- f77int*: Code figure or bit number associated + * with idfxy and upon which ifxyn and ival depend + * (if any), or else set to (-1) whenever idfxy is + * also set to (-1) * * Program history log: - * - 2017-11-13 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2017-11-13 | J. Ator | Original author | */ void strtbfe( f77int *ifxyn, f77int *ival, char *meaning, f77int *lmeaning, f77int *idfxy, f77int *idval ) diff --git a/src/stseq.c b/src/stseq.c index c59fd8fb..e9ced876 100644 --- a/src/stseq.c +++ b/src/stseq.c @@ -17,34 +17,32 @@ * @author J. Ator * @date 2009-03-23 * - * @param[in] lun - f77int*: Internal Fortran I/O stream index + * @param[in] lun -- f77int*: Internal Fortran I/O stream index * associated with BUFR file - * @param[in,out] irepct - f77int*: Replication sequence counter for - * the current master table; used internally - * to keep track of which sequence names have - * already been defined, and thereby avoid - * contention within the internal DX BUFR - * Table D - * @param[in] idn - f77int*: Bit-wise representation of FXY value for - * WMO-standard Table D descriptor - * @param[in] nemo - char[8]: Mnemonic corresponding to idn - * @param[in] cseq - char[55]: Description corresponding to idn - * @param[in] cdesc - f77int*: Array of WMO-standard child descriptors - * equivalent to idn - * @param[in] ncdesc - f77int*: Number of WMO-standard child descriptors - * in cdesc + * @param[in,out] irepct -- f77int*: Replication sequence counter for + * the current master table; used internally + * to keep track of which sequence names have + * already been defined, and thereby avoid + * contention within the internal DX BUFR + * Table D + * @param[in] idn -- f77int*: Bit-wise representation of FXY value for + * WMO-standard Table D descriptor + * @param[in] nemo -- char[8]: Mnemonic corresponding to idn + * @param[in] cseq -- char[55]: Description corresponding to idn + * @param[in] cdesc -- f77int*: Array of WMO-standard child descriptors + * equivalent to idn + * @param[in] ncdesc -- f77int*: Number of WMO-standard child descriptors + * in cdesc * * Program history log: - * - 2009-03-23 J. Ator -- Original author - * - 2010-03-19 J. Ator -- Added processing for 2-04 associated fields - * - 2010-04-05 J. Ator -- Added processing for 2-2X, 2-3X and 2-4X - * non-marker operators - * - 2015-03-04 J. Ator -- Handle special case when associated fields - * are in effect for a Table D descriptor - * - 2021-05-17 J. Ator -- Allow up to 24 characters in cbunit - * - 2021-08-18 J. Ator -- Use strcpy instead of strncpy and then - * overwrite trailing null, in order to - * silence superfluous GNU compiler warnings + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2009-03-23 | J. Ator | Original author | + * | 2010-03-19 | J. Ator | Added processing for 2-04 associated fields | + * | 2010-04-05 | J. Ator | Added processing for 2-2X, 2-3X and 2-4X non-marker operators | + * | 2015-03-04 | J. Ator | Handle special case when associated fields are in effect for a Table D descriptor | + * | 2021-05-17 | J. Ator | Allow up to 24 characters in cbunit | + * | 2021-08-18 | J. Ator | Use strcpy instead of strncpy and then overwrite trailing null, in order to silence superfluous GNU compiler warnings | */ void stseq( f77int *lun, f77int *irepct, f77int *idn, char nemo[8], diff --git a/src/ufbcnt.f b/src/ufbcnt.f index a7144d38..f31d9a70 100644 --- a/src/ufbcnt.f +++ b/src/ufbcnt.f @@ -10,12 +10,12 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file -C> @param[out] KMSG - integer: Ordinal number of current message, +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file +C> @param[out] KMSG -- integer: Ordinal number of current message, C> counting from the beginning of the BUFR file, but C> not counting any messages which contain DX BUFR C> tables information -C> @param[out] KSUB - integer: Ordinal number of current data subset +C> @param[out] KSUB -- integer: Ordinal number of current data subset C> within (KMSG)th message, counting from the C> beginning of the message C> @@ -35,14 +35,12 @@ C> which contain DX BUFR tables information. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE UFBCNT(LUNIT,KMSG,KSUB) diff --git a/src/ufbdmp.f b/src/ufbdmp.f index 4403bd5c..3b2e52b5 100644 --- a/src/ufbdmp.f +++ b/src/ufbdmp.f @@ -16,7 +16,7 @@ C> @authors D. Keyser C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Absolute value is Fortran logical +C> @param[in] LUNIN -- integer: Absolute value is Fortran logical C> unit number for BUFR file C> - If LUNIN > 0, data values are printed to C> LUPRT using the format descriptor code @@ -32,7 +32,7 @@ C> same column, but values exceeding the C> format width of 15 characters will print C> as overflow (e.g. '***************') -C> @param[in] LUPRT - integer: Fortran logical unit number for +C> @param[in] LUPRT -- integer: Fortran logical unit number for C> print output C> - 0 = Run interactively, printing to C> standard output @@ -52,33 +52,21 @@ C> scrolling (by typing anything else). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2002-05-14 J. Woollen -- Removed old Cray compiler directives -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Increased MAXJL from 15000 to 16000; -C> unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes; allowed fuzziness -C> in test for missing values; added option -C> to print using either 'G15.6' or 'F15.6'; -C> added several jump/link table values to -C> output -C> - 2004-08-18 J. Ator -- Modified fuzziness test; added readlc() -C> option; restructured some logic for clarity -C> - 2006-04-14 D. Keyser -- Add call to upftbv() for flag tables to get -C> actual bits that were set to generate value -C> - 2007-01-19 J. Ator -- Use function ibfms() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2020-09-09 J. Ator -- Fix missing check for long character strings -C> - 2021-09-30 J. Ator -- Replace rjust with Fortran intrinsic adjustr +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2002-05-14 | J. Woollen | Removed old Cray compiler directives | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Increased MAXJL from 15000 to 16000; unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2003-11-04 | D. Keyser | Allowed fuzziness in test for missing values; added option to print using either 'G15.6' or 'F15.6'; added several jump/link table values to output | +C> | 2004-08-18 | J. Ator | Modified fuzziness test; added readlc() option; restructured some logic for clarity | +C> | 2006-04-14 | D. Keyser | Add call to upftbv() for flag tables to get actual bits that were set to generate value | +C> | 2007-01-19 | J. Ator | Use function ibfms() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2020-09-09 | J. Ator | Fix missing check for long character strings | +C> | 2021-09-30 | J. Ator | Replace rjust with Fortran intrinsic adjustr | C> SUBROUTINE UFBDMP(LUNIN,LUPRT) diff --git a/src/ufbint.f b/src/ufbint.f index ffa34d3e..6b6f6084 100644 --- a/src/ufbint.f +++ b/src/ufbint.f @@ -24,9 +24,9 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Absolute value is Fortran logical +C> @param[in] LUNIN -- integer: Absolute value is Fortran logical C> unit number for BUFR file -C> @param[in,out] USR - real*8(*,*): Data values +C> @param[in,out] USR -- real*8(*,*): Data values C> - If ABS(LUNIN) was opened for input, then C> USR is output from this subroutine and C> contains data values that were read @@ -35,24 +35,24 @@ C> USR is input to this subroutine and C> contains data values that are to be C> written to the current data subset. -C> @param[in] I1 - integer: Actual first dimension of USR as allocated -C> within the calling program -C> @param[in] I2 - integer: +C> @param[in] I1 -- integer: Actual first dimension of USR as allocated +C> within the calling program +C> @param[in] I2 -- integer: C> - If ABS(LUNIN) was opened for input, then I2 C> must be set equal to the actual second dimension C> of USR as allocated within the calling program C> - If ABS(LUNIN) was opened for output, then I2 C> must be set equal to the number of replications C> of STR that are to be written to the data subset -C> @param[out] IRET - integer: Number of replications of STR that were -C> actually read/written from/to the data subset -C> @param[in] STR - character*(*): String of blank-separated -C> Table B mnemonics -C> in one-to-one correspondence with the number of data -C> values that will be read/written from/to the data -C> subset within the first dimension of USR (see -C> [DX BUFR Tables](@ref dfbftab) for further -C> information about Table B mnemonics) +C> @param[out] IRET -- integer: Number of replications of STR that were +C> actually read/written from/to the data subset +C> @param[in] STR -- character*(*): String of blank-separated +C> Table B mnemonics +C> in one-to-one correspondence with the number of data +C> values that will be read/written from/to the data +C> subset within the first dimension of USR (see +C> [DX BUFR Tables](@ref dfbftab) for further +C> information about Table B mnemonics) C> C>
It is the user's responsibility to ensure that USR is dimensioned C> sufficiently large enough to accommodate the number of data values @@ -136,26 +136,18 @@ C> the beginning of the message C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1996-11-25 J. Woollen -- Modified to add a return code when -C> mnemonics are not found when reading -C> - 1996-12-17 J. Woollen -- Modified to always initialize USR array -C> to "missing" when BUFR file is being read -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes -C> - 2004-08-18 J. Ator -- Added SAVE for IFIRST1 and IFIRST2 flags -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1996-11-25 | J. Woollen | Modified to add a return code when mnemonics are not found when reading | +C> | 1996-12-17 | J. Woollen | Modified to always initialize USR array to "missing" when BUFR file is being read | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-18 | J. Ator | Added SAVE for IFIRST1 and IFIRST2 flags | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE UFBINT(LUNIN,USR,I1,I2,IRET,STR) diff --git a/src/ufbmem.f b/src/ufbmem.f index f7352352..c3acfe55 100644 --- a/src/ufbmem.f +++ b/src/ufbmem.f @@ -14,18 +14,18 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR C> file -C> @param[in] INEW - integer: Processing option +C> @param[in] INEW -- integer: Processing option C> - 0 = Initialize the internal arrays, then C> read all BUFR messages from LUNIT into C> internal arrays C> - Otherwise, read all BUFR messages from LUNIT C> and append them to the existing messages C> within the internal arrays -C> @param[out] IRET - integer: Number of BUFR messages that were +C> @param[out] IRET -- integer: Number of BUFR messages that were C> read from LUNIT and stored into internal arrays -C> @param[out] IUNIT - integer: File status +C> @param[out] IUNIT -- integer: File status C> - 0 = LUNIT was empty, so no messages were read C> - Otherwise, the Fortran logical unit number to C> use for later access to any of the messages @@ -45,33 +45,22 @@ C> to this subroutine. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- Increased MAXMEM from 4 Mb to 8 Mb -C> - 2000-09-19 J. Woollen -- Maximum message length increased -C> from 10,000 to 20,000 bytes -C> - 2001-08-15 D. Keyser -- Increased MAXMEM from 8 Mb to 16 Mb -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally; increased MAXMSG from 50000 -C> to 200000 -C> - 2004-08-09 J. Ator -- Maximum message length increased -C> from 20,000 to 50,000 bytes -C> - 2004-11-15 D. Keyser -- Don't abort when there are either MAXMSG -C> or MAXMEM is exceeded; instead, just -C> store up to MAXMSG messages or MAXMEM -C> bytes and print a diagnostic -C> - 2005-11-29 J. Ator -- Use rdmsgw() and nmwrd() -C> - 2009-03-23 J. Ator -- Modified to handle embedded DX tables -C> - 2012-09-15 J. Woollen -- Modified for C/I/O/BUFR interface; -C> call status() to get LUN; replace Fortran -C> REWIND and BACKSPACE with C routines -C> cewind() and backbufr() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2015-09-24 D. Stokes -- Fix missing declaration of COMMON /QUIET/ +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | Increased MAXMEM from 4 Mb to 8 Mb | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2001-08-15 | D. Keyser | Increased MAXMEM from 8 Mb to 16 Mb | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally; increased MAXMSG from 50000 to 200000 | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2004-11-15 | D. Keyser | Don't abort when there are either MAXMSG or MAXMEM is exceeded; instead, just store up to MAXMSG messages or MAXMEM bytes and print a diagnostic | +C> | 2005-11-29 | J. Ator | Use rdmsgw() and nmwrd() | +C> | 2009-03-23 | J. Ator | Modified to handle embedded DX tables | +C> | 2012-09-15 | J. Woollen | Modified for C/I/O/BUFR interface; call status() to get LUN; replace Fortran REWIND and BACKSPACE with C routines cewind() and backbufr() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2015-09-24 | D. Stokes | Fix missing declaration of COMMON /QUIET/ | C> SUBROUTINE UFBMEM(LUNIT,INEW,IRET,IUNIT) diff --git a/src/ufbmex.f b/src/ufbmex.f index cd2e0457..d8535249 100644 --- a/src/ufbmex.f +++ b/src/ufbmex.f @@ -22,21 +22,21 @@ C> @author J. Woollen C> @date 2012-01-26 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR C> file -C> @param[in] LUNDX - integer: Fortran logical unit number +C> @param[in] LUNDX -- integer: Fortran logical unit number C> containing DX BUFR table information C> associated with BUFR messages in LUNIT -C> @param[in] INEW - integer: Processing option +C> @param[in] INEW -- integer: Processing option C> - 0 = Initialize the internal arrays, then C> read all BUFR messages from LUNIT into C> internal arrays C> - Otherwise, read all BUFR messages from LUNIT C> and append them to the existing messages C> within the internal arrays -C> @param[out] IRET - integer: Number of BUFR messages that were +C> @param[out] IRET -- integer: Number of BUFR messages that were C> read from LUNIT and stored into internal arrays -C> @param[out] MESG - integer(*): Types of BUFR messages that were +C> @param[out] MESG -- integer(*): Types of BUFR messages that were C> read from LUNIT and stored into internal arrays C> C>
Logical unit numbers LUNIT and LUNDX must already be associated @@ -44,9 +44,11 @@ C> "OPEN" statement. C> C> Program history log: -C> - 2012-01-26 J. Woollen -- Original author -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2015-09-24 D. Stokes -- Fix missing declaration of COMMON /QUIET/ +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2012-01-26 | J. Woollen | Original author | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2015-09-24 | D. Stokes | Fix missing declaration of COMMON /QUIET/ | C> SUBROUTINE UFBMEX(LUNIT,LUNDX,INEW,IRET,MESG) diff --git a/src/ufbmms.f b/src/ufbmms.f index c6babeba..ce18d445 100644 --- a/src/ufbmms.f +++ b/src/ufbmms.f @@ -8,18 +8,18 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] IMSG - integer: Number of BUFR message to be +C> @param[in] IMSG -- integer: Number of BUFR message to be C> read into scope for further processing, C> counting from the beginning of the C> internal arrays in memory -C> @param[in] ISUB - integer: Number of data subset to be +C> @param[in] ISUB -- integer: Number of data subset to be C> read from the (IMSG)th BUFR message, C> counting from the beginning of the message -C> @param[out] SUBSET - character*8: Table A mnemonic for type of -C> (IMSG)th BUFR message -C> (see [DX BUFR Tables](@ref dfbftab) for -C> further information about Table A mnemonics) -C> @param[out] JDATE - integer: Date-time stored within Section 1 of +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of +C> (IMSG)th BUFR message +C> (see [DX BUFR Tables](@ref dfbftab) for +C> further information about Table A mnemonics) +C> @param[out] JDATE -- integer: Date-time stored within Section 1 of C> (IMSG)th BUFR message, in format of either C> YYMMDDHH or YYYYMMDDHH, depending on the most C> recent call to subroutine datelen() @@ -31,14 +31,14 @@ C> recent call to subroutine ufbmem(). C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT" -C> - 1999-11-18 J. Woollen -- Increased MAXMEM from 4 Mb to 8 Mb -C> - 2001-08-15 D. Keyser -- Increased MAXMEM from 8 Mb to 16 Mb -C> - 2004-11-15 D. Keyser -- Increased MAXMEM from 16 Mb to 50 Mb -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | Increased MAXMEM from 4 Mb to 8 Mb | +C> | 2001-08-15 | D. Keyser | Increased MAXMEM from 8 Mb to 16 Mb | +C> | 2004-11-15 | D. Keyser | Increased MAXMEM from 16 Mb to 50 Mb | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE UFBMMS(IMSG,ISUB,SUBSET,JDATE) diff --git a/src/ufbmns.f b/src/ufbmns.f index 7b66b359..cee4c609 100644 --- a/src/ufbmns.f +++ b/src/ufbmns.f @@ -14,31 +14,30 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] IREP - integer: Number of data subset to be +C> @param[in] IREP -- integer: Number of data subset to be C> read into scope for further processing, C> counting from the beginning of the C> internal arrays in memory -C> @param[out] SUBSET - character*8: Table A mnemonic for type of BUFR -C> message that was read into scope -C> (see [DX BUFR Tables](@ref dfbftab) for -C> further information about Table A mnemonics) -C> @param[out] IDATE - integer: Date-time stored within Section 1 of +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of BUFR +C> message that was read into scope +C> (see [DX BUFR Tables](@ref dfbftab) for +C> further information about Table A mnemonics) +C> @param[out] IDATE -- integer: Date-time stored within Section 1 of C> BUFR message that was read into scope, C> in format of either YYMMDDHH or YYYYMMDDHH, C> depending on the most C> recent call to subroutine datelen() C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT" -C> - 1999-11-18 J. Woollen -- Increased MAXMEM from 4 Mb to 8 Mb -C> - 2001-08-15 D. Keyser -- Increased MAXMEM from 8 Mb to 16 Mb -C> - 2004-11-15 D. Keyser -- Increased MAXMEM from 16 Mb to 50 Mb -C> - 2009-03-23 J. Ator -- Use ireadmm() instead of rdmemm(); -C> simplify logic -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | Increased MAXMEM from 4 Mb to 8 Mb | +C> | 2001-08-15 | D. Keyser | Increased MAXMEM from 8 Mb to 16 Mb | +C> | 2004-11-15 | D. Keyser | Increased MAXMEM from 16 Mb to 50 Mb | +C> | 2009-03-23 | J. Ator | Use ireadmm() instead of rdmemm(); simplify logic | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE UFBMNS(IREP,SUBSET,IDATE) diff --git a/src/ufbpos.f b/src/ufbpos.f index 420f7279..10dc3a1b 100644 --- a/src/ufbpos.f +++ b/src/ufbpos.f @@ -14,19 +14,19 @@ C> @author J. Woollen C> @date 1995-11-22 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file -C> @param[in] IREC - integer: Ordinal number of message to be read, +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file +C> @param[in] IREC -- integer: Ordinal number of message to be read, C> counting from the beginning of the BUFR file, but C> not counting any messages which contain DX BUFR C> tables information -C> @param[in] ISUB - integer: Ordinal number of data subset to be +C> @param[in] ISUB -- integer: Ordinal number of data subset to be C> read from (IREC)th message, counting from the C> beginning of the message -C> @param[out] SUBSET - character*8: Table A mnemonic for type of BUFR -C> message that was read -C> (see [DX BUFR Tables](@ref dfbftab) -C> for further information about Table A mnemonics) -C> @param[out] JDATE - integer: Date-time stored within Section 1 of +C> @param[out] SUBSET -- character*8: Table A mnemonic for type of BUFR +C> message that was read +C> (see [DX BUFR Tables](@ref dfbftab) +C> for further information about Table A mnemonics) +C> @param[out] JDATE -- integer: Date-time stored within Section 1 of C> BUFR message that was read, in format of either C> YYMMDDHH or YYYYMMDDHH, depending on the most C> recent call to subroutine datelen() @@ -38,14 +38,14 @@ C> which contain DX BUFR tables information. C> C> Program history log: -C> - 1995-11-22 J. Woollen -- Original author -C> - 2005-03-04 D. Keyser -- Added documentation -C> - 2006-04-14 J. Ator -- Remove unnecessary MOIN initialization -C> - 2009-03-23 J. Ator -- Modified to handle embedded BUFR table -C> (dictionary) messages -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2021-10-08 J. Ator -- Use readsb() to read all subsets from -C> IREC(th) message +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1995-11-22 | J. Woollen | Original author | +C> | 2005-03-04 | D. Keyser | Added documentation | +C> | 2006-04-14 | J. Ator | Remove unnecessary MOIN initialization | +C> | 2009-03-23 | J. Ator | Modified to handle embedded BUFR table (dictionary) messages | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2021-10-08 | J. Ator | Use readsb() to read all subsets from IREC(th) message | C> SUBROUTINE UFBPOS(LUNIT,IREC,ISUB,SUBSET,JDATE) diff --git a/src/ufbrep.f b/src/ufbrep.f index 6ea0e9f6..14aaf419 100644 --- a/src/ufbrep.f +++ b/src/ufbrep.f @@ -26,9 +26,9 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Absolute value is Fortran logical +C> @param[in] LUNIN -- integer: Absolute value is Fortran logical C> unit number for BUFR file -C> @param[in,out] USR - real*8(*,*): Data values +C> @param[in,out] USR -- real*8(*,*): Data values C> - If ABS(LUNIN) was opened for input, then C> USR is output from this subroutine and C> contains data values that were read @@ -37,24 +37,24 @@ C> USR is input to this subroutine and C> contains data values that are to be C> written to the current data subset. -C> @param[in] I1 - integer: Actual first dimension of USR as allocated -C> within the calling program -C> @param[in] I2 - integer: +C> @param[in] I1 -- integer: Actual first dimension of USR as allocated +C> within the calling program +C> @param[in] I2 -- integer: C> - If ABS(LUNIN) was opened for input, then I2 C> must be set equal to the actual second dimension C> of USR as allocated within the calling program C> - If ABS(LUNIN) was opened for output, then I2 C> must be set equal to the number of replications C> of STR that are to be written to the data subset -C> @param[out] IRET - integer: Number of replications of STR that were -C> actually read/written from/to the data subset -C> @param[in] STR - character*(*): String of blank-separated -C> Table B mnemonics -C> in one-to-one correspondence with the number of data -C> values that will be read/written from/to the data -C> subset within the first dimension of USR (see -C> [DX BUFR Tables](@ref dfbftab) for further -C> information about Table B mnemonics) +C> @param[out] IRET -- integer: Number of replications of STR that were +C> actually read/written from/to the data subset +C> @param[in] STR -- character*(*): String of blank-separated +C> Table B mnemonics +C> in one-to-one correspondence with the number of data +C> values that will be read/written from/to the data +C> subset within the first dimension of USR (see +C> [DX BUFR Tables](@ref dfbftab) for further +C> information about Table B mnemonics) C> C>
It is the user's responsibility to ensure that USR is dimensioned C> sufficiently large enough to accommodate the number of data values @@ -128,27 +128,18 @@ C> the beginning of the message C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to C32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2003-05-19 J. Woollen -- Disabled the parsing switch which controls -C> checking for in the same replication group, -C> ufbrep does not need this check, and it -C> interferes with what ufbrep can do otherwise -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes -C> - 2004-08-18 J. Ator -- Added SAVE for IFIRST1 and IFIRST2 flags -C> - 2009-03-31 J. Woollen -- Add documentation -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to C32 | +C> | 2003-05-19 | J. Woollen | Disabled the parsing switch which controls checking in the same replication group | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-18 | J. Ator | Added SAVE for IFIRST1 and IFIRST2 flags | +C> | 2009-03-31 | J. Woollen | Add documentation | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE UFBREP(LUNIN,USR,I1,I2,IRET,STR) diff --git a/src/ufbrms.f b/src/ufbrms.f index e2ca03e8..8c9f6512 100644 --- a/src/ufbrms.f +++ b/src/ufbrms.f @@ -9,21 +9,21 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] IMSG - integer: Number of BUFR message to be +C> @param[in] IMSG -- integer: Number of BUFR message to be C> read into scope for further processing, C> counting from the beginning of the C> internal arrays in memory -C> @param[in] ISUB - integer: Number of data subset to be +C> @param[in] ISUB -- integer: Number of data subset to be C> read from the (IMSG)th BUFR message, C> counting from the beginning of the message -C> @param[out] USR - real*8(*,*): Data values -C> @param[in] I1 - integer: Actual first dimension of USR as +C> @param[out] USR -- real*8(*,*): Data values +C> @param[in] I1 -- integer: Actual first dimension of USR as C> allocated within the calling program -C> @param[in] I2 - integer: Actual second dimension of USR as +C> @param[in] I2 -- integer: Actual second dimension of USR as C> allocated within the calling program -C> @param[out] IRET - integer: Number of replications of STR that were -C> actually read from the data subset -C> @param[in] STR - character*(*): String of blank-separated +C> @param[out] IRET -- integer: Number of replications of STR that were +C> actually read from the data subset +C> @param[in] STR -- character*(*): String of blank-separated C> Table B mnemonics in one-to-one C> correspondence with the number of data C> values that will be read from the data @@ -32,15 +32,15 @@ C> information about Table B mnemonics) C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT" -C> - 1999-11-18 J. Woollen -- Increased MAXMEM from 4 Mb to 8 Mb -C> - 2001-08-15 D. Keyser -- Increased MAXMEM from 8 Mb to 16 Mb -C> - 2004-11-15 D. Keyser -- Increased MAXMEM from 16 Mb to 50 Mb -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | Increased MAXMEM from 4 Mb to 8 Mb | +C> | 2001-08-15 | D. Keyser | Increased MAXMEM from 8 Mb to 16 Mb | +C> | 2004-11-15 | D. Keyser | Increased MAXMEM from 16 Mb to 50 Mb | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE UFBRMS(IMSG,ISUB,USR,I1,I2,IRET,STR) diff --git a/src/ufbseq.f b/src/ufbseq.f index 121436a7..d993e065 100644 --- a/src/ufbseq.f +++ b/src/ufbseq.f @@ -33,9 +33,9 @@ C> @authors J. Ator C> @date 2000-09-19 C> -C> @param[in] LUNIN - integer: Absolute value is Fortran logical +C> @param[in] LUNIN -- integer: Absolute value is Fortran logical C> unit number for BUFR file -C> @param[in,out] USR - real*8(*,*): Data values +C> @param[in,out] USR -- real*8(*,*): Data values C> - If ABS(LUNIN) was opened for input, then C> USR is output from this subroutine and C> contains data values that were read @@ -44,24 +44,24 @@ C> USR is input to this subroutine and C> contains data values that are to be C> written to the current data subset. -C> @param[in] I1 - integer: Actual first dimension of USR as allocated -C> within the calling program -C> @param[in] I2 - integer: +C> @param[in] I1 -- integer: Actual first dimension of USR as allocated +C> within the calling program +C> @param[in] I2 -- integer: C> - If ABS(LUNIN) was opened for input, then I2 C> must be set equal to the actual second dimension C> of USR as allocated within the calling program C> - If ABS(LUNIN) was opened for output, then I2 C> must be set equal to the number of replications C> of STR that are to be written to the data subset -C> @param[out] IRET - integer: Number of replications of STR that were -C> actually read/written from/to the data subset -C> @param[in] STR - character*(*): String consisting of a single Table A -C> or Table D mnemonic whose sequence definition is -C> in one-to-one correspondence with the number of data -C> values that will be read/written from/to the data -C> subset within the first dimension of USR -C> (see [DX BUFR Tables](@ref dfbftab) for further -C> information about Table A and Table D mnemonics) +C> @param[out] IRET -- integer: Number of replications of STR that were +C> actually read/written from/to the data subset +C> @param[in] STR -- character*(*): String consisting of a single Table A +C> or Table D mnemonic whose sequence definition is +C> in one-to-one correspondence with the number of data +C> values that will be read/written from/to the data +C> subset within the first dimension of USR +C> (see [DX BUFR Tables](@ref dfbftab) for further +C> information about Table A and Table D mnemonics) C> C>
It is the user's responsibility to ensure that USR is dimensioned C> sufficiently large enough to accommodate the number of data values @@ -125,34 +125,19 @@ C> the number of replications of the sequence. C> C> Program history log: -C> - 2000-09-19 J. Woollen -- Original author -C> - 2002-05-14 J. Woollen -- Improved generality; previously ufbseq -C> would not recognize compressed delayed -C> replication as a legitimate data structure -C> - 2003-05-19 J. Woollen -- Corrected the logic array of exit -C> conditions for the subroutine; previously, -C> in some cases, proper exits were missed, -C> generating bogus error messages, because of -C> several miscellaneous bugs which are now -C> removed -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes -C> - 2004-08-18 J. Ator -- Added SAVE for IFIRST1 and IFIRST2 flags -C> - 2007-01-19 J. Ator -- Replaced call to parseq with call to parstr() -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2014-09-10 J. Ator -- Fix bug involving nested delayed replication -C> where first replication of outer sequence -C> does not contain a replication of the inner -C> sequence -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2020-03-06 J. Ator -- No longer abort when reading data and number -C> of available levels is greater than I2; -C> instead just return first I2 levels and -C> print a diagnostic message +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2000-09-19 | J. Woollen | Original author | +C> | 2002-05-14 | J. Woollen | Improved generality; previously ufbseq would not recognize compressed delayed replication as a legitimate data structure | +C> | 2003-05-19 | J. Woollen | Corrected the logic array of exit conditions for the subroutine; previously, in some cases, proper exits were missed, generating bogus error messages | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-18 | J. Ator | Added SAVE for IFIRST1 and IFIRST2 flags | +C> | 2007-01-19 | J. Ator | Replaced call to parseq with call to parstr() | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2014-09-10 | J. Ator | Fix bug involving nested delayed replication where first replication of outer sequence does not contain a replication of the inner sequence | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2020-03-06 | J. Ator | No longer abort when reading data and number of available levels is greater than I2; instead just return first I2 levels and print a diagnostic message | C> SUBROUTINE UFBSEQ(LUNIN,USR,I1,I2,IRET,STR) diff --git a/src/ufbstp.f b/src/ufbstp.f index 30501326..aec90dba 100644 --- a/src/ufbstp.f +++ b/src/ufbstp.f @@ -27,9 +27,9 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Absolute value is Fortran logical +C> @param[in] LUNIN -- integer: Absolute value is Fortran logical C> unit number for BUFR file -C> @param[in,out] USR - real*8(*,*): Data values +C> @param[in,out] USR -- real*8(*,*): Data values C> - If ABS(LUNIN) was opened for input, then C> USR is output from this subroutine and C> contains data values that were read @@ -38,24 +38,24 @@ C> USR is input to this subroutine and C> contains data values that are to be C> written to the current data subset. -C> @param[in] I1 - integer: Actual first dimension of USR as allocated -C> within the calling program -C> @param[in] I2 - integer: +C> @param[in] I1 -- integer: Actual first dimension of USR as allocated +C> within the calling program +C> @param[in] I2 -- integer: C> - If ABS(LUNIN) was opened for input, then I2 C> must be set equal to the actual second dimension C> of USR as allocated within the calling program C> - If ABS(LUNIN) was opened for output, then I2 C> must be set equal to the number of replications C> of STR that are to be written to the data subset -C> @param[out] IRET - integer: Number of replications of STR that were -C> actually read/written from/to the data subset -C> @param[in] STR - character*(*): String of blank-separated -C> Table B mnemonics -C> in one-to-one correspondence with the number of data -C> values that will be read/written from/to the data -C> subset within the first dimension of USR (see -C> [DX BUFR Tables](@ref dfbftab) for further -C> information about Table B mnemonics) +C> @param[out] IRET -- integer: Number of replications of STR that were +C> actually read/written from/to the data subset +C> @param[in] STR -- character*(*): String of blank-separated +C> Table B mnemonics +C> in one-to-one correspondence with the number of data +C> values that will be read/written from/to the data +C> subset within the first dimension of USR (see +C> [DX BUFR Tables](@ref dfbftab) for further +C> information about Table B mnemonics) C> C>
It is the user's responsibility to ensure that USR is dimensioned C> sufficiently large enough to accommodate the number of data values @@ -113,16 +113,14 @@ C> the same time that it is in the process of being written to. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes -C> - 2004-08-18 J. Ator -- Added SAVE for IFIRST1 and IFIRST2 flags -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-18 | J. Ator | Added SAVE for IFIRST1 and IFIRST2 flags | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE UFBSTP(LUNIN,USR,I1,I2,IRET,STR) diff --git a/src/ufbtab.f b/src/ufbtab.f index bbc33401..3b4abc7d 100644 --- a/src/ufbtab.f +++ b/src/ufbtab.f @@ -11,20 +11,20 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIN - integer: Absolute value is Fortran logical +C> @param[in] LUNIN -- integer: Absolute value is Fortran logical C> unit number for BUFR file -C> @param[out] TAB - real*8(*,*): Data values -C> @param[in] I1 - integer: Actual first dimension of TAB as allocated +C> @param[out] TAB -- real*8(*,*): Data values +C> @param[in] I1 -- integer: Actual first dimension of TAB as allocated C> within the calling program -C> @param[in] I2 - integer: Actual second dimension of TAB as allocated +C> @param[in] I2 -- integer: Actual second dimension of TAB as allocated C> within the calling program -C> @param[out] IRET - integer: Number of data subsets in BUFR file -C> @param[in] STR - character*(*): String of blank-separated -C> Table B mnemonics, in one-to-one correspondence -C> with the number of data values that will be read -C> from each data subset within the first dimension of -C> TAB (see [DX BUFR Tables](@ref dfbftab) for further -C> information about Table B mnemonics) +C> @param[out] IRET -- integer: Number of data subsets in BUFR file +C> @param[in] STR -- character*(*): String of blank-separated +C> Table B mnemonics, in one-to-one correspondence +C> with the number of data values that will be read +C> from each data subset within the first dimension of +C> TAB (see [DX BUFR Tables](@ref dfbftab) for further +C> information about Table B mnemonics) C> C>
It is the user's responsibility to ensure that TAB is dimensioned C> sufficiently large enough to accommodate the number of data values @@ -55,46 +55,27 @@ C> definition) within the corresponding row of TAB. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT" -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2000-09-19 J. Woollen -- Maximum length increased -C> from 10,000 to 20,000 bytes -C> - 2002-05-14 J. Woollen -- Removed old Cray compiler directives -C> - 2003-11-04 D. Keyser -- Modified to not abort when there are -C> more than I2 data subsets, but instead -C> just process first I2 subsets and print a -C> diagnostic; increased MAXJL from 15000 -C> to 16000; modified to use rewnbf(); -C> upgraded to allow reading from a file that -C> has already been opened via openbf() -C> - 2004-08-09 J. Ator -- Maximum message length increased from -C> 20,000 to 50,000 bytes -C> - 2005-09-16 J. Woollen -- upgraded to work for compressed BUFR -C> messages, and to allow for LUNIN < 0 option -C> - 2006-04-14 J. Ator -- Add declaration for CREF -C> - 2007-01-19 J. Ator -- Replaced call to parseq with call to -C> parstr() -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2009-12-01 J. Ator -- Fix bug for compressed character strings -C> which are identical across all subsets in -C> a single messagE -C> - 2010-05-07 J. Ator -- When calling ireadmg(), treat read error -C> as EOF condition -C> - 2012-03-02 J. Ator -- Use function ups() -C> - 2012-09-15 J. Woollen -- Modified for C/I/O/BUFR interface; -C> added IO type 'INX' to enable open and -C> close for C file without closing FORTRAN -C> file -C> - 2014-11-20 J. Ator -- Ensure openbf() has been called at least -C> once before calling status() -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2016-12-19 J. Woollen -- Fix bug to prevent inventory overflow +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2000-09-19 | J. Woollen | Maximum length increased from 10,000 to 20,000 bytes | +C> | 2002-05-14 | J. Woollen | Removed old Cray compiler directives | +C> | 2003-11-04 | D. Keyser | Modified to not abort when there are more than I2 data subsets, but instead just process first I2 subsets and print a diagnostic | +C> | 2003-11-04 | D. Keyser | Increased MAXJL from 15000 to 16000; modified to use rewnbf(); upgraded to allow reading from a file that has already been opened via openbf() | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-09-16 | J. Woollen | upgraded to work for compressed BUFR messages, and to allow for LUNIN < 0 option | +C> | 2006-04-14 | J. Ator | Add declaration for CREF | +C> | 2007-01-19 | J. Ator | Replaced call to parseq with call to parstr() | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2009-12-01 | J. Ator | Fix bug for compressed character strings which are identical across all subsets in a single messagE | +C> | 2010-05-07 | J. Ator | When calling ireadmg(), treat read error as EOF condition | +C> | 2012-03-02 | J. Ator | Use function ups() | +C> | 2012-09-15 | J. Woollen | Modified for C/I/O/BUFR interface; added IO type 'INX' to enable open and close for C file without closing FORTRAN file | +C> | 2014-11-20 | J. Ator | Ensure openbf() has been called at least once before calling status() | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2016-12-19 | J. Woollen | Fix bug to prevent inventory overflow | C> SUBROUTINE UFBTAB(LUNIN,TAB,I1,I2,IRET,STR) diff --git a/src/ufdump.f b/src/ufdump.f index 4dfab5d4..5b4f8217 100644 --- a/src/ufdump.f +++ b/src/ufdump.f @@ -15,9 +15,9 @@ C> @authors J. Ator C> @date 2002-05-14 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] LUPRT - integer: Fortran logical unit number for +C> @param[in] LUPRT -- integer: Fortran logical unit number for C> print output C> - 0 = Run interactively, printing to C> standard output @@ -43,31 +43,22 @@ C> code and flag table values themselves will be printed. C> C> Program history log: -C> - 2002-05-14 J. Woollen -- Original author -C> - 2003-11-04 J. Woollen -- Modified to handle print of character -C> values greater than 8 bytes -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Increased MAXJL from 15000 to 16000; -C> unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes -C> - 2004-08-18 J. Ator -- Added fuzziness test and threshold for -C> missing value; added interactive and -C> scrolling capability similar to ufbdmp() -C> - 2006-04-14 J. Ator -- Add call to upftbv() for flag tables to get -C> actual bits that were set to generate value -C> - 2007-01-19 J. Ator -- Use function ibfms() -C> - 2009-03-23 J. Ator -- Add level markers to output for sequences -C> where the replication count is > 1; output -C> all occurrences of long character strings -C> - 2012-02-24 J. Ator -- Fix missing check for long character strings -C> - 2012-03-02 J. Ator -- Label redefined reference values -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2015-09-24 J. Woollen -- Print level identifiers for event stacks -C> - 2020-08-18 J. Ator -- Improve logic for sequence tracking -C> - 2021-09-30 J. Ator -- Replace rjust with Fortran intrinsic adjustr +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2002-05-14 | J. Woollen | Original author | +C> | 2003-11-04 | J. Woollen | Modified to handle print of character values greater than 8 bytes | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Increased MAXJL from 15000 to 16000; unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-18 | J. Ator | Added fuzziness test and threshold for missing value; added interactive and scrolling capability similar to ufbdmp() | +C> | 2006-04-14 | J. Ator | Add call to upftbv() for flag tables to get actual bits that were set to generate value | +C> | 2007-01-19 | J. Ator | Use function ibfms() | +C> | 2009-03-23 | J. Ator | Add level markers to output for sequences where the replication count is > 1; output all occurrences of long character strings | +C> | 2012-02-24 | J. Ator | Fix missing check for long character strings | +C> | 2012-03-02 | J. Ator | Label redefined reference values | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2015-09-24 | J. Woollen | Print level identifiers for event stacks | +C> | 2020-08-18 | J. Ator | Improve logic for sequence tracking | +C> | 2021-09-30 | J. Ator | Replace rjust with Fortran intrinsic adjustr | C> SUBROUTINE UFDUMP(LUNIT,LUPRT) diff --git a/src/upds3.f b/src/upds3.f index c250300a..06c3ee68 100644 --- a/src/upds3.f +++ b/src/upds3.f @@ -7,13 +7,13 @@ C> @author J. Ator C> @date 2003-11-04 C> -C> @param[in] MBAY - integer(*): BUFR message -C> @param[in] LCDS3 - integer: Dimensioned size of CDS3; +C> @param[in] MBAY -- integer(*): BUFR message +C> @param[in] LCDS3 -- integer: Dimensioned size of CDS3; C> used by the subroutine to ensure that C> it doesn't overflow the CDS3 array -C> @param[out] CDS3 - character*6(*): Data descriptor sequence +C> @param[out] CDS3 -- character*6(*): Data descriptor sequence C> within Section 3 of MBAY -C> @param[out] NDS3 - integer: Number of data descriptors in CDS3 +C> @param[out] NDS3 -- integer: Number of data descriptors in CDS3 C> C> @remarks C> - The start of the BUFR message (i.e. the string 'BUFR') must be @@ -24,11 +24,12 @@ C> Section 3 of MBAY. C> C> Program history log: -C> - 2003-11-04 J. Ator -- Original author -C> - 2004-08-18 J. Ator -- Removed IFIRST check, since wrdlen() now -C> keeps track of whether it has been called -C> - 2005-11-29 J. Ator -- Use getlens() -C> - 2009-03-23 J. Ator -- Added LCDS3 argument and check +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2003-11-04 | J. Ator | Original author | +C> | 2004-08-18 | J. Ator | Removed IFIRST check, since wrdlen() now keeps track of whether it has been called | +C> | 2005-11-29 | J. Ator | Use getlens() | +C> | 2009-03-23 | J. Ator | Added LCDS3 argument and check | C> SUBROUTINE UPDS3(MBAY,LCDS3,CDS3,NDS3) diff --git a/src/upftbv.f b/src/upftbv.f index b809b5ed..2363e177 100644 --- a/src/upftbv.f +++ b/src/upftbv.f @@ -9,17 +9,17 @@ C> @author J. Ator C> @date 2005-11-29 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] NEMO - character*(*): Table B mnemonic with +C> @param[in] NEMO -- character*(*): Table B mnemonic with C> flag table units -C> @param[in] VAL - real*8: Value corresponding to NEMO -C> @param[in] MXIB - integer: Dimensioned size (in integers) of +C> @param[in] VAL -- real*8: Value corresponding to NEMO +C> @param[in] MXIB -- integer: Dimensioned size (in integers) of C> IBIT; used by the subroutine to ensure that C> it doesn't overflow the IBIT array -C> @param[out] IBIT - integer(*): Bit numbers which were set to +C> @param[out] IBIT -- integer(*): Bit numbers which were set to C> "On" (i.e. set to "1") in VAL -C> @param[out] NIB - integer: Number of bit numbers returned in +C> @param[out] NIB -- integer: Number of bit numbers returned in C> IBIT C> C> @remarks @@ -29,8 +29,10 @@ C> (i.e. most significant) bit in any bit field. C> C> Program history log: -C> - 2005-11-29 J. Ator -- Original version -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2005-11-29 | J. Ator | Original version | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE UPFTBV(LUNIT,NEMO,VAL,MXIB,IBIT,NIB) diff --git a/src/valx.f b/src/valx.f index a4861b81..2204c1ee 100644 --- a/src/valx.f +++ b/src/valx.f @@ -9,20 +9,18 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] STR - character*(*): String -C> @returns VALX - real: Value decoded from STR +C> @param[in] STR -- character*(*): String +C> @returns VALX -- real: Value decoded from STR C> C> Program History Log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to CRAY library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine bort() -C> - 1999-11-18 J. Woollen -- Renamed from val$ to valx because the $ -C> symbol causes problems on certain platforms -C> - 2003-11-04 D. Keyser -- Use bort2() instead of bort() -C> - 2009-04-21 J. Ator -- Use errwrt() -C> - 2021-09-30 J. Ator -- Replace rjust with Fortran intrinsic -C> adjustr +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to CRAY library routine "ABORT" with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | Renamed from val$ to valx because the $ symbol causes problems on certain platforms | +C> | 2003-11-04 | D. Keyser | Use bort2() instead of bort() | +C> | 2009-04-21 | J. Ator | Use errwrt() | +C> | 2021-09-30 | J. Ator | Replace rjust with Fortran intrinsic adjustr | C> FUNCTION VALX(STR) diff --git a/src/wrdlen.F b/src/wrdlen.F index adefb0a1..ded3a64a 100644 --- a/src/wrdlen.F +++ b/src/wrdlen.F @@ -21,24 +21,16 @@ C> @date 1994-01-06 C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally, unusual things happen or for -C> informational purposes; initialized NBYTW -C> to zero during the first call -C> - 2004-08-18 J. Ator -- Added SAVE For IFIRST flag and immediate -C> return if IFIRST=1 -C> - 2007-01-19 J. Ator -- Big-endian vs. little-endian is now -C> determined at compile time and configured -C> within BUFRLIB via conditional compilation -C> directives -C> - 2009-03-23 J. Ator -- Call bvers() to get version number +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally, initialized NBYTW to zero during the first call | +C> | 2004-08-18 | J. Ator | Added SAVE For IFIRST flag and immediate return if IFIRST=1 | +C> | 2007-01-19 | J. Ator | Big-endian vs. little-endian is now determined at compile time and configured within BUFRLIB via conditional compilation directives | +C> | 2009-03-23 | J. Ator | Call bvers() to get version number | C> SUBROUTINE WRDLEN diff --git a/src/writcp.f b/src/writcp.f index 76b1faec..e52b362a 100644 --- a/src/writcp.f +++ b/src/writcp.f @@ -10,7 +10,7 @@ C> @author J. Woollen C> @date 2002-05-14 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file C> C> @remarks C> - This subroutine activates compression via an internal call to @@ -23,8 +23,10 @@ C> backwards-compatibility with certain legacy application programs. C> C> Program history log: -C> - 2002-05-14 J. Woollen -- Original author -C> - 2005-03-09 J. Ator -- Modified to use cmpmsg() and writsb() +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2002-05-14 | J. Woollen | Original author | +C> | 2005-03-09 | J. Ator | Modified to use cmpmsg() and writsb() | C> SUBROUTINE WRITCP(LUNIT) diff --git a/src/writlc.f b/src/writlc.f index beed4a0d..efb11b40 100644 --- a/src/writlc.f +++ b/src/writlc.f @@ -14,9 +14,9 @@ C> @authors J. Ator C> @date 2003-11-04 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file -C> @param[in] CHR - character*(*): Value corresponding to STR -C> @param[in] STR - character*(*): Table B mnemonic of long character +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file +C> @param[in] CHR -- character*(*): Value corresponding to STR +C> @param[in] STR -- character*(*): Table B mnemonic of long character C> string to be written, possibly supplemented C> with an ordinal occurrence notation C> @@ -43,24 +43,18 @@ C> for the data subset. C> C> Program history log: -C> - 2003-11-04 J. Woollen -- Original author -C> - 2004-08-09 J. Ator -- Maximum message length increased from -C> 20,000 to 50,000 bytes -C> - 2005-11-29 J. Ator -- Use getlens() -C> - 2007-01-19 J. Ator -- Replaced call to parseq with call to -C> parstr() -C> - 2009-03-23 J. Ator -- Added '#' option for more than one -C> occurrence of STR -C> - 2009-08-11 J. Woollen -- Added COMMON COMPRS along with logic to -C> write long strings into compressed subsets -C> - 2012-12-07 J. Ator -- Allow str mnemonic length of up to 14 chars -C> when used with '#' occurrence code -C> - 2014-10-22 J. Ator -- No longer abort if no subset available for -C> writing; just print a warning message -C> - 2014-12-10 J. Ator -- USE modules instead of COMMON blocks -C> - 2020-09-09 J. Ator -- No longer abort if STR not available within -C> subset definition; instead, just print a -C> warning message +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2003-11-04 | J. Woollen | Original author | +C> | 2004-08-09 | J. Ator | Maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-11-29 | J. Ator | Use getlens() | +C> | 2007-01-19 | J. Ator | Replaced call to parseq with call to parstr() | +C> | 2009-03-23 | J. Ator | Added '#' option for more than one occurrence of STR | +C> | 2009-08-11 | J. Woollen | Added COMMON COMPRS along with logic to write long strings into compressed subsets | +C> | 2012-12-07 | J. Ator | Allow str mnemonic length of up to 14 chars when used with '#' occurrence code | +C> | 2014-10-22 | J. Ator | No longer abort if no subset available for writing; just print a warning message | +C> | 2014-12-10 | J. Ator | USE modules instead of COMMON blocks | +C> | 2020-09-09 | J. Ator | No longer abort if STR not available within subset definition; instead, just print a warning message | C> SUBROUTINE WRITLC(LUNIT,CHR,STR) diff --git a/src/writsa.f b/src/writsa.f index 313aa2f9..1e197f8d 100644 --- a/src/writsa.f +++ b/src/writsa.f @@ -11,13 +11,13 @@ C> @authors J. Ator C> @date 1994-01-06 C> -C> @param[in] LUNXX - integer: Absolute value is Fortran logical +C> @param[in] LUNXX -- integer: Absolute value is Fortran logical C> unit number for BUFR file -C> @param[in] LMSGT - integer: Dimensioned size (in integers) of +C> @param[in] LMSGT -- integer: Dimensioned size (in integers) of C> MSGT; used by the subroutine to ensure that C> it doesn't overflow the MSGT array -C> @param[out] MSGT - integer(*): BUFR message -C> @param[out] MSGL - integer: Size (in integers) of BUFR message +C> @param[out] MSGT -- integer(*): BUFR message +C> @param[out] MSGL -- integer: Size (in integers) of BUFR message C> in MSGT C> - 0 = No BUFR message was returned within C> MSGT @@ -89,31 +89,19 @@ C> local system. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT"; modified to make Y2K -C> compliant -C> - 2000-09-19 J. Woollen -- Maximum message length increased -C> from 10,000 to 20,000 bytes -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2004-08-18 J. Ator -- Add post msgupd() check for and return of -C> message within MSGT in order to prevent -C> loss of message in certain situations; -C> maximum message length increased from -C> 20,000 to 50,000 bytes -C> - 2005-03-09 J. Ator -- Added capability for compressed messages -C> - 2009-03-23 J. Ator -- Added LMSGT argument and check -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks -C> - 2019-05-09 J. Ator -- Added dimensions for MSGLEN and MSGTXT -C> - 2020-09-22 J. Ator -- Added capability to return two BUFR -C> messages within MSGT during the same call -C> to this routine, in the rare instances -C> where this can occur +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort(); modified to make Y2K compliant | +C> | 2000-09-19 | J. Woollen | Maximum message length increased from 10,000 to 20,000 bytes | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2004-08-18 | J. Ator | Add post msgupd() check for and return of message within MSGT in order to prevent loss of message in certain situations; maximum message length increased from 20,000 to 50,000 bytes | +C> | 2005-03-09 | J. Ator | Added capability for compressed messages | +C> | 2009-03-23 | J. Ator | Added LMSGT argument and check | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | +C> | 2019-05-09 | J. Ator | Added dimensions for MSGLEN and MSGTXT | +C> | 2020-09-22 | J. Ator | Added capability to return two BUFR messages within MSGT during the same call to this routine, in the rare instances where this can occur | C> SUBROUTINE WRITSA(LUNXX,LMSGT,MSGT,MSGL) diff --git a/src/writsb.f b/src/writsb.f index 4d72f26f..9b3de9d1 100644 --- a/src/writsb.f +++ b/src/writsb.f @@ -7,7 +7,7 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for BUFR file +C> @param[in] LUNIT -- integer: Fortran logical unit number for BUFR file C> C>
This subroutine is called to indicate to the BUFRLIB software that C> all necessary values for a data subset (i.e. report) have been written, @@ -40,17 +40,14 @@ C> encode and pack the data subset into that new message. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine -C> "ABORT" with call to new internal BUFRLIB -C> routine "BORT" -C> - 2003-11-04 J. Ator -- Added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2005-03-09 J. Ator -- Added capability for compressed messages +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine "ABORT" with call to new internal routine bort() | +C> | 2003-11-04 | J. Ator | Added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2005-03-09 | J. Ator | Added capability for compressed messages | C> SUBROUTINE WRITSB(LUNIT) diff --git a/src/wtstat.f b/src/wtstat.f index c7f76105..bbf4d775 100644 --- a/src/wtstat.f +++ b/src/wtstat.f @@ -10,11 +10,11 @@ C> @author J. Woollen C> @date 1994-01-06 C> -C> @param[in] LUNIT - integer: Fortran logical unit number for +C> @param[in] LUNIT -- integer: Fortran logical unit number for C> BUFR file -C> @param[in] LUN - integer: Internal I/O stream index associated +C> @param[in] LUN -- integer: Internal I/O stream index associated C> with LUNIT -C> @param[in] IL - integer: File status update option +C> @param[in] IL -- integer: File status update option C> - 0 = Disconnect LUNIT from the software C> - 1 = Connect LUNIT to the software for C> output operations @@ -24,7 +24,7 @@ C> input operations C> (i.e. reading/decoding BUFR), C> if not already connected -C> @param[in] IM - integer: Message status update option, to +C> @param[in] IM -- integer: Message status update option, to C> indicate whether a message is now open C> within the internal arrays for LUNIT C> - 0 = No @@ -39,21 +39,15 @@ C> long as the file is connected to the software. C> C> Program history log: -C> - 1994-01-06 J. Woollen -- Original author -C> - 1998-07-08 J. Woollen -- Replaced call to Cray library routine ABORT -C> with call to new internal routine bort() -C> - 1999-11-18 J. Woollen -- The number of BUFR files which can be -C> opened at one time increased from 10 to 32 -C> (necessary in order to process multiple -C> BUFR files under the MPI) -C> - 2003-11-04 J. Ator -- Corrected a typo in test for IM validity; -C> added documentation -C> - 2003-11-04 S. Bender -- Added remarks and routine interdependencies -C> - 2003-11-04 D. Keyser -- Unified/portable for WRF; added history -C> documentation; outputs more complete -C> diagnostic info when routine terminates -C> abnormally -C> - 2014-12-10 J. Ator -- Use modules instead of COMMON blocks +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 1994-01-06 | J. Woollen | Original author | +C> | 1998-07-08 | J. Woollen | Replaced call to Cray library routine ABORT with call to new internal routine bort() | +C> | 1999-11-18 | J. Woollen | The number of BUFR files which can be opened at one time increased from 10 to 32 | +C> | 2003-11-04 | J. Ator | Corrected a typo in test for IM validity; added documentation | +C> | 2003-11-04 | S. Bender | Added remarks and routine interdependencies | +C> | 2003-11-04 | D. Keyser | Unified/portable for WRF; added documentation; outputs more complete diagnostic info when routine terminates abnormally | +C> | 2014-12-10 | J. Ator | Use modules instead of COMMON blocks | C> SUBROUTINE WTSTAT(LUNIT,LUN,IL,IM) diff --git a/utils/debufr.c.in b/utils/debufr.c.in index 65f3d4c5..2e4a1ef9 100644 --- a/utils/debufr.c.in +++ b/utils/debufr.c.in @@ -28,10 +28,12 @@ void prtusage( char * ); * @author J. Ator * @date 2018-03-01 * - * @param[in] prgnam - char*: [path/]name of program executable + * @param[in] prgnam -- char*: [path/]name of program executable * * Program history log: - * - 2018-03-01 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2018-03-01 | J. Ator | Original author | */ void prtusage( char *prgnam ) { @@ -152,29 +154,19 @@ void prtusage( char *prgnam ) { * for use within this program. * * Program history log: - * - 2009-07-01 J. Ator -- Original author - * - 2012-06-18 J. Ator -- Modified to allow decoding of BUFR files - * based on NCEP DX dictionary table - * information. The program can now process - * any files that previously required the use - * of ckbufr. - * - 2012-12-07 J. Ator -- Modified to add -m and -v options and inline - * version of OPENBT subroutine for mixed BUFR files - * - 2013-10-07 J. Ator -- Print Section 1 tank receipt time information - * for NCEP/NCO BUFR messages if available - * - 2013-11-15 J. Ator -- Add -h option and check for non-existent tablefil - * - 2014-09-15 J. Ator -- Change default path for tabledir, change default - * name for outfile, and confirm outfile is writeable - * - 2018-01-19 J. Ator -- Add print of code and flag table meanings. - * - 2018-04-09 J. Ator -- Add -c option to turn off print of code and flag - * table meanings (default is "on"). - * - 2018-09-05 J. Ator -- Add -p option to pass in one or more BUFRLIB - * dynamic allocation parameters to override default - * settings - * - 2019-02-01 J. Ator -- Remove limit on length of prmstg, and allow up - * to 20 PARAMETER=VALUE pairs - * - 2021-03-02 J. Ator -- Add missing #include files, remove unused errflg - * variable, and other general cleanup. + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2009-07-01 | J. Ator | Original author | + * | 2012-06-18 | J. Ator | Modified to allow decoding of BUFR files based on NCEP DX dictionary table information. The program can now process any files that previously required the use of ckbufr. | + * | 2012-12-07 | J. Ator | Modified to add -m and -v options and inline version of OPENBT subroutine for mixed BUFR files | + * | 2013-10-07 | J. Ator | Print Section 1 tank receipt time information for NCEP/NCO BUFR messages if available | + * | 2013-11-15 | J. Ator | Add -h option and check for non-existent tablefil | + * | 2014-09-15 | J. Ator | Change default path for tabledir, change default name for outfile, and confirm outfile is writeable | + * | 2018-01-19 | J. Ator | Add print of code and flag table meanings | + * | 2018-04-09 | J. Ator | Add -c option to turn off print of code and flag table meanings (default is "on") | + * | 2018-09-05 | J. Ator | Add -p option to pass in one or more BUFRLIB dynamic allocation parameters to override default settings | + * | 2019-02-01 | J. Ator | Remove limit on length of prmstg, and allow up to 20 PARAMETER=VALUE pairs | + * | 2021-03-02 | J. Ator | Add missing #include files, remove unused errflg variable, and other general cleanup | */ int main( int argc, char *argv[ ] ) { diff --git a/utils/debufr.f b/utils/debufr.f index 70982122..9ff71232 100644 --- a/utils/debufr.f +++ b/utils/debufr.f @@ -31,32 +31,32 @@ MODULE Share_Table_Info C> @author J. Ator C> @date 2009-07-01 C> -C> @param[in] ofile - character*(*): File to contain verbose output +C> @param[in] ofile -- character*(*): File to contain verbose output C> listing of contents of each decoded BUFR message -C> @param[in] tbldir - character*(*): Directory containing DX and/or +C> @param[in] tbldir -- character*(*): Directory containing DX and/or C> master BUFR tables to be used for decoding -C> @param[in] lentd - integer: length of tbldir string -C> @param[in] tblfil - character*(*): File containing DX BUFR table +C> @param[in] lentd -- integer: length of tbldir string +C> @param[in] tblfil -- character*(*): File containing DX BUFR table C> information to be used for decoding C> - 'NULLFILE' = No such file will be used -C> @param[in] prmstg - character*(*): String of up to 20 comma-separated +C> @param[in] prmstg -- character*(*): String of up to 20 comma-separated C> PARAMETER=VALUE pairs to be used to dynamically C> allocate memory within the BUFRLIB software, C> overriding the default VALUE that would otherwise C> be used for each such PARAMETER. C> - 'NULLPSTG' = No such pairs will be used -C> @param[in] basic - character: Indicator as to whether only "basic" +C> @param[in] basic -- character: Indicator as to whether only "basic" C> information in Sections 0-3 should be decoded C> from each BUFR message: C> - 'Y' = Yes C> - 'N' = No -C> @param[in] forcemt - character: Indicator as to whether master BUFR +C> @param[in] forcemt -- character: Indicator as to whether master BUFR C> tables should be used for decoding, regardless C> of whether the input file contains any embedded C> DX BUFR table messages: C> - 'Y' = Yes C> - 'N' = No -C> @param[in] cfms - character: Indicator as to whether code and flag +C> @param[in] cfms -- character: Indicator as to whether code and flag C> table meanings should be read from master BUFR C> tables and included in the print output: C> - 'Y' = Yes @@ -69,24 +69,19 @@ MODULE Share_Table_Info C> for use within this subroutine. C> C> Program history log: -C> - 2009-07-01 J. Ator -- Original author -C> - 2012-06-18 J. Ator -- Added tblfil argument and options to decode -C> files according to DX dictionary information -C> - 2012-12-07 J. Ator -- Added forcemt and lentd arguments -C> - 2013-10-07 J. Ator -- Print Section 1 tank receipt time information -C> for NCEP/NCO BUFR messages if available -C> - 2013-11-15 J. Ator -- Added check for missing or unreadable tblfil -C> - 2014-09-15 J. Ator -- Confirm BUFR file was opened (i.e. at least -C> one good return from crbmg() before calling -C> dxdump(). -C> - 2018-01-19 J. Ator -- Added print of code and flag table meanings. -C> - 2018-03-01 J. Ator -- Added print of data types and subtypes from -C> code and flag tables. -C> - 2018-09-05 J. Ator -- Added prmstg argument -C> - 2019-02-01 J. Ator -- Remove limit on length of prmstg -C> - 2021-02-24 J. Ator -- Use all formatted writes, for consistent -C> output between builds using 4-byte vs. 8-byte -C> integers +C> | Date | Programmer | Comments | +C> | -----|------------|----------| +C> | 2009-07-01 | J. Ator | Original author | +C> | 2012-06-18 | J. Ator | Added tblfil argument and options to decode files according to DX dictionary information | +C> | 2012-12-07 | J. Ator | Added forcemt and lentd arguments | +C> | 2013-10-07 | J. Ator | Print Section 1 tank receipt time information for NCEP/NCO BUFR messages if available | +C> | 2013-11-15 | J. Ator | Added check for missing or unreadable tblfil | +C> | 2014-09-15 | J. Ator | Confirm BUFR file was opened (i.e. at least one good return from crbmg() before calling dxdump() | +C> | 2018-01-19 | J. Ator | Added print of code and flag table meanings | +C> | 2018-03-01 | J. Ator | Added print of data types and subtypes from code and flag tables | +C> | 2018-09-05 | J. Ator | Added prmstg argument | +C> | 2019-02-01 | J. Ator | Remove limit on length of prmstg | +C> | 2021-02-24 | J. Ator | Use all formatted writes, for consistent output between builds using 4-byte vs. 8-byte integers | C> SUBROUTINE FDEBUFR ( ofile, tbldir, lentd, tblfil, prmstg, + basic, forcemt, cfms ) @@ -478,8 +473,8 @@ SUBROUTINE FDEBUFR ( ofile, tbldir, lentd, tblfil, prmstg, C> @author J. Ator C> @date 2012-12-07 C> -C> @param[in] mtyp - integer: Data category of BUFR message -C> @param[out] lundx - integer: Fortran logical unit number for +C> @param[in] mtyp -- integer: Data category of BUFR message +C> @param[out] lundx -- integer: Fortran logical unit number for C> DX BUFR tables file to use in C> reading/decoding the message C> - 0 = No such file is available diff --git a/utils/xbfmg.c b/utils/xbfmg.c index 95e43b15..bb9749e8 100644 --- a/utils/xbfmg.c +++ b/utils/xbfmg.c @@ -25,10 +25,12 @@ void prtusage( char * ); * @author J. Ator * @date 2018-03-01 * - * @param[in] prgnam - char*: [path/]name of program executable + * @param[in] prgnam -- char*: [path/]name of program executable * * Program history log: - * - 2018-03-01 J. Ator -- Original author + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2018-03-01 | J. Ator | Original author | */ void prtusage( char *prgnam ) { printf( "\nUSAGE: %s [-v] [-h] [-g] bufrfile\n\n", prgnam ); @@ -98,9 +100,11 @@ void prtusage( char *prgnam ) { * * * Program history log: - * - 2018-03-01 J. Ator -- Original author - * - 2021-09-29 J. Ator -- Use basename instead of pid in output filenames - * - 2021-10-08 J. Ator -- Simplify bvstr instantiation and initialization + * | Date | Programmer | Comments | + * | -----|------------|----------| + * | 2018-03-01 | J. Ator | Original author | + * | 2021-09-29 | J. Ator | Use basename instead of pid in output filenames | + * | 2021-10-08 | J. Ator | Simplify bvstr instantiation and initialization | */ int main( int argc, char *argv[] ) {